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