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