公鏈真的不夠好用嗎?聯盟鏈對公鏈做了什麼調整?
鈺湚/張詠晴編譯
2018-11-02 13:55

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

 

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

 

我所認識的聯盟鏈

 

我覺得聯盟鏈是對公鏈的「反思」,所以搞了很多約束上的調整,而且五花八門,怎麼想的都有。從高階理念的角度,聯盟鏈的誕生實際上也是對社會現實的反映,對此,我總結了一張圖:

 

我认识的联盟链

 

社會環境已經從具有較強依附關係的中心化輻射狀生態結構,逐漸演進至平台化、多中心、自由協作的網狀體系,尤其是在企業端,根據康威法則(Conway's Law),設計對象的組織結構,會映射到其系統結構,所以,符合多中心網狀生態特點的系統架構,必然會應運而生。

 

傳統的分散式系統,其誕生目的,主要是為了提升系統性能,而區塊鏈系統則更多考慮了如何幫助用戶平等參與網路,這應該是二者在設計理念上的核心差別,因此,區塊鏈系統比傳統的分散式系統,更適於多方共贏生態環境的構建。這個是看起來有點兒「務虛」,但是也有其道理的聯盟鏈的價值。

 

公鏈的問題在於,如果現階段應用,顯然不符合企業端生態的實際情況,企業端的生態環境即便你一開始沒設計中心,也會自然產生中心,這是人的社會性決定的,所以也不要那麼排斥所謂的「中心化」,鏡子中照出來的,無論好不好看都是你自己,化妝不解決本質問題。

 

聯盟鏈既然面向企業,自然會把提升效率放到一個很高的優先級別上,於是有了一些假定上的放鬆,比如,節點都是授權加入,實際上注入了信任;有了信任,共識方面可以放鬆,都回到了傳統分散式系統的路線上;再基於信任,出塊速度可達到秒級、毫秒級,不擔心中本聰考慮的傳播過快存在的安全問題。

 

在放鬆這些假定上,做得最徹底的是微軟的Coco,將節點放在基於硬體的可信執行環境中,所以,智慧合約不用每個節點都執行,只執行一次,結果大家信任,共識也採取簡單的跟隨機制,所以它還能處理別的聯盟鏈搞不定的「不確定性計算」。

 

聯盟鏈對公鏈做了很多調整,有的徹底有的不徹底,由於多數聯盟鏈存在節點數量上限,所以,節點在聯盟鏈中,通常代表節點自己而非網路參與者,有點「代理」的意思,也算是讓對人的信任轉移到了對機器的信任。但是不同於公鏈這種節點無上限、節點直接代表參與者的結構,這種差別使聯盟鏈在放鬆了假定之後,反而比公鏈設計、部署更複雜了,有點兒小「尷尬」。

 

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