試著從「架構」方面,來談談區塊鏈
鈺湚/張詠晴編譯
2018-11-02 14:05

以比特幣為旗幟的區塊鏈技術,轉眼間已經走過十年了,人們常感慨「十年一代人」,對於現在這個三年就會有代溝的快速發展時代,十年似乎已經很久了。

 

我接觸區塊鏈大概一年時間,據說在這個領域三年就是資深或者專家了,可見,這個領域儘管有十年歷史,卻還差了些累積,同樣十年左右歷程的雲端運算,目前已經是「鋪天蓋地」了。雖然有諸多不盡人意,但我依然覺得這是個有趣、有想像力的領域,所以,我把自己這一年透過學習得來的,對區塊鏈的粗淺認識,整理出來與大家一起討論討論。我是個業務架構設計人員,所以,我對區塊鏈的理解比較偏重「業務」和「架構」。

 

我所認識的共識

 

共識是區塊鏈中炒的很熱的概念,甚至會讓非技術出身的同學覺得,「共識」是區塊鏈發明的。我對共識瞭解不多,只是根據資料總結了一個共識的發展路徑,或者說學習路徑,供大家參考:

 

我所认识的共识

 

共識是高深的數學問題,上圖中除了POS、DPOS之外,其他定理、共識都由獲得過圖靈獎,或者相當於這個級別的專業數學論文做支撐,所以共識不是靈光乍現的好用就行,沒有數學基礎作支持很難保證其可靠性。

 

嚴格來說,POS、DPOS才是專門為區塊鏈設計的共識,但是,缺點是沒有縝密的數學論證,儘管以太坊的大神中有很多數學方面的高手。

 

此外,共識這個詞對業務人員和技術人員來說,是有很大區別的,業務上的共識,通常指共同遵守的業務規則和一致的結果,而對技術人員來說,卻是個與可以與業務幾乎沒有關係的話題。

 

我所認識的區塊鏈架構

 

我總結了一個我個人視角的區塊鏈一般架構:

 

我认识的区块链架构

 

我認為廣義區塊鏈的設計,主要包括數據層、網路層、共識層、激勵層、智慧合約層,但是實際上,共識層、激勵層、智慧合約層都是可以選的,不是必須要有,每一層中具體機制也可以靈活變化。網路層雖然必選,但是其機制卻是可選的。最不能動的是數據層,這一層的塊鏈式數據結構是鐵打的,但有人會說Codar呢?Codar自己只說是受區塊鏈啓發,從來沒說自己是區塊鏈。

 

如果用我們常用的軟體架構視角來看,也可以這麼轉換:

 

一般架构

 

共識其實可以分成業務和數據庫兩部分,前者是業務邏輯的共識也就是智慧合約,後者是記帳權共識,也就是數據寫入權。

 

可以比較出區塊鏈系統與一般軟體系統,其實主要差別就在於底層數據庫的實現,和業務邏輯層關於代幣的設計上。這也是為什麼目前就設計來講,除了涉及虛擬數位貨幣的應用,難以用傳統分散式系統替代,而其他類型的區塊鏈設計,尤其是聯盟鏈環境下的設計,幾乎都可以被替代的原因,替代主要也就是對數據層的替代。

 

本文為巴比特資訊授權刊登,原文標題為「區塊鏈十年:從哪裡來,到哪裡去