以比特幣為旗幟的區(qū)塊鏈技術(shù)轉(zhuǎn)眼間已經(jīng)走過十年了,人們常感慨“十年一代人”,對于現(xiàn)在這個三年就會有代溝的快速發(fā)展時代,十年似乎已經(jīng)很久了。我接觸區(qū)塊鏈大概一年時間,據(jù)說在這個領域三年就是資深或者專家了,可見,這個領域盡管有十年歷史,卻還差些積累,同樣十年左右歷程的云計算,目前已經(jīng)是“鋪天蓋地”了。雖然有諸多不盡人意,但我依然覺得這是個有趣、有想象力的領域,所以,我把自己通過這一年學習得來的對區(qū)塊鏈的粗淺認識整理出來與大家一起討論討論。我是個業(yè)務架構(gòu)設計人員,所以,我對區(qū)塊鏈的理解比較偏重“業(yè)務”和“架構(gòu)”。
一、我所認識的比特幣
作為開山鼻祖,比特幣是所有接觸區(qū)塊鏈的人一定要了解的,尤其是技術(shù)人員。不去了解比特幣、以太坊,也就不會給技術(shù)插上想象力的翅膀,那樣還不如直接研究分布式系統(tǒng)更實際。我個人對比特幣的設計思路總結(jié)如下:
按照中本聰自己在白皮書中的說法,他單純是在設計一個點對點的電子現(xiàn)金交易系統(tǒng),為此需要確保交易安全和資金安全,要確保不能“雙花”、不能“亂花”。通過UTXO模型和區(qū)塊鏈的技術(shù)保證不會出現(xiàn)“雙花”,也使歷史記錄的可信性獲得提高;通過非對稱加密確保你的“錢”只能自己花,不會被別人花掉。通過工作量證明保證賬本唯一性,再通過經(jīng)濟手段“制約”算力強人不去作惡。這方面的討論很多了,本文也不贅述。反復讀白皮書,感受最深的其實是對專一目標的極客追求和架構(gòu)設計上的平衡,中本聰只想實現(xiàn)一個點對點的電子現(xiàn)金交易系統(tǒng),為了安全,他選擇做出效率的犧牲,所以,據(jù)說BM要提高交易效率時,他批評BM不懂比特幣。設計上,中本聰沒打算支持他這個系統(tǒng)目標以外的任何應用,也即,不提供更多的可擴展余地,因為這一方面會引入對電子現(xiàn)金系統(tǒng)而言既不必要又可能致命的各種“缺陷”,又會破壞比特幣高度精簡的數(shù)據(jù)結(jié)構(gòu),比特幣為了應對其對存儲的壓力,幾乎把數(shù)據(jù)需求壓縮到最低。越簡單越安全,而這個對電子現(xiàn)金系統(tǒng),特別是一個期望無人維護、自動運行的電子現(xiàn)金系統(tǒng)來講,恰恰是可靠性、安全性和公信力的基礎。后邊有不少嘗試對比特幣進行的改造、擴展都以失敗告終,其實也說明了設計上的剛性。如果不能很好理解比特幣設計的初衷和它加給自己的局限,去任意拓展想象力,結(jié)果恐怕不會太好。設計目標和約束會決定系統(tǒng)的特點與適用范圍,如果擴大適用范圍,也必須對目標和約束進行修改。以太坊就是這么干的。
二、我所認識的以太坊
以太坊是V神2013年推出的,與中本聰不同的是,他是這個領域可以見到真身的“大神”。以太坊其實也挺復雜的,不過從我這個業(yè)務架構(gòu)人員的視角來看,我覺得以太坊的整體邏輯如下:
過于簡單了?也許吧。V神在以太坊白皮書中詳細剖析了比特幣設計,提出了四個主要不足:不支持圖靈完備、狀態(tài)少、區(qū)塊盲、價值盲。我技術(shù)道行不深,所以,覺得后兩個不是什么大問題。前兩個則與設計目標和約束有關,中本聰只想做一個點對點的電子現(xiàn)金系統(tǒng),沒想支持其他應用,那么圖靈完備、更多的狀態(tài)對他而言就沒什么意義,“現(xiàn)金”不是在你兜里就是在我兜里,本來也不需要那么多狀態(tài)。V神想做的就沒這么簡單了,據(jù)說他跟初始團隊共同想出了“世界計算機”這個概念,圖靈完備和狀態(tài)擴展對于他而言就是必備的。他希望以太坊能在比特幣這種“去信任”機制上發(fā)展出更多的應用,包括分布式自治組織(DAO)。所以,比特幣白皮書沒怎么談應用,因為它的系統(tǒng)目標很單一,甚至明確說有些東西就該依靠鏈下處理;以太坊的白皮書上就講了很多應用,因為它希望構(gòu)造一個“新世界”,這個想法V神在接受過采訪中也多次表達過。就共識邏輯而言,比特幣只是確認簽名和一筆交易在歷史上存在且沒有被其用于其他交易;以太坊就復雜了,它要確認一段代碼邏輯的運行結(jié)果,也繼承了比特幣的共識思路,就是人手一本賬、人人都驗證,這就使代碼邏輯不能太過復雜,否則會有節(jié)點運行不了,效率太低也會影響共識的達成。比特幣雖然效率低,但是系統(tǒng)用途單一,習慣了也就忍了;以太坊給大家插上了翅膀,但是卻實實在在地感覺到“地心引力”太大,開玩笑地講,以太坊其實比比特幣“折磨”人。V神的設計依然是劃時代的,很有突破性,對比特幣設計目標的修改也很明確,這是做區(qū)塊鏈技術(shù)研究和設計的人必須認真學習的。
三、我所認識的聯(lián)盟鏈
我覺得聯(lián)盟鏈是對公鏈的“反思”,所以搞了很多約束上的調(diào)整,而且五花八門,怎么想的都有。從高階理念的角度,聯(lián)盟鏈的誕生實際上也是對社會現(xiàn)實的反映,對此,我總結(jié)了一張圖:
社會環(huán)境已經(jīng)從具有較強依附關系的中心化輻射狀生態(tài)結(jié)構(gòu)逐漸演進至平臺化、多中心、自由協(xié)作的網(wǎng)狀體系,尤其是在企業(yè)端,根據(jù)康威定律,設計對象的組織結(jié)構(gòu)會映射到其系統(tǒng)結(jié)構(gòu),所以,符合多中心網(wǎng)狀生態(tài)特點的系統(tǒng)架構(gòu)必然會應運而生。傳統(tǒng)的分布式系統(tǒng)其誕生目的主要是為了提升系統(tǒng)性能,而區(qū)塊鏈系統(tǒng)則更多考慮了如何幫助用戶平等參與網(wǎng)絡,這應該是二者在設計理念上的核心差別,因此,區(qū)塊鏈系統(tǒng)比傳統(tǒng)的分布式系統(tǒng)更適于多方共贏生態(tài)環(huán)境的構(gòu)建。這個是看起來有點兒“務虛”,但是也有其道理的聯(lián)盟鏈的價值。公鏈的問題在于,如果現(xiàn)階段應用,顯然不符合企業(yè)端生態(tài)的實際情況,企業(yè)端的生態(tài)環(huán)境即便你一開始沒設計中心也會自然產(chǎn)生中心,這是人的社會性決定的,所以也不要那么排斥所謂的“中心化”,鏡子中照出來的無論好不好看都是你自己,化妝不解決本質(zhì)問題。
聯(lián)盟鏈既然面向企業(yè),自然會把提升效率放到一個很高的優(yōu)先級上,于是有了一些假定上的放松,比如,節(jié)點都是授權(quán)加入,實際上注入了信任;有了信任,共識方面可以放松,都回到了傳統(tǒng)分布式系統(tǒng)的路線上;再基于信任,出塊速度可達到秒級、毫秒級,不擔心中本聰考慮的傳播過快存在的安全問題。放松假定上最徹底的是微軟的Coco,將節(jié)點放在基于硬件的可信執(zhí)行環(huán)境中,所以,智能合約不用每個節(jié)點都執(zhí)行,只執(zhí)行一次,結(jié)果大家信任,共識也采取簡單的跟隨機制,所以它還能處理別的聯(lián)盟鏈搞不定的“不確定性計算”。聯(lián)盟鏈對公鏈做了很多調(diào)整,有的徹底有的不徹底,由于多數(shù)聯(lián)盟鏈存在節(jié)點數(shù)量上限,所以,節(jié)點在聯(lián)盟鏈中通常代表節(jié)點自己而非網(wǎng)絡參與者,有點“代理”的意思,也算是讓對人的信任轉(zhuǎn)移到了對機器的信任,但是不同于公鏈這種節(jié)點無上限、節(jié)點直接代表參與者的結(jié)構(gòu),這種差別使聯(lián)盟鏈在放松假定之后反而比公鏈設計、部署更復雜了,有點兒小“尷尬”。
四、我所認識的共識
共識是區(qū)塊鏈中炒的很熱的概念,甚至會讓非技術(shù)出身的同學覺得“共識”是區(qū)塊鏈發(fā)明的。我對共識了解不多,只是根據(jù)資料總結(jié)了一個共識的發(fā)展路徑或者說學習路徑供大家參考:
共識是高深的數(shù)學問題,上圖中除了POS、DPOS之外,其他定理、共識都由獲得過圖靈獎或者相當于這個級別的專業(yè)數(shù)學論文做支撐,所以共識不是靈光乍現(xiàn)的好用就行,沒有數(shù)學基礎作支持很難保證其可靠性。嚴格來說POS、DPOS才是專門為區(qū)塊鏈設計的共識,但是,缺點是沒有縝密的數(shù)學論證,盡管以太坊的大神中有很多數(shù)學方面的高手。
此外,共識這個詞對業(yè)務人員和技術(shù)人員來講是有很大區(qū)別的,業(yè)務上的共識通常指共同遵守的業(yè)務規(guī)則和一致的結(jié)果,而對技術(shù)人員來講卻是個與可以與業(yè)務幾乎沒有關系的話題。
五、我所認識的區(qū)塊鏈架構(gòu)
回顧了比特幣、以太坊和聯(lián)盟鏈之后,我總結(jié)了一個我個人視角的區(qū)塊鏈一般架構(gòu):
我認為廣義區(qū)塊鏈的設計主要包括數(shù)據(jù)層、網(wǎng)絡層、共識層、激勵層、智能合約層,但是實際上,共識層、激勵層、智能合約層都是可以選的,不是必須要有,每一層中具體機制也可以靈活變化。網(wǎng)絡層雖然必選,但是其機制卻是可選的。最不能動的是數(shù)據(jù)層,這一層的塊鏈式數(shù)據(jù)結(jié)構(gòu)是鐵打的,但有人會說Codar呢?Codar自己只說是受區(qū)塊鏈啟發(fā),從來沒說自己是區(qū)塊鏈。
如果用我們常用的軟件架構(gòu)視角來看,也可以這么轉(zhuǎn)換下:
共識其實可以分成業(yè)務和數(shù)據(jù)庫兩部分,前者是業(yè)務邏輯的共識也就是智能合約,后者是記賬權(quán)共識也就是數(shù)據(jù)寫入權(quán)??梢员容^出區(qū)塊鏈系統(tǒng)與一般軟件系統(tǒng)其實主要差別就在于底層數(shù)據(jù)庫的實現(xiàn)和業(yè)務邏輯層關于代幣的設計上。這也是為什么目前就設計來講,除了涉及虛擬數(shù)字貨幣的應用難以用傳統(tǒng)分布式系統(tǒng)替代,而其他類型的區(qū)塊鏈設計尤其是聯(lián)盟鏈環(huán)境下的設計幾乎都可以被替代的原因,替代主要也就是對數(shù)據(jù)層的替代。
六、我所認識的區(qū)塊鏈未來
未來總有些幻影,不是那么容易去辨別的,技術(shù)發(fā)展太快,我這種“三腳貓”的功夫也不敢輕易給個時限、下個結(jié)論,只能說說方向性的認識。
公鏈技術(shù)在效率方面有些很復雜的東西,我說不清楚,分片、L2層、狀態(tài)通道這些會給公鏈進一步賦能的技術(shù)或者設計方式,也許可以解決一部分效率問題,但是總體上來講,還不能帶來決定性改變。公鏈解決“信任”問題的方法,多少有些極端,所以“犧牲”了效率的大幅度提升。在這個“瓶頸”改變之前,公鏈的效率可能難有實質(zhì)性突破。
聯(lián)盟鏈方面,前邊提到了小“尷尬”,假定放松反倒設計麻煩了,是不是該回頭看看公鏈,找點兒啟示?目前,IBM最初帶起來的框架之風已經(jīng)刮成了平臺之風,平臺功能越來越多、越來越重,造成了學習、設計、部署、運維方面的困難,為什么聯(lián)盟鏈不能在注入信任之后,還能兼顧公鏈的易部署性呢?我近期在《新“匯通天下”:用穩(wěn)定幣實現(xiàn)跨境支付方案》一文中,曾對Ripple模式嘗試進行一些改變,Ripple設計中的簡化部署很值得大家認真思考,如果要做平臺,那就應該把面向業(yè)務的功能和面向賬本的存儲分開考慮,從這個角度講,聯(lián)盟鏈中的“鏈”最重要的應該是可信連接,而不是所謂的系統(tǒng)底層;如果想要易于推廣,那就得易于部署;而易于部署的前提就是功能上有所舍棄,畢竟有太多的事兒并不需要區(qū)塊鏈去承擔,比如,智能合約。最近V神發(fā)推特表示了對“智能合約”這一叫法的“遺憾”,很多人也吐槽過智能合約,那究竟聯(lián)盟鏈是否真的需要一個強大的智能合約?我們玩區(qū)塊鏈真的是為了智能合約?如果說我在區(qū)塊鏈上認識不到位、“開倒車”,那就“開倒車”吧,也許下一代技術(shù)真的能解決這些問題,但革命勝利前,大家是真的想用區(qū)塊鏈做些能夠有較大范圍、有價值影響的設計,去證明區(qū)塊鏈的價值,還是繼續(xù)這么別別扭扭呢?如果是前者,是不是可以重新理解下公鏈,理解下Ripple,再看看平臺設計,也許區(qū)塊鏈不是用來做平臺的,而是用來讓用戶信息、核心信息與平臺分離的,比如,有可能是下邊這樣么?
用戶之間通過區(qū)塊鏈協(xié)議共享必要的賬本信息,基于區(qū)塊鏈機制進行身份驗證,解決可信連接,而復雜業(yè)務功能都是由平臺功能層負責的,包括連接海量存儲必須的IDC。這種方式便于在各用戶的本地系統(tǒng)之間形成可信連接,并調(diào)用強大的平臺功能,但是分離開區(qū)塊鏈層和功能層。平臺功能是可信的,對于聯(lián)盟鏈而言,既然注入了信任,又不去信任不是浪費嗎?
聯(lián)盟鏈的很多設計本就可以被分布式系統(tǒng)替代的,如果談價值的話,我覺得還是從公鏈機制中保存點對點的連接和交互最重要,這個不是傳統(tǒng)分布式系統(tǒng)的設計方向,讓每個機構(gòu)真的是自己參與而非“代理”參與,讓區(qū)塊鏈真的成為協(xié)議而非平臺,也許這個才是聯(lián)盟鏈的設計方向。
說到未來,還剩下虛擬數(shù)字貨幣這部分,我不是個數(shù)字貨幣的投資者,從我這個無“幣”者的角度看,虛擬數(shù)字貨幣即便要在西方廣泛流行,也必須依靠與法幣的合法兌換以及價值相對穩(wěn)定的兌換,這也就真的具備了將資產(chǎn)數(shù)字化的能力,絕大多數(shù)人都是投資者而非投機者。數(shù)字貨幣方面最重要的其實還是法定數(shù)字貨幣,只有法定數(shù)字貨幣實現(xiàn)了,區(qū)塊鏈的全球價值網(wǎng)絡之夢才會成真,而上圖的聯(lián)盟鏈形態(tài)也將獲得更大的價值,所以我才認為,聯(lián)盟鏈最重要的是能保持公鏈中的“真”點對點機制和易部署性。
區(qū)塊鏈走過了激蕩的十年,雖然了解其技術(shù)的人還不多,在開發(fā)者群體中,區(qū)塊鏈依然是少數(shù),它的名氣更多還是被比特幣帶起來的,畢竟比特幣創(chuàng)造了人類歷史上資產(chǎn)價格上升速度之最,但是,所有研究區(qū)塊鏈、熱衷區(qū)塊鏈的人,特別是技術(shù)人員,都不希望它停留在這個層面,大家都在技術(shù)的現(xiàn)實主義中欣賞著一朵浪漫之花,期待著它的盛開。
主辦單位:中國電力發(fā)展促進會 網(wǎng)站運營:北京中電創(chuàng)智科技有限公司 國網(wǎng)信通億力科技有限責任公司 銷售熱線:400-007-1585
項目合作:400-007-1585 投稿:63413737 傳真:010-58689040 投稿郵箱:yaoguisheng@chinapower.com.cn
《 中華人民共和國電信與信息服務業(yè)務經(jīng)營許可證 》編號:京ICP證140522號 京ICP備14013100號 京公安備11010602010147號
以比特幣為旗幟的區(qū)塊鏈技術(shù)轉(zhuǎn)眼間已經(jīng)走過十年了,人們常感慨“十年一代人”,對于現(xiàn)在這個三年就會有代溝的快速發(fā)展時代,十年似乎已經(jīng)很久了。我接觸區(qū)塊鏈大概一年時間,據(jù)說在這個領域三年就是資深或者專家了,可見,這個領域盡管有十年歷史,卻還差些積累,同樣十年左右歷程的云計算,目前已經(jīng)是“鋪天蓋地”了。雖然有諸多不盡人意,但我依然覺得這是個有趣、有想象力的領域,所以,我把自己通過這一年學習得來的對區(qū)塊鏈的粗淺認識整理出來與大家一起討論討論。我是個業(yè)務架構(gòu)設計人員,所以,我對區(qū)塊鏈的理解比較偏重“業(yè)務”和“架構(gòu)”。
一、我所認識的比特幣
作為開山鼻祖,比特幣是所有接觸區(qū)塊鏈的人一定要了解的,尤其是技術(shù)人員。不去了解比特幣、以太坊,也就不會給技術(shù)插上想象力的翅膀,那樣還不如直接研究分布式系統(tǒng)更實際。我個人對比特幣的設計思路總結(jié)如下:
按照中本聰自己在白皮書中的說法,他單純是在設計一個點對點的電子現(xiàn)金交易系統(tǒng),為此需要確保交易安全和資金安全,要確保不能“雙花”、不能“亂花”。通過UTXO模型和區(qū)塊鏈的技術(shù)保證不會出現(xiàn)“雙花”,也使歷史記錄的可信性獲得提高;通過非對稱加密確保你的“錢”只能自己花,不會被別人花掉。通過工作量證明保證賬本唯一性,再通過經(jīng)濟手段“制約”算力強人不去作惡。這方面的討論很多了,本文也不贅述。反復讀白皮書,感受最深的其實是對專一目標的極客追求和架構(gòu)設計上的平衡,中本聰只想實現(xiàn)一個點對點的電子現(xiàn)金交易系統(tǒng),為了安全,他選擇做出效率的犧牲,所以,據(jù)說BM要提高交易效率時,他批評BM不懂比特幣。設計上,中本聰沒打算支持他這個系統(tǒng)目標以外的任何應用,也即,不提供更多的可擴展余地,因為這一方面會引入對電子現(xiàn)金系統(tǒng)而言既不必要又可能致命的各種“缺陷”,又會破壞比特幣高度精簡的數(shù)據(jù)結(jié)構(gòu),比特幣為了應對其對存儲的壓力,幾乎把數(shù)據(jù)需求壓縮到最低。越簡單越安全,而這個對電子現(xiàn)金系統(tǒng),特別是一個期望無人維護、自動運行的電子現(xiàn)金系統(tǒng)來講,恰恰是可靠性、安全性和公信力的基礎。后邊有不少嘗試對比特幣進行的改造、擴展都以失敗告終,其實也說明了設計上的剛性。如果不能很好理解比特幣設計的初衷和它加給自己的局限,去任意拓展想象力,結(jié)果恐怕不會太好。設計目標和約束會決定系統(tǒng)的特點與適用范圍,如果擴大適用范圍,也必須對目標和約束進行修改。以太坊就是這么干的。
二、我所認識的以太坊
以太坊是V神2013年推出的,與中本聰不同的是,他是這個領域可以見到真身的“大神”。以太坊其實也挺復雜的,不過從我這個業(yè)務架構(gòu)人員的視角來看,我覺得以太坊的整體邏輯如下:
過于簡單了?也許吧。V神在以太坊白皮書中詳細剖析了比特幣設計,提出了四個主要不足:不支持圖靈完備、狀態(tài)少、區(qū)塊盲、價值盲。我技術(shù)道行不深,所以,覺得后兩個不是什么大問題。前兩個則與設計目標和約束有關,中本聰只想做一個點對點的電子現(xiàn)金系統(tǒng),沒想支持其他應用,那么圖靈完備、更多的狀態(tài)對他而言就沒什么意義,“現(xiàn)金”不是在你兜里就是在我兜里,本來也不需要那么多狀態(tài)。V神想做的就沒這么簡單了,據(jù)說他跟初始團隊共同想出了“世界計算機”這個概念,圖靈完備和狀態(tài)擴展對于他而言就是必備的。他希望以太坊能在比特幣這種“去信任”機制上發(fā)展出更多的應用,包括分布式自治組織(DAO)。所以,比特幣白皮書沒怎么談應用,因為它的系統(tǒng)目標很單一,甚至明確說有些東西就該依靠鏈下處理;以太坊的白皮書上就講了很多應用,因為它希望構(gòu)造一個“新世界”,這個想法V神在接受過采訪中也多次表達過。就共識邏輯而言,比特幣只是確認簽名和一筆交易在歷史上存在且沒有被其用于其他交易;以太坊就復雜了,它要確認一段代碼邏輯的運行結(jié)果,也繼承了比特幣的共識思路,就是人手一本賬、人人都驗證,這就使代碼邏輯不能太過復雜,否則會有節(jié)點運行不了,效率太低也會影響共識的達成。比特幣雖然效率低,但是系統(tǒng)用途單一,習慣了也就忍了;以太坊給大家插上了翅膀,但是卻實實在在地感覺到“地心引力”太大,開玩笑地講,以太坊其實比比特幣“折磨”人。V神的設計依然是劃時代的,很有突破性,對比特幣設計目標的修改也很明確,這是做區(qū)塊鏈技術(shù)研究和設計的人必須認真學習的。
三、我所認識的聯(lián)盟鏈
我覺得聯(lián)盟鏈是對公鏈的“反思”,所以搞了很多約束上的調(diào)整,而且五花八門,怎么想的都有。從高階理念的角度,聯(lián)盟鏈的誕生實際上也是對社會現(xiàn)實的反映,對此,我總結(jié)了一張圖:
社會環(huán)境已經(jīng)從具有較強依附關系的中心化輻射狀生態(tài)結(jié)構(gòu)逐漸演進至平臺化、多中心、自由協(xié)作的網(wǎng)狀體系,尤其是在企業(yè)端,根據(jù)康威定律,設計對象的組織結(jié)構(gòu)會映射到其系統(tǒng)結(jié)構(gòu),所以,符合多中心網(wǎng)狀生態(tài)特點的系統(tǒng)架構(gòu)必然會應運而生。傳統(tǒng)的分布式系統(tǒng)其誕生目的主要是為了提升系統(tǒng)性能,而區(qū)塊鏈系統(tǒng)則更多考慮了如何幫助用戶平等參與網(wǎng)絡,這應該是二者在設計理念上的核心差別,因此,區(qū)塊鏈系統(tǒng)比傳統(tǒng)的分布式系統(tǒng)更適于多方共贏生態(tài)環(huán)境的構(gòu)建。這個是看起來有點兒“務虛”,但是也有其道理的聯(lián)盟鏈的價值。公鏈的問題在于,如果現(xiàn)階段應用,顯然不符合企業(yè)端生態(tài)的實際情況,企業(yè)端的生態(tài)環(huán)境即便你一開始沒設計中心也會自然產(chǎn)生中心,這是人的社會性決定的,所以也不要那么排斥所謂的“中心化”,鏡子中照出來的無論好不好看都是你自己,化妝不解決本質(zhì)問題。
聯(lián)盟鏈既然面向企業(yè),自然會把提升效率放到一個很高的優(yōu)先級上,于是有了一些假定上的放松,比如,節(jié)點都是授權(quán)加入,實際上注入了信任;有了信任,共識方面可以放松,都回到了傳統(tǒng)分布式系統(tǒng)的路線上;再基于信任,出塊速度可達到秒級、毫秒級,不擔心中本聰考慮的傳播過快存在的安全問題。放松假定上最徹底的是微軟的Coco,將節(jié)點放在基于硬件的可信執(zhí)行環(huán)境中,所以,智能合約不用每個節(jié)點都執(zhí)行,只執(zhí)行一次,結(jié)果大家信任,共識也采取簡單的跟隨機制,所以它還能處理別的聯(lián)盟鏈搞不定的“不確定性計算”。聯(lián)盟鏈對公鏈做了很多調(diào)整,有的徹底有的不徹底,由于多數(shù)聯(lián)盟鏈存在節(jié)點數(shù)量上限,所以,節(jié)點在聯(lián)盟鏈中通常代表節(jié)點自己而非網(wǎng)絡參與者,有點“代理”的意思,也算是讓對人的信任轉(zhuǎn)移到了對機器的信任,但是不同于公鏈這種節(jié)點無上限、節(jié)點直接代表參與者的結(jié)構(gòu),這種差別使聯(lián)盟鏈在放松假定之后反而比公鏈設計、部署更復雜了,有點兒小“尷尬”。
四、我所認識的共識
共識是區(qū)塊鏈中炒的很熱的概念,甚至會讓非技術(shù)出身的同學覺得“共識”是區(qū)塊鏈發(fā)明的。我對共識了解不多,只是根據(jù)資料總結(jié)了一個共識的發(fā)展路徑或者說學習路徑供大家參考:
共識是高深的數(shù)學問題,上圖中除了POS、DPOS之外,其他定理、共識都由獲得過圖靈獎或者相當于這個級別的專業(yè)數(shù)學論文做支撐,所以共識不是靈光乍現(xiàn)的好用就行,沒有數(shù)學基礎作支持很難保證其可靠性。嚴格來說POS、DPOS才是專門為區(qū)塊鏈設計的共識,但是,缺點是沒有縝密的數(shù)學論證,盡管以太坊的大神中有很多數(shù)學方面的高手。
此外,共識這個詞對業(yè)務人員和技術(shù)人員來講是有很大區(qū)別的,業(yè)務上的共識通常指共同遵守的業(yè)務規(guī)則和一致的結(jié)果,而對技術(shù)人員來講卻是個與可以與業(yè)務幾乎沒有關系的話題。
五、我所認識的區(qū)塊鏈架構(gòu)
回顧了比特幣、以太坊和聯(lián)盟鏈之后,我總結(jié)了一個我個人視角的區(qū)塊鏈一般架構(gòu):
我認為廣義區(qū)塊鏈的設計主要包括數(shù)據(jù)層、網(wǎng)絡層、共識層、激勵層、智能合約層,但是實際上,共識層、激勵層、智能合約層都是可以選的,不是必須要有,每一層中具體機制也可以靈活變化。網(wǎng)絡層雖然必選,但是其機制卻是可選的。最不能動的是數(shù)據(jù)層,這一層的塊鏈式數(shù)據(jù)結(jié)構(gòu)是鐵打的,但有人會說Codar呢?Codar自己只說是受區(qū)塊鏈啟發(fā),從來沒說自己是區(qū)塊鏈。
如果用我們常用的軟件架構(gòu)視角來看,也可以這么轉(zhuǎn)換下:
共識其實可以分成業(yè)務和數(shù)據(jù)庫兩部分,前者是業(yè)務邏輯的共識也就是智能合約,后者是記賬權(quán)共識也就是數(shù)據(jù)寫入權(quán)??梢员容^出區(qū)塊鏈系統(tǒng)與一般軟件系統(tǒng)其實主要差別就在于底層數(shù)據(jù)庫的實現(xiàn)和業(yè)務邏輯層關于代幣的設計上。這也是為什么目前就設計來講,除了涉及虛擬數(shù)字貨幣的應用難以用傳統(tǒng)分布式系統(tǒng)替代,而其他類型的區(qū)塊鏈設計尤其是聯(lián)盟鏈環(huán)境下的設計幾乎都可以被替代的原因,替代主要也就是對數(shù)據(jù)層的替代。
六、我所認識的區(qū)塊鏈未來
未來總有些幻影,不是那么容易去辨別的,技術(shù)發(fā)展太快,我這種“三腳貓”的功夫也不敢輕易給個時限、下個結(jié)論,只能說說方向性的認識。
公鏈技術(shù)在效率方面有些很復雜的東西,我說不清楚,分片、L2層、狀態(tài)通道這些會給公鏈進一步賦能的技術(shù)或者設計方式,也許可以解決一部分效率問題,但是總體上來講,還不能帶來決定性改變。公鏈解決“信任”問題的方法,多少有些極端,所以“犧牲”了效率的大幅度提升。在這個“瓶頸”改變之前,公鏈的效率可能難有實質(zhì)性突破。
聯(lián)盟鏈方面,前邊提到了小“尷尬”,假定放松反倒設計麻煩了,是不是該回頭看看公鏈,找點兒啟示?目前,IBM最初帶起來的框架之風已經(jīng)刮成了平臺之風,平臺功能越來越多、越來越重,造成了學習、設計、部署、運維方面的困難,為什么聯(lián)盟鏈不能在注入信任之后,還能兼顧公鏈的易部署性呢?我近期在《新“匯通天下”:用穩(wěn)定幣實現(xiàn)跨境支付方案》一文中,曾對Ripple模式嘗試進行一些改變,Ripple設計中的簡化部署很值得大家認真思考,如果要做平臺,那就應該把面向業(yè)務的功能和面向賬本的存儲分開考慮,從這個角度講,聯(lián)盟鏈中的“鏈”最重要的應該是可信連接,而不是所謂的系統(tǒng)底層;如果想要易于推廣,那就得易于部署;而易于部署的前提就是功能上有所舍棄,畢竟有太多的事兒并不需要區(qū)塊鏈去承擔,比如,智能合約。最近V神發(fā)推特表示了對“智能合約”這一叫法的“遺憾”,很多人也吐槽過智能合約,那究竟聯(lián)盟鏈是否真的需要一個強大的智能合約?我們玩區(qū)塊鏈真的是為了智能合約?如果說我在區(qū)塊鏈上認識不到位、“開倒車”,那就“開倒車”吧,也許下一代技術(shù)真的能解決這些問題,但革命勝利前,大家是真的想用區(qū)塊鏈做些能夠有較大范圍、有價值影響的設計,去證明區(qū)塊鏈的價值,還是繼續(xù)這么別別扭扭呢?如果是前者,是不是可以重新理解下公鏈,理解下Ripple,再看看平臺設計,也許區(qū)塊鏈不是用來做平臺的,而是用來讓用戶信息、核心信息與平臺分離的,比如,有可能是下邊這樣么?
用戶之間通過區(qū)塊鏈協(xié)議共享必要的賬本信息,基于區(qū)塊鏈機制進行身份驗證,解決可信連接,而復雜業(yè)務功能都是由平臺功能層負責的,包括連接海量存儲必須的IDC。這種方式便于在各用戶的本地系統(tǒng)之間形成可信連接,并調(diào)用強大的平臺功能,但是分離開區(qū)塊鏈層和功能層。平臺功能是可信的,對于聯(lián)盟鏈而言,既然注入了信任,又不去信任不是浪費嗎?
聯(lián)盟鏈的很多設計本就可以被分布式系統(tǒng)替代的,如果談價值的話,我覺得還是從公鏈機制中保存點對點的連接和交互最重要,這個不是傳統(tǒng)分布式系統(tǒng)的設計方向,讓每個機構(gòu)真的是自己參與而非“代理”參與,讓區(qū)塊鏈真的成為協(xié)議而非平臺,也許這個才是聯(lián)盟鏈的設計方向。
說到未來,還剩下虛擬數(shù)字貨幣這部分,我不是個數(shù)字貨幣的投資者,從我這個無“幣”者的角度看,虛擬數(shù)字貨幣即便要在西方廣泛流行,也必須依靠與法幣的合法兌換以及價值相對穩(wěn)定的兌換,這也就真的具備了將資產(chǎn)數(shù)字化的能力,絕大多數(shù)人都是投資者而非投機者。數(shù)字貨幣方面最重要的其實還是法定數(shù)字貨幣,只有法定數(shù)字貨幣實現(xiàn)了,區(qū)塊鏈的全球價值網(wǎng)絡之夢才會成真,而上圖的聯(lián)盟鏈形態(tài)也將獲得更大的價值,所以我才認為,聯(lián)盟鏈最重要的是能保持公鏈中的“真”點對點機制和易部署性。
區(qū)塊鏈走過了激蕩的十年,雖然了解其技術(shù)的人還不多,在開發(fā)者群體中,區(qū)塊鏈依然是少數(shù),它的名氣更多還是被比特幣帶起來的,畢竟比特幣創(chuàng)造了人類歷史上資產(chǎn)價格上升速度之最,但是,所有研究區(qū)塊鏈、熱衷區(qū)塊鏈的人,特別是技術(shù)人員,都不希望它停留在這個層面,大家都在技術(shù)的現(xiàn)實主義中欣賞著一朵浪漫之花,期待著它的盛開。