區(qū)塊鏈了不起的地方在哪里
輿論是個很有意思的東西。去年年底到今年年初,我們聽到了那么多關(guān)于區(qū)塊鏈技術(shù)的贊美,現(xiàn)在,我們又聽到人們對這項技術(shù)的各種全盤否定。最近我在不同地方看到了不同文章,獲得了不少點擊數(shù),并被人們大量轉(zhuǎn)發(fā),這些火熱的文章都是一個主題,強調(diào)區(qū)塊鏈技術(shù)無用論調(diào),并切列舉了各種與區(qū)塊鏈技術(shù)相關(guān)的騙局。
其實這也很正常。市場研究公司 Gartner 早在九十年代就總結(jié)出一個叫做「技術(shù)循環(huán)曲線 The Hype Cycle」的模型,來總結(jié)一項全新科技如何在各種熱炒冷貶和人們的希望與失望之中,成熟演變的過程。
Gartner 技術(shù)循環(huán)曲線的基本周期,揭示了新技術(shù)所經(jīng)歷的周期:誕生的促動期-過高期望的峰值-泡沫化的底谷期-穩(wěn)步爬升的光明期-實質(zhì)生產(chǎn) (Image Credit: https://www.gartner.com/en/research/methodologies/gartner-hype-cycle)
Gartner 在 2018 年更新的技術(shù)循環(huán)曲線最新狀態(tài),列出區(qū)塊鏈技術(shù)正在從「過高期望的峰值」步入「泡沫化的底谷期」( Image Credit: https://www.gartner.com/smarterwithgartner/5-trends-emerge-in-gartner-hype-cycle-for-emerging-technologies-2018/ )
對于一個非資深技術(shù)背景的人,在技術(shù)早期發(fā)展階段,要從蕪雜的市場表現(xiàn)中理清技術(shù)價值的本質(zhì),實屬難上加難。越是基礎(chǔ)層面的技術(shù)發(fā)展,越會造成嚴(yán)重的信息不對稱,越是容易被人利用來構(gòu)造騙局,越是需要深入探究,透過現(xiàn)象看清其本質(zhì),同樣的局面在互聯(lián)網(wǎng)早期一樣出現(xiàn)過。
作為計算機科學(xué)的PhD, 這個過程我花了近十年,才略見端倪。我看到了區(qū)塊鏈技術(shù)本質(zhì)上帶來了什么,有什么是現(xiàn)有技術(shù)和基礎(chǔ)設(shè)施及其組合無法實現(xiàn)的。正值中本聰發(fā)表關(guān)于比特幣的論文十周年之際,我想把自己在區(qū)塊鏈這個領(lǐng)域內(nèi)的經(jīng)歷,以及為什么我相信區(qū)塊鏈技術(shù)是一項了不起的技術(shù)梳理一下,通過這篇文章分享給大家。
第一個十年
記得 2009 年,我還在微軟亞洲研究院(MSRA)趕論文,投ACM SIGGRAPH 年會 (一個計算機圖形學(xué)領(lǐng)域的頂會) 的年代,無意看到了中本聰關(guān)于比特幣的論文,覺得很有意思,安利了身邊的朋友一起去挖礦。當(dāng)然,幾周之后也就忘記了。
當(dāng)時我還沒有開始從事分布式系統(tǒng)方向的研究,沒有意識到這全網(wǎng)發(fā)生的premissionless共識協(xié)議有多么偉大,甩了拜占庭容錯(BFT)算法幾條街,也沒有意識到這個東西在若干年之后會改變了自己的財務(wù)軌跡,更沒有意識到這項工作是一個全新世界的開端。
我非常慶幸自己經(jīng)歷過的這10年,雖然大部分時候,只是作為一個看客。
不少朋友問我,區(qū)塊鏈這個東西是個什么技術(shù),靠譜嗎?這里先給結(jié)論。對于問題的前半部分, 我的回答是:區(qū)塊鏈?zhǔn)且粋€獨特的技術(shù),并且實現(xiàn)了全所未有的能力,這個能力無法用既有技術(shù)的組合實現(xiàn)。對于問題的后半部分,在這里我不作任何投資建議,但是我的回答是肯定的:區(qū)塊鏈技術(shù)一定有切實落地的場景,可以滿足之前無法滿足的需求,從前所未有的角度帶來效益的提升。但是,我必須指出,在我看來,區(qū)塊鏈技術(shù)靠譜的場景,極大概率不是大家眼下看到的這些,也不是對現(xiàn)有解決方案的改進,而是全新的范式下新的業(yè)務(wù)模型、新的盈利模式。評估一項技術(shù)本身的正確性是相對容易的,而要評估一項技術(shù)能產(chǎn)生的社會影響力以及經(jīng)濟價值,卻是難上加難。越是帶來根本上變化的技術(shù),其發(fā)展軌跡就越是難以琢磨。區(qū)塊鏈就是一個例子。
2013年,那時我在微軟總部主導(dǎo)了一個基于GPU集群的機器學(xué)習(xí)計算平臺的設(shè)計和研發(fā)工作。我用這個架構(gòu)在自己家里挖了一段時間的萊特幣(LTC)?,F(xiàn)在來看,那是我首次「脫貧」,摘掉了「no-coiner」的帽子。而后,我也入坑交易所,作為一名新韭菜入場了。然后在若干次被割之后,痛定思痛,最后開啟了量化交易的職業(yè)支線。在這個過程中,對技術(shù)的認(rèn)可并沒有幫助我對加密貨幣的幣價有任何有效的認(rèn)知。一個沒有切實落地的技術(shù),價值何來?只用量化程序去發(fā)掘短線的價格趨勢就好了。當(dāng)時我沒有看明白,區(qū)塊鏈到底帶來了什么。2017年,我來創(chuàng)新工場做EIR(駐場企業(yè)家)兼投資人,看了無數(shù)區(qū)塊鏈的商業(yè)計劃書,各種花式白皮書,從底層技術(shù)到上層應(yīng)用,各種漏洞百出的技術(shù)架構(gòu),自說自話的經(jīng)濟模型,荒誕鬼扯的應(yīng)用場景,簡直百花齊放。還好這一年里面,我們投了比特大陸,稍微正色履行了一下我這個投資人的角色。礦機業(yè)務(wù)確實賺錢,交易所也很賺錢,但這一切都是建立在對數(shù)字貨幣未來期許的基礎(chǔ)上,而不是基于任何當(dāng)下區(qū)塊鏈的切實業(yè)務(wù)。
這一場曠日持久的擊鼓傳花還可以走多遠(yuǎn)?如果始終沒有大體量的切實落地的業(yè)務(wù)頂上,相信總有落幕的那天。不過誰知道呢,就像2016年的那場以太幣的傳銷始終沒有崩盤,而是被2017年那場更大規(guī)模的ICO續(xù)上命了。不過在這個時期,市場上的DApp給了我一些提示。
核心技術(shù)價值
我相信,區(qū)塊鏈技術(shù)帶來了一些特別的東西,前所未有的東西。
時間到了2018年,7月份出現(xiàn)了一個游戲,玩家眾多,又一次嚴(yán)重阻塞了以太坊網(wǎng)絡(luò)。Fomo3D,一個典型的資金盤游戲,玩家以遞增的價格買鑰匙,如果一段時間內(nèi)無人買鑰匙則游戲停止,最后一個鑰匙買家贏得沉淀資金的一半,另一半資金均價回購所有的鑰匙。
這是一個設(shè)計的還不錯的龐氏游戲,首輪結(jié)束時瓜分了價值180萬美元等值的以太幣。有意思的倒不是這個游戲本身,而是這個游戲執(zhí)行的方式。這個資金盤沒有任何的價值包裝,只是赤裸裸地描述規(guī)則,項目方也是完全匿名,沒有任何背景可查,分分鐘準(zhǔn)備跑路的樣子。但是游戲就在這樣一個完全沒有信任背書的情況下,開盤了,無數(shù)玩家竟然都信了,都沖進去了。然后一切都如期發(fā)生了,之前約定的規(guī)則都被嚴(yán)格執(zhí)行了,沒有任何意外。通常龐氏總是和騙局連在一起,不過這個游戲是一場「龐氏」,但卻不是一場「騙局」。
這是我想說的區(qū)塊鏈技術(shù)的核心價值(也許是之一),是前所未有的能力,是之前任何信息技術(shù)無法實現(xiàn)的:
在業(yè)務(wù)全部信息可形式化的范疇內(nèi),讓這個計算系統(tǒng)可以自證清白。
回到前面講到的游戲,正是因為運行在以太坊上面,區(qū)塊鏈技術(shù)實現(xiàn)了規(guī)則一旦被制定、被部署,就無法被修改,連運營者開發(fā)者都也無法修改。只要以太坊沒有因為被51%攻擊而摧毀,這些預(yù)設(shè)的規(guī)則就會被嚴(yán)格執(zhí)行,不受任何人的干擾和控制。規(guī)則將以開源的方式部署,任何人都可以查看并確信規(guī)則的每一個細(xì)節(jié)。即使最初的開發(fā)者突然人間蒸發(fā),也不會影響游戲的正常運行。這樣的一個游戲系統(tǒng),自證清白,一切會按照預(yù)設(shè)的方式發(fā)生,而不會有任何意外。所有玩家不需要信任游戲的開發(fā)者不會作惡,也不用擔(dān)心相信游戲的運營過程會有任何的貓膩。如果信息服務(wù)系統(tǒng)可以自證清白,那么其所承載的業(yè)務(wù)就可以贏得所有人的信賴。這個情形其實并不是建立了信任,而是業(yè)務(wù)的運行不需要信任了(trustless)。同時大家也可以很簡單地認(rèn)同這樣的業(yè)務(wù)所傳遞的價值,不需要各種前置的信任建立過程,省去了大量的時間和精力,這就是共識的價值。
但是區(qū)塊鏈技術(shù)不是萬能的,能夠自證清白地運行是有前提的:
1. 相關(guān)業(yè)務(wù)的信息必須能夠被形式化并體現(xiàn)在系統(tǒng)內(nèi)部。所以比特幣的儲值、支付、發(fā)行過程是有保障的、不需要信任的,但是比特幣對法幣的價格不在系統(tǒng)內(nèi)部,系統(tǒng)本身無法保障這個事情,完全依賴外部的信任(或者說信仰。..)
2. 系統(tǒng)的物理計算設(shè)備必須是去中心化的,并且參與系統(tǒng)的過程可以有壁壘,但是必須沒有授權(quán)控制方(premissionless)。較之傳統(tǒng)的支付接入,比特幣作為支付系統(tǒng),任何接入方無需申請,也不需要和任何方簽訂協(xié)議,也不會被費率歧視或者擔(dān)心哪天會被吊銷。
3. 系統(tǒng)承載的業(yè)務(wù)邏輯的代碼必須開源,并且可以證明實際系統(tǒng)中運行的代碼就是源碼公開的那一份。結(jié)合上一條,這意味著,系統(tǒng)的運營也將不再屬于任何一方。所有人在這個系統(tǒng)中都沒有既定規(guī)則以外凌駕于其他人之上的特殊優(yōu)勢,包括開發(fā)者。
脫離特定物理計算設(shè)備的圖靈機
1936年艾倫·圖靈提出了圖靈機這個高度抽象的計算模型,開啟了計算機科學(xué)時代篇章。1945年,馮·諾伊曼在圖靈機的基礎(chǔ)上給出了工程上可以實現(xiàn)馮·諾伊曼架構(gòu),直到現(xiàn)在,大多數(shù)的計算機從CPU到GPU,從Intel到ARM都是遵從這一架構(gòu),并藉由半導(dǎo)體技術(shù)將其的規(guī)模、速度以及性能-功耗比提高到了當(dāng)年不可想象的高度。但是其基本原理始終是下圖的結(jié)構(gòu)。
如果我們用計算機體系結(jié)構(gòu)的視角去看待區(qū)塊鏈,他是一個馮·諾伊曼架構(gòu)的延伸。
在區(qū)塊鏈中,「輸入」是未定序未確認(rèn)的交易,「輸出」是有序的經(jīng)過確認(rèn)的交易,而「內(nèi)存」中則是賬簿的狀態(tài)。其中央處理器執(zhí)行的是硬編碼(hardcoded)在區(qū)塊鏈節(jié)點軟件中的交易邏輯,或者是第三方部署的智能合約。
我這里從這個視角展現(xiàn)區(qū)塊鏈,是為了用最簡潔的方式介紹區(qū)塊鏈的工作原理,并不是想說區(qū)塊鏈本身也是一個通用計算機,或者說世界大計算機。
馮·諾伊曼架構(gòu)最初是在一個完全中心化的設(shè)定下給出的,現(xiàn)在的計算機單機、大型機乃至集群和云服務(wù),本質(zhì)上都是這樣的一個模型。他們關(guān)心的是高效地完成計算,是狀態(tài)被正確更新,得出預(yù)期的輸出。整個系統(tǒng)的輸入、執(zhí)行邏輯和原始狀態(tài)都被可信的單一方控制。
而區(qū)塊鏈?zhǔn)窃谝粋€去中心化的設(shè)定下給出的,整個計算系統(tǒng)不被任何一方長期控制。區(qū)塊鏈關(guān)心的是這個計算是如何完成的,系統(tǒng)的輸入是否合法,執(zhí)行邏輯是不是被篡改。至于其承載的實際計算量,用一臺單機就可以分分鐘計算完這十年的所有歷史交易?,F(xiàn)有的馮·諾伊曼架構(gòu)的計算系統(tǒng),其計算過程始終在一個固定的物理計算設(shè)備上完成,并且這個計算設(shè)備有單一的控制方??赡苁且粋€手機,一臺電腦,甚至一個數(shù)據(jù)中心。對于這個系統(tǒng)的控制者,只要防好黑客,他是可以相信這個計算系統(tǒng)的。而其他人則沒有信任的依據(jù),系統(tǒng)的控制者也無法向第三方證明系統(tǒng)是可信的,即使開源了也不行,即使用上了SGX技術(shù)也沒什么幫助。
而這正是區(qū)塊鏈所攻克的問題。區(qū)塊鏈將馮·諾伊曼架構(gòu)的計算架構(gòu)進一步拓展,使其同特定的物理計算設(shè)備分離,才能從根本上避免計算過程被單一的控制方掌控,讓所有人都可以信賴這個計算系統(tǒng)。無論是工作量證明(PoW)、權(quán)益證明(PoS)或者拜占庭容錯(BFT)等共識機制,上述計算過程的實際步驟在全球不同的物理基礎(chǔ)(節(jié)點)上完成。而不同共識算法的本質(zhì)就是給出一個依次選擇這些物理基礎(chǔ)的方案,保證其公允,保證其安全。同時在數(shù)據(jù)傳遞層面(提交輸入,獲取輸出),藉由既有的點對點網(wǎng)絡(luò)技術(shù),使得通訊沒有一個固定的接入點,不依賴于特定的IP地址。從而使得這個計算系統(tǒng)能夠在所有人的監(jiān)督下,可信地完成計算過程,很難被篡改,也很難被阻止。
為了脫離特定的物理計算設(shè)備,區(qū)塊鏈在性能上付出了重大的代價。在不同的節(jié)點上間歇完成計算步驟,需要每個節(jié)點都準(zhǔn)備好計算所需要的上下文和輸入數(shù)據(jù)。在一個計算步驟完成之后,需要每一個節(jié)點都獲取到最新的輸出數(shù)據(jù),并更新上下文。期間涉及到大量的冗余的信息傳遞和存儲以及相應(yīng)的計算。當(dāng)然后續(xù)有非常多的優(yōu)秀團隊,改進這一設(shè)計,提升其性能和容量,但無論設(shè)計如何優(yōu)化,這些冗余的通訊、存儲和計算是不可能徹底避免的。不過這些代價是值得的,它給馮·諾伊曼架構(gòu)賦于了全新的計算本質(zhì):一個可以脫離特定物理基礎(chǔ)的計算方式,一個可被任一第三方信賴的計算過程。
區(qū)塊鏈的計算本質(zhì)
通過剝離數(shù)字貨幣這個構(gòu)建在區(qū)塊鏈技術(shù)上的應(yīng)用,上圖給出了區(qū)塊鏈本質(zhì)上的計算模型。與常規(guī)的馮·諾伊曼架構(gòu)最大的區(qū)別,是同特定的物理計算設(shè)備分離。一旦代碼被部署,狀態(tài)被初始化,全網(wǎng)開始工作,這個計算系統(tǒng)將以不受任何控制方控制的方式開始運行,永不停止。系統(tǒng)不斷獲取外部提交的企圖改變系統(tǒng)狀態(tài)的操作(OP),依次確認(rèn)這些操作,以有序的方式輸出這些合法的操作,并同步執(zhí)行這些操作改變系統(tǒng)的狀態(tài)。
所以:
賬簿不是區(qū)塊鏈的本質(zhì) 這個系統(tǒng)維護的狀態(tài)完全可以是賬簿之外的東西,當(dāng)然更可以不是數(shù)據(jù)庫。它可以是社交關(guān)系圖譜,可是是網(wǎng)頁的相關(guān)性及排名,也可以是每個人信用分?jǐn)?shù)和歷史等等。其規(guī)則所執(zhí)行的也可以不是交易,而是任何可以被形式化、數(shù)字化的信息。交易不可篡改不是區(qū)塊鏈的本質(zhì) 這個系統(tǒng)不可篡改的是既定的規(guī)則(代碼),以及不可篡改的初始狀態(tài)(例如比特幣的傳世區(qū)塊)。如果上層業(yè)務(wù)想要的話,我們完全可以在規(guī)則中包含翻轉(zhuǎn)或者取消交易的內(nèi)容。有序鏈?zhǔn)絽^(qū)塊打包不是區(qū)塊鏈的本質(zhì) 有序輸出數(shù)據(jù)的方式有好多種,區(qū)塊的批量打包也只是現(xiàn)在的系統(tǒng)對于性能和交易確認(rèn)延遲的一個折中。理論上一個一個出也沒問題,只要有序。輸出交易的序也可以不是嚴(yán)格的全局完整的單一線性的序,例如DAG那樣的結(jié)構(gòu)一樣是區(qū)塊鏈的可能實現(xiàn)方式,只要這個不完整的序不會對狀態(tài)重建造成混淆就行。同樣基于異步共識的分片技術(shù)也不具備全局的序,但是也不妨礙它成為高性能區(qū)塊鏈的可能解決方案。當(dāng)然,我們姑且還是可以叫:區(qū)塊鏈」這個名字。
世界計算機不是區(qū)塊鏈的本質(zhì) 區(qū)塊鏈的核心訴求在于關(guān)注計算過程的可信,而不是為了獲得計算的結(jié)果。這一點是與為了高效將計算完成,獲得結(jié)果的云計算本質(zhì)的區(qū)別。云計算無法實現(xiàn)向第三方證明其計算過程是可信的,區(qū)塊鏈對于計算任務(wù)本身也無法向云計算那樣的高效和低成本。
總之,區(qū)塊鏈的計算本質(zhì)是一個可以和特定計算設(shè)備分離的馮·諾伊曼架構(gòu),是可以向第三方證明的可信計算范式,目的是為了計算過程真實可信,支持上層應(yīng)用上實現(xiàn)業(yè)務(wù)邏輯的自證清白,為世界帶來可以計算的信任。