跨鏈釋放 Dapp 創新潛能

買賣虛擬貨幣

作者介紹:

劉毅,清華大學碩士,Random Capital合夥人,區塊鏈和大資料技術專家。20年多種資本市場投資經驗,比特幣早期投資者。如果你有任何問題,歡迎使用郵件與他聯絡:[email protected]

ps:首先恭喜劉毅老師獲得 NPC 內容共建者獎品——由 NPC 成員 Ryan 提供的秘猿科技吉祥物鋼鐵猿猴一隻,猿猴共送出3只,目前已經有兩篇文章入選,只剩一隻!想獲取猿猴請看文末資訊。


 跨鏈是目前行業內最熱的話題之一,也是被誤讀最多的話題(沒有之一)。有人認為跨鏈早就實現了,每個交易所都跨了幾十上百條鏈。有人說交易所是中心化的,讓BTC/ETH/LTC/...無需信任地交易才是跨鏈。又有人說不對,那是跨鏈原子交換或者去中心化交易所,是老概念了,Polkadot/Cosmos遠不止於此。另外也有人認為,側鏈和主鏈的資產可以雙向錨定,所以也是跨鏈...

    雖然每個人心中都有一個哈姆雷特,可以並行不悖。但行業對重要概念缺乏清晰共識,只會帶來混亂和渾水摸魚(各種我們也是跨鏈...)。Polkadot/Cosmos的出發點不是連線現有的公鏈,而首先在於支援開發者快速低成本地開發出新區塊鏈。新區塊鏈可以是應用平臺(支援智慧合約),但更多的新區塊鏈會是去中心化應用,例如以獨立區塊鍊形式存在的去中心化預測市場、TCR、穩定幣、借貸市場、交易所等等,我們不妨稱之為應用鏈。Polkadot/Cosmos不但為開發應用鏈提供工具(Substrate/Cosmos SDK),而且為應用鏈之間實現可信互操作提供基礎設施(Polkadot Relay/Cosmos Hub)。由此可見,Polkadot/Cosmos的跨鏈,核心在於DApp的新形態——應用鏈,以及應用鏈之間的可信互操作。

    那麼跨鏈有什麼意義?首先是與世界計算機(平臺公鏈)相比,應用鏈的共識參與範圍大幅縮小,效能和成本問題隨之迎刃而解。Substrate/Cosmos SDK開發的應用鏈可以很容易地達到1000tps以上的處理能力,而且成本很低,能夠滿足大多數DApp的需求。另一個變化是DApp治理,治理不像效能問題那樣顯而易見,但卻是制DApp發展一大瓶頸。用激進的方式表述本文主題就是:智慧合約混淆了去中心化和可驗證兩個不同的概念,誤導了開發者,令DApp在長達4年的時間裡幾乎在原地打轉。Polkadot/Cosmos(尤其是Polkadot)賦予了DApp鏈上治理能力。透過解除效能和治理兩大發展瓶頸,跨鏈技術有望釋放DApp創新潛力,引發去中心化應用的第三次浪潮。

第一部分:Web3 與 Polkadot 是什麼

為了理解本文的主題,需要了解Web3和DApp的概念。上圖左側這位帥哥是Gavin Wood博士,前以太坊的CTO、EVM和Solidity語言的創造著,也是Parity公司、Web3基金會和Polkadot專案的創始人。在Web3基金會和Polkadot等專案文件中,對Web3願景的文字表述不太一致。但是都包含兩層意思。第一層:Web3是無伺服器的、去中心化的網際網路。Serverless無伺服器也是去中心化的意思,因為在web3憧憬的網路計算架構裡,參與者或者說節點是平等的,沒有伺服器和客戶端的區別,所有節點都或多或少參與網路共識的形成和記錄。去中心化的網際網路有什麼用呢?就是Web3的第二層含義:每個人都能掌握自己的身份、資產和資料。掌握自己的身份,意味著不需要其他人或者組織賦予身份,其他人或者組織也無法冒用、剝奪或者凍結身份。掌握自己的資產,意味著不會被剝奪資產,可以自由處置資產。掌握自己的資料,意味著每個人可以按自身的意願生成、儲存、隱匿、銷燬個人資料,未經他的允許,任何人任何組織都不能使用其個人資料。在數字時代,掌握了自己身份、資產和資料的人,也就掌握了自己的命運。Web3願景並非Web3基金會或者Polkadot專案所獨有。很多區塊鏈專案,包括比特幣、以太坊,都有類似的願景。名稱五花八門,包括開放網路,下一代網際網路等等。

為實現Web3願景,世界需要去中心化的網際網路應用,即DApp。從使用者的角度,去中心化可以簡單理解成,不能被個別或者少數參與者所控制,因此值得信任的應用屬性。具體地說,去中心化對使用者意味著有三個重要屬性:trust minimal、permissioness和censorship resistant,也就是信任最小化、無許可和抗審查,三個屬性跟web3願景一脈相承。透過眾多的去中心化應用,網際網路使用者可以控制自己的數字身份、資產和資料,從而實現Web3願景。區塊鏈是實現DApp的主流技術手段,或者說區塊鏈是DApp的基礎設施。本文所說的區塊鏈,如果加不特殊說明,都是指公鏈。另外本文圍繞實現Web3願景討論,區塊鏈的其他用途(如企業級應用)不在討論範圍之內。

以太坊/EOS/波場三大智慧合約公鏈上已經有上萬個DApp。但是除了少數曇花一現的菠菜遊戲和資金盤以外,使用者極少、而且活躍度很低。甚至已經有人在質疑:去中心化應用是不是個偽概念?我認為出問題的不是去中心化應用,而是智慧合約平臺。可以說在智慧合約平臺上開發去中心化應用已經走入了死衚衕。原因有兩個,第一個是效能和交易執行成本限制。效能低和交易執行成本高是一個硬幣的兩面。例如以太坊全網只有15tps的處理能力,為保證公平同時抵抗女巫攻擊,只能是交易費用競價。使用者體驗到的就是DApp很慢,而且一用都要花錢。整個行業對公鏈效能的關注由來已久,也很多團隊正在探索透過代議制、分層和分片三種思路進行擴容。拙作《萬字長文說透Polkadot架構》整理了擴容的技術路線、遇到的問題和解決方案,以及主要的專案實現,並把Polkadot/Cosmos歸入分片擴容。簡而言之就是,跨鏈技術透過分而治之的方式,在保持互操作性的同時,實現了擴容。本文仍將簡述這部分內容,已經閱讀過《說透》一文的讀者可以跳過隨後的三個小節。

    但是效能/成本並不是智慧合約對DApp的唯一限制。EOS透過代議制的方式,已經能夠達到數千tps的處理能力,比以太坊1.0的效能提升了兩個數量級,而且交易執行成本由開發者負擔,讓DApp摘掉了又慢又貴的帽子。但是EOS主網上線一年了,也在公鏈治理等領域做了大量有益的探索,但是並沒有引發應用層的創新。這不禁讓人懷疑,到以太坊2.0全面落地的時候(大概還需要1-2年時間),DApp的春天是否就真能到來?經過很長時間的反覆思考,我認為除了效能/成本約束以外,DApp還面臨智慧合約平臺第二個重要侷限:去中心化治理缺位,而且為了保護合約的可驗證性,阻礙了去中心化治理的實現。而跨鏈技術(尤其是Polkadot)在實現擴容的同時,為實現有效的去中心化治理提供了技術基礎和模版範例。透過解除效能和治理兩大發展瓶頸,跨鏈技術有望釋放DApp創新潛力,引發去中心化應用的第三次浪潮。

Polkadot是Gavin Wood和Web3基金會提出的Web3技術方案。這兩張圖片都來自於嶽利鵬翻譯的Polkadot白皮書中文版。先看右邊的大圖,Polkadot的基本網路結構是星型的,或者稱為輪輻型。星型的中心是PolkadotRelay中繼鏈,外圍是眾多的Parachain平行鏈。再看左側的小圖,Polkadot網路的參與者有四種角色:Validator驗證人、Nominator提名人、Collator收集人或者核對人,Fisherman釣魚人或者漁夫。DApp可以是部署在平行鏈上的智慧合約,或者整個平行鏈就是一個DApp。使用者在平行鏈發起交易,交易被收集人收集,打包成區塊,交給一組驗證人去驗證。這組驗證人並不是來自平行鏈,而是來自中繼鏈統一管理的驗證人池,透過隨機分組指定給平行鏈。每條平行鏈都有一個出口佇列和一個入口佇列。如果使用者發起的是跨鏈交易,交易就會被放進出口佇列。再被目標平行鏈的收集人放入其入口佇列。目標平行鏈的收集人執行交易,生成區塊,由驗證人組敲定。Polkadot採用出塊過程和敲定過程分開的混合共識協議

除了平行鏈,還有轉接橋把現存的、不能直聯的區塊連結入中繼鏈,例如以太坊和比特幣等。我們已經介紹了收集人和驗證人在系統中的作用,那麼提名人和漁夫是做什麼的呢?提名人是Polkadot基礎通證DOT的持有者,他希望質押DOT獲得收益。但是要麼是因為DOT數量少,要麼是缺少執行維護驗證人節點的專業技能。因此係統提供了另一個參與途徑,就是持幣者選擇他信任的驗證人,把自己的DOT透過驗證人來質押,分享驗證人收益。這樣做的好處是,提高整體質押比例,提升系統安全性,同時也使收益分配更加公平。漁夫的是監控和舉報非法交易,賺取獎金的角色。在Polkadot網路中,平行鏈各自承擔交易執行、資料儲存,同時平行鏈之間能夠互操作,實現與分片擴容非常類似的目標。

第二部分:Cosmos 是什麼

說完Polkadot,再介紹Cosmos。在圖的左上方,A和B是兩條鏈互為側鏈。也就是說,A鏈包含B鏈的SPV輕客戶端,從而A鏈能驗證B鏈的交易。反過來B鏈也包含A鏈的SPV輕客戶端,從而B鏈能驗證A鏈的交易。互為側鏈的結果是,發行在A鏈和B鏈上的通證可以互轉。如果從兩條鏈擴充套件到多條鏈,A和B變成A/B/C/D/E/F,一種外推的想法是仍然沿用兩兩互為側鏈的做法,就形成了左下方的結構。但是這樣做會到來很多問題,每條鏈都要內建其他所有鏈的輕客戶端,同步其他所有鏈的區塊頭,這當然是很大的負擔。而且每增加一條鏈,都需要在其他所有鏈上做修改。隨著區塊鏈數量的增加,複雜度以n*(n-1)/2指數型增長,這顯然是不可行的。

解決的辦法就是改成上圖右上方顯示的結構,中間放一個Hub,Hub本是也是區塊鏈,它跟其他所有鏈都互為側鏈。就是說,每條鏈上的通證都可以轉到Hub上,然後透過Hub轉到其他鏈上,網路互聯的複雜度跟區塊鏈數量是線性關係。這就是Cosmos選擇的架構,在Cosmos的定義裡,接入Hub的鏈稱為Zone分割槽。分割槽要接入Hub需要兩個條件,第一是符合Cosmos標準協議,即IBC鏈間通訊協議。第二是要求Zone具有即時最終性(最好採用Tendermint共識),以確保跨鏈的一致性。而且Cosmos可以支援多個Hub的互聯。對於現存的公鏈,可以透過協議適配接入Cosmos Hub,Cosmos把協議適配閘道器稱為Peg Zone錨定分割槽。最終形成的結構就是右下方圖片展示Cosmos架構。

Cosmos Hub以及其他用Cosmos SDK開發的分割槽都採用Tentermint共識協議,出塊和敲定過程是合一的,只要出塊,就是得到了2/3以上驗證人的簽名驗證。這樣做的好處是簡潔快速,出塊時間可以達到秒級甚至亞秒級,而且具有即時最終性。但是在網路發生分割槽或者驗證人大面積停機等情況下,Tentermint共識有可能暫停出塊。

我們把Serenity也就是以太坊2.0、Polkadot和Cosmos放在一起比較一下。三者都是未來幾年重要的DApp平臺。首先DApp開發方式,三個鏈都支援智慧合約。Serenity還是智慧合約平臺,而Polkadot/Cosmos網路中會有支援智慧合約的平行鏈和分割槽鏈。除此之外,Polkadot和Cosmos帶來了全新的DApp開發方式,就是開發特定應用的區塊鏈。Cosmos為應用鏈提供的工具是Cosmos SDK,目前支援Go語言開發。Polkadot為應用鏈提供的工具是Substrate,目前支援Rust語言開發。Substrate是完整的應用鏈開發工具,具備完整的應用鏈框架,Gavin Wood演示了在全新的電腦上,15分鐘用Substrate釋出出一條應用鏈。另外,Substrate所有模組都可以定製或者替換,功能強大而且非常靈活。相比較而言,Cosmos SDK要單薄一些,它主要提供Tendermint共識引擎、IBC連結通訊協議和通證等核心模組,大部分上層建築需要自行開發。

關於效能,Serenity每個分片大約是100tps,仍然是優先處理gas price高的交易。Polkadot Hub應該能達到上千tps,平行鏈可以自己決定共識演算法、硬體和網路,沒有嚴格的效能上限。Cosmos Hub和分割槽都採用Tendermint,能夠達到上千tps。

關於互操作。Serenity跟以太坊1.0是一樣的,智慧合約可以相互呼叫。Polkadot平行鏈透過Relay與其他平行鏈互操作,透過Bridge與其他鏈互操作。Cosmos分割槽透過Hub可以互轉通證,透過錨定分割槽與其他鏈互轉通證。IBC訊息也有data欄位,就像電子郵件的附件,透過擴充套件資料欄位,分割槽鏈之間可以傳遞任意資料。

接入方式Serenity跟以太坊1.0相同,開發者自行部署智慧合約。Polkadot Relay接入要拍賣插槽,質押數量不菲的DOT。Cosmos與Polkadot 類似,是質押Atom拍賣接入資格。

然後是安全性,Serenity的分片就像是標準集裝箱,DApp放進就行了,安全性由系統保障。與之相對的是Cosmos,應用鏈不論是否接入Hub,都是自己保障安全。Substrate開發的應用鏈是兩個選項,要麼接入Relay成為平行鏈,由Polkadot保障安全;要麼獨立執行,自己保障安全。

最後是DApp升級,它跟後面要重點講的去中心化治理密切相關。在這裡我們簡單地概括為Serenity不支援DApp升級、Polkadot支援DApp的安全升級。Cosmos的分割槽鏈是可升級的,但是Cosmos SDK並沒有內建對升級的支援,需要DApp開發者自行實現升級。

Polkadot/Cosmos最大的創新在於提供了新的DApp開發方式,也就是為開發應用型區塊鏈提供了支援。應用鏈可以透過跨鏈協議互操作,而且每條應用鏈都可以獨享1000tps以上的處理能力,DApp的效能瓶頸被解除了。下面重點講述Polkadot/Cosmos如何解決去中心化治理問題。在此之前,首先要解釋去中心化治理的作用,為什麼去中心化治理是除效能之外的DApp創新的另一大瓶頸。

第三部分:智慧合約的信任來源是什麼?

2013年初,我第一次接觸BTC的時候,比特鏈報最流行的爆款遊戲是中本聰骰子,當時BTC網路一半以上交易量都發生這款菠菜遊戲上。中本聰骰子玩法非常簡單,無需註冊,也不需要安裝客戶端。Satoshidice.com網站公佈多個投注地址,對應不同賠率。只要轉入比特幣,就可以參與遊戲。如果莊家輸了,獎金會轉回玩家的傳送地址。如果玩家輸了,也會有很少一點btc發回來,相當於告知結果。中本聰骰子的真正創新在於:玩家不必擔心莊家作弊,或者說賭局能夠自證公平。證明的方法見上圖,簡單說就是,服務端預先生成隨機數,並公佈隨機數的雜湊值。每輪賭局服務端用隨機數決定輸贏,公佈賭局結果之後,也公佈隨機數。玩家可以驗證隨機數和雜湊值的對應關係,從而確認隨機數是預先生成的。中本聰骰子的創始人是Eric Voorhees,他也是後來的著名加密貨幣兌換服務shapeshift的創始人和CEO。當時Eric匿名運營中本聰骰子網站,其實即便實名,他當時也算不上知名人物。因此骰子的玩家不是因為相信運營者才相信應用,而是因為可以自行驗證公平性才信任應用。幣鏈圈有句名言——Don’t trust, Verify! 即:不要信任,去驗證!強調的就是可驗證。張首晟先生提出的In math we trust,也有異曲同工之妙。可驗證應用採用密碼學技術,創造出可證明的公平(Provable Fairness),也可以說是創造出了信任(Truest),所以也有人說區塊鏈是生產信任的機器。

以太坊開創的區塊鏈智慧合約是開發可驗證應用的技術。智慧合約內部狀態都是公開可見的,平臺不支援隱匿資料,我稱之為狀態可驗證。另外智慧合約應該公開程式碼。程式碼公開不僅是開源,而是由平臺保障合約原始碼和執行程式碼對應。使用者可以檢視合約程式碼,從而驗證開發者所聲稱的處理邏輯與實際實現一致,即處理邏輯可驗證。而且智慧合約不能呼叫隨機數、當前系統時間,也不能直接訪問鏈下資料,從而確保執行的確定性(Determinism)。由此可見,智慧合約是開發可驗證應用的通用性技術。而中本聰骰子的子孫後代們也在三大智慧合約平臺大放異彩。

為了保護處理邏輯可驗證,平臺通常不允許智慧合約進行升級,原因在於開發者單方面修改智慧合約會破壞可驗證的公平性。但不可升級給應用開發造成了巨大的困難。應用程式幾乎不可能保證沒有缺陷。智慧合約執行在公鏈平臺上,任何人都可以無需許可地匿名訪問。再加上智慧合約常常用於處理加密資產交易,任何微小的缺陷都會被駭客利用。TheDAO、Parity多重簽名錢包、美鏈1CO等智慧合約,都因為微小的程式缺陷,導致了巨大的經濟損失。另一方面,網際網路應用和移動應用常常快速迭代,不斷適應使用者需求、增強功能、改進體驗。如果區塊鏈應用只能“以不變應萬變”,要在競爭中勝出難於登天。

為了突破智慧合約不可升級的限制。開發者用delegateCall等方法,繞過平臺,實現了智慧合約可升級設計模式,如上圖所示。可升級智慧合約通常由三個部分:代理合約、狀態合約和處理邏輯合約。狀態合約儲存所有需要持久化的資料。代理合約負責將外部服務請求轉發給處理邏輯合約。代理合約儲存了處理邏輯合約的地址指標。透過部署新版本的處理邏輯合約,修改代理合約的地址指標,就能夠實現處理邏輯升級。

可升級設計模式使得智慧合約具有了可升級性,代價是破壞了智慧合約的處理邏輯可驗證。開發者可以不經過使用者同意,甚至在使用者不知情的情況下修改智慧合約。那麼使用者是否仍然可以信任智慧合約呢?答案是需要個案分析。在協議可變的前提下,是否可信取決於協議的控制者是否可信。例如Paxo/GUSD等合規穩定幣,我們知道Paxo/GUSD的運營實體是受紐約金融局監管的合規企業,其穩定幣的法幣儲備有定期的正規審計。雖然這些穩定幣的運營商可以隨時升級(修改)智慧合約,但是使用者並不會因此而產生疑慮。但是大家應該注意,合規穩定幣的信任並不是區塊鏈製造的,而是把鏈外的信任延伸到了鏈上。例如eher公司透過區塊鏈發行USDT,只是利用區塊鏈技術的可及性和快捷清算能力。USDT的信用不是區塊鏈製造的,而是由 Tether 公司提供的。

另外一種情況是,掌握智慧合約升級權利的不是個人或者企業,而且去中心化匿名組織(DAO),例如MakerDAO、Aragon等。他們透過去中心化的治理流程(通常也用智慧合約實現),由利益相關人透過投票決定協議規則的修改。在這種情況下,智慧合約的可信性取決於DAO的可信性。稍後我們會繼續延伸這個話題。

總結一下本小節的內容。智慧合約是開發可驗證應用的技術,狀態可驗證+處理邏輯可驗證創造出可證明的公平性,智慧合約菠菜的流行大抵源於此。可驗證和可升級是一對矛盾。可升級智慧合約破壞了可驗證性,其信用之源是合約的運營主體。

第四部分:比特幣的信任來源

我們再來看比特幣的信任來源。2013年三月的比特幣價格暴漲,普遍認為與塞普勒斯銀行危機有關。上圖左側摘錄了當時主要的財經媒體的新聞標題。塞普勒斯跟冰島、愛爾蘭一樣,是新興的離岸金融中心,靠低稅率和監管寬鬆,吸引了大量資金流入。塞普勒斯700億歐元的銀行存款,有300億來自俄羅斯。希臘債務危機讓塞普勒斯的銀行損失慘重,銀行資不抵債,面臨破產。最終的解決方案是儲戶買單,10萬歐元以上的賬戶幾乎血本無歸。塞普勒斯銀行危機第一次明確地提醒人們:存在銀行裡的錢,哪怕是存在歐洲發達國家的銀行裡,也可以一夕歸零。於此同時,比特幣作為一種非主權的,不依賴金融中介的價值儲存手段,進入了人們的視野。從此之後,每當某國家出現貨幣危機,包括阿根廷、印度、委內瑞拉、南非、土耳其、伊朗,在當地都出現了比特幣交易量大幅上升的情況。這一系列事實證明,比特幣是超主權價值儲存貨幣已經被認可。即便在通貨膨脹並不嚴重的地區,也有越來越多的人使用比特幣儲存個人財富。價值儲存對人們的生存繁衍至關重要,比特幣憑什麼擔負如此重託呢?

我們把比特幣產生信任的方式跟以太坊智慧合約進行比較,可以發現比特幣的可信既不是源於程式碼可驗證,也不是因為比特幣核心開發者具備信用。包括我在內的比特幣絕大部分使用者都沒有看過比特幣節點的程式碼,也並不關注程式碼,而且比特幣協議是可以修改的(分叉)。對於由誰決定比特幣協議的升級,中本聰的初始的設想是算力投票。理由在於算力是不可偽造的,而且礦工是比特幣的主要的利益相關群體。但是很有可能,中本聰沒有預見到專用ASIC礦機出現,將個人電腦完全擠出了挖礦競爭,並形成了幾大礦池壟斷算力的現狀。比特幣的利益相關群體主要有四個:礦工、開發者、使用者和企業(交易所、錢包廠商、區塊鏈瀏覽器、社羣、媒體等)。他們有一致的利益,也有相互衝突的利益。例如幾乎全部參與者都受益於比特幣長期價格上漲。但是使用者希望交易費越低越好,而礦工希望交易費越高越好。由於利益衝突,各方對比特幣協議演進會出現不同的意見,而且四方都有影響協議研究的能力和途徑。基於比特幣分叉博弈的歷史,目前普遍認為對協議演進影響裡最大的是比特幣核心(開發者),而不是礦工。那麼我們是否是因為信任比特幣核心才信賴比特幣呢?

最近有礦圈的大佬聲稱,比特幣核心早晚會取消比特幣2100萬的發行上限。作為把btc用於長期價值儲存的使用者之一,我是否應該擔心呢?說實話我並不擔心,並不是因為大佬的邏輯有問題(我甚至沒花時間研究他的邏輯),也不是因為我信任比特幣核心。我甚至不知道現在的比特幣核心由幾個人組成,他們都是誰。但是從第一次購買btc到現在6年多的時間,我知道有大量跟我利益訴求一致的比特幣使用者。我們都把BTC當作自己可以完全掌握的資產(還記得Web3願景嗎?),是最可靠的價值儲存。假設比特幣核心處於某種原因要犧牲比特幣的稀缺性,那必然要透過硬分叉來實施。我只需要保留有稀缺性保證的BTC,賣出沒有稀缺性保證的分叉幣(也許叫Bitcoin Uncapped?)就行了。也就是用我的幣做了支援誰不支援誰的投票。我相信比特幣社羣會有千千萬萬人(不是也無需是全體)會跟我做相同的選擇。而且也一定會有開發者維護稀缺比特幣的程式碼(組成新的核心?)。一番折騰下來,除了原來的比特幣核心被邊緣化以外,我看不出還會有其他可能的結果。

所以我對比特幣的信賴源於影響比特幣協議演進的力量是多方的,而且由於區塊鏈可以分叉,不同利益訴求的群體可以分道揚鑣,然後由廣大的比特幣使用者來選擇支援/不支援/同時支援哪個分叉。所以比特幣的信任來源是廣泛參與的治理和可分叉性,與智慧合約非常不同,這就是本文所說的去中心化治理。

第四部分:深入探討去中心化治理問題

總結上一小節的結論:除了可證明的公平性,區塊鏈應用創造信任的源泉是去中心化治理。而且只有透過去中心化治理產生信任的應用,才是真正的去中心化應用。這一小節我們介紹去中心化治理的一般過程和發展現狀。

以比特幣為例,治理的基礎是廣泛參與的討論,在bitcointalk、reddit的網路社羣、大大小小的會議、眾多的媒體上發表看法、討論甚至爭論問題。研究者會針對某個特定專題,例如隱私、效能或者更一般化的簽名方案、P2P通訊協議等,進行研究,並發表研究成果。對比特幣協議的改進建議以BIP(Bitcoin Improvement Proposal比特幣改進提案)的形式呈現。重要的BIP會引發比特幣社羣的關注,並引發更為廣泛的討論。開發者(不一定是Core,也不一定是提案發起人)可以實現某個BIP。目前比特幣沒有正式的對開發者進行資助的流程。Dash/Monero等加密貨幣社羣,有標準的流程來決定是否以及如何對開發者提供資金支援。在協議改進實現之後,就來到去中心化治理最關鍵的步驟:由誰以及如何決定BIP部署上線,成為比特幣協議的一部分。

比特幣的治理在這一關鍵環節非常含混不清,大致可以描述為核心開發者根據已經達成的廣泛社羣共識來決定是否上線BIP。什麼才是廣泛的共識?是否已經達成了廣泛共識?沒有明確的標準,這在持續近三年之久的大區塊vs.隔離見證的爭議中表現得尤其明顯。以太坊的治理過程與比特幣非常類似,可能唯一重要的區別在於V神在以太坊社羣的巨大影響力,使得V神支援的協議改進更容易達成共識。由於這一類的治理過程的最終結果是實施協議分叉,不妨稱之為分叉治理。分叉治理雖然實現了治理去中心化的目標,但是具有明顯的缺陷。最大的問題是治理過程含混不清,因此效率很低、難於改進而且很容易陷入爭議。例如以太坊圍繞ProgPoW的冗長肥皂劇就是混亂無序治理的必然結果,沒有清晰的治理過程,類似的肥皂劇就會反覆上演。

針對分叉治理的缺陷,Decred首創了鏈上治理。也就是Decred通證的持有人透過鏈上交易對提案進行投票表決,表決透過的提案才能部署上線。EOS和Tezos也對鏈上治理做了大量有益的探索。上圖右側對去中心化治理的現狀劃分的象限。比特幣和以太坊採用分叉治理方式。EOS和Tezos區塊鏈採用鏈上治理。但是就我所知,EOS和Tezos並沒有為平臺上執行的智慧合約提供治理支援,因此還是沒有解決DApp治理的問題。Decred很可能是目前唯一的具備完整鏈上治理的去中心化應用。但是Decred的治理也有明顯缺陷。首先Decred是PoS+PoW混合共識,通證持有者和PoW礦工都是網路的利益相關人,但是PoW礦工不能直接參與鏈上治理,他們的利益訴求被忽略了。另外Decred的提案是持幣者直接投票,相當於是每個決策都是全民公決,這樣做效率很低,而且最明顯的問題是實際投票率很低。雖然有些提案有百分之幾十的通證參與投票,但是看按持幣地址的參與率,就低到可憐了。這兩個問題在一些純PoS鏈得到了很好的解決。PoS的治理基礎就是Staking,Staking代表了長期的利益繫結,治理的目的是為了讓加密協議不斷進步,最大化長期利益,因此參與Staking的持幣者參與治理非常恰當。另外就是新一批的PoS都實現了某種代理機制,DPoS/BPoS/NPoS,相當於實現了代議制。日常的治理可以由當選的驗證人來進行,他們相當於是議會。驗證人通常跟加密網路有巨大的共同利益,他們有動力為治理投入資源。另外重大的表決,尤其是驗證人和委託人利益有衝突的提案,仍然可以也應該交由持幣者公決。

 第五部分:Polkadot 的治理機制

Polkadot的治理是前所未有的全過程鏈上治理,基於最前沿的區塊鏈技術實現。被表決的提案不僅僅是對協議修改的描述,而且可以是新協議本身,即被編譯稱wasm blob的可執行程式。鏈上投票透過後,新版程式透過區塊鏈分發給驗證人節點,並且自動啟用。升級過程中不會出現分叉。基於令人歎為觀止的技術,Polkadot在鏈上治理方面可以說是一騎絕塵,正在進行大量的創新和探索。

Polkadot治理仍然處在快速進化之中。幾天前(5月24日)Polkadot剛剛宣佈PolkaDAO上線,PolkaDAO把對提案進行資助的決策流程搬到了鏈上(目前是以太坊,未來應該會遷入Polkadot)。我認為在主網上線之前,乃至於主網上線後的相當一段時期內,進化不會減速。因為Polkadot的優勢並不在於它已經找到了行之有效的治理方式,而在於它建立起了可以支援快速進化的過程和技術。根據我的觀察,在主網上線前和上線後的一段時期內,開發者仍然擁有Polkadot的控制權。他們會充分利用這一權利,將Polkadot快速推進到自洽狀態,然後退居幕後,把治理權交給社羣。這也是Block.One對EOS所做的。Polkadot多出了兩年行業發展經驗(後發優勢),而且開發了更好的鏈上治理技術。有理由相信Polkadot的開發者能做得更好。所以現在討論Polkadot的治理,不必對細節太過關注,因為都可能會變掉。需要關注的是:完全可程式設計的鏈上治理大概會是什麼樣子,能做到哪些?而且Polkadot治理程式碼是開源專案的一部分,DApp開發者可以把Polkadot治理當作模版範例,定製開發符合自身專案情況和需求的治理過程。

Polkadot這個詞在不同的語境下有不同的含義(範圍),有時候我們用它來代表W3F發起的整個Web3生態,有時候代表Polkadot專案(包含Substrate),有時候特指Polkadot Relay這條特定的區塊鏈。本小節所說的Polkadot治理,是Polkadot Relay區塊鏈的治理,再具體的說是Polkadot Relay的PoC-3階段實現的鏈上治理。

整個治理過程圍繞提案和投票展開。提案可以由普通的持幣者提出,也可以由理事會提出。理事會是持幣者選出的,持幣者可以給任意多的理事候選人投票。每個選舉週期的冠軍進入理事會,替換任職時間最長的理事,亞軍票數保留,其他候選人選票清零。每個理事都有對理事會提案的否決權,但是不能連續使用。理事會透過提案進入全民公決,而且只有得到多數反對才會被否決。普通持幣者的提案進入佇列,等待其他持幣者的支援。每隔一段時間,支援數最高的提案進入全民公決。但是普通持幣者的提案要獲得多數支援才能透過。在全面公決投票中,持幣者可以選擇鎖倉係數,範圍從1-6,所投出的票數是持有的DOT數量*鎖倉係數。如果投票結果跟投票者的選擇一致(透過/否決),那麼投票者的DOT將被鎖定,鎖定時間 = 常數 * 鎖倉係數。如果投票結果跟投票者的選擇相反,則無需鎖倉。這樣的計票方式,有助於讓(未來的而不是過去的)長期持幣者獲得更大權重。

第六部分:去中心化應用的未來之路

前面講述的全部內容可以歸納為去中心化應用的三次浪潮。第一次是比特幣引發的去中心化電子現金(加密貨幣)的創新浪潮,圍繞“更好的加密貨幣”主題展開,方向主要有三個:隱私、治理和支付。這三個方向也都針對比特幣的“不足”。Zcash/Monero/Dash等力圖鞏固加密貨幣的可互換性和私密性;Decred/Dash等探索了混合共識和更規範更有效的治理;Litecoin/XRP/BCH致力於成為更好的支付/轉賬加密貨幣。大家知道在2012-2015年,開發DApp的主要方式是fork比特幣的程式碼,做定製修改,然後執行獨立的區塊鏈。再到後來直接fork比特幣區塊鏈,借力比特幣的網路效應。這一輪創新是開天闢地試的,它開啟了去中心化應用的大門,使每個人都可以自行認領數字身份(私鑰/地址),而無需被授予。並實現了最普遍使用的資產——貨幣的去中心化。但是除了最大化主義者或者對現代金融一無所知的人,恐怕沒有人會認為僅靠去中心化貨幣就能支撐起web3理想的大廈。但是由於當時開發去中心化應用的技術單一,都源自比特幣。而比特幣的架構設計擴充套件性不足,使得開發非貨幣類應用難度很大。而且當時也沒有跨鏈技術,DApp是彼此獨立的區塊鏈,之間不能互操作,無法形成DApp生態。這一輪創新浪潮給只是行業留下了幾個各具特色、但獨立執行的加密貨幣。

在比特幣區塊鏈上實現其他資產的發行和交易是可行的(例如ColorCoin/MasterCoin等早期嘗試),但嚴重受制於比特幣區塊鏈的限制。V神正是由此出發,提出並領導實現了以太坊。以太坊是開放的創新平臺,它引入了圖靈完備的虛擬機器EVM,推出了Solidity等智慧合約開發語言,並且支援智慧合約相互呼叫(互操作),極大地降低了區塊鏈應用開發的門檻,引發了第二輪創新浪潮。但是如前所述,由於以太坊基礎設施的限制,導致應用效能差、成本高,使用者體驗很差。而且智慧合約實質上是可驗證應用開發技術,並沒有為DApp所必須的去中心化治理提供支援,甚至為了保護可驗證性限制了應用的升級,給DApp演進造成了很大困難。由於這些限制,雖然以太坊主網上線已經4年多了,全世界也有幾十萬智慧合約開發者。但是以太坊上沒有一個真正落地(百萬級活躍使用者)的去中心化應用。當然第二次創新浪潮不是毫無收穫,期間產生了大量的可驗證應用,包括可以驗證的資產發行和轉移、可驗證的菠菜等等。另外有成百上千個DApp在智慧合約平臺進行了嘗試,開發出了MVP。在效能、治理等瓶頸解除之後,這些專案團隊有最好的機會開發出真正落地的DApp。

Polkadot/Cosmos等跨鏈技術是對以太坊等智慧合約平臺的換代。他們繼承了以太坊圖靈完備、規範應用程式開發和互操作支援等優點,又解除了去中心化應用的效能和治理兩大瓶頸,將引發DApp創新的第三次浪潮。我們前面重點介紹了Polkadot的治理。那麼用Cosmos SDK開發的應用鏈,也可以實現類似Cosmos Hub和Tezos的鏈上治理。關於跨鏈技術的侷限是什麼,我還不敢說現在已經看到了,但是有一些疑惑要交給時間去驗證。在第三次創新浪潮中,我們有理由期待出現大量的DApp創新,能夠包括去中心化匿名組織DAO、去中心化交易所DEX,以及眾多Defi去中心化應用。最優秀的一批DApp很可能獲得成百上千萬的使用者,跟對中心化網際網路服務競爭而不落下風,將網際網路向實現Web3願景推進一大步。

第七部分:Polkadot 的現實問題

談過DApp創新的遠大前景,再來說說現實的困難。首先是Polkadot/Cosmos跨鏈技術落地尚須時日。Polkadot目前的進展是PoC4已經穩定執行了近兩個月。但是PoC4並不包含跨鏈協議。跨鏈協議ICMP將包含在PoC5裡面。目前Polkadot主網上線目標時間點是今年年底。但這在一切順利的情況下的預期。開發過複雜軟體專案的同學都知道,一切順利通常只存在於幻想之中。雖然Polkadot開發團隊的能力有目共睹,但是如果Polkadot如期上線,我還是會比較意外。Cosmos雖然主網已經上線,但是IBC跨鏈協議還未實現,也是預計在今年年底實現。考慮到Cosmos的各種跳票已是家常便飯,如果年底Cosmos Hub就開始接受分割槽連結入,對我來說是也個很大的驚喜。但是希望大家理解,DApp不一定要依賴跨鏈。應用鍊形態的DApp可以自己構成業務閉環,並且提供跟中心化網際網路應用類似的使用者體驗。因此我呼籲區塊鏈行業的創業者,不要再等待觀望,或者在智慧合約平臺上繼續撞南牆。從現在開始認真考慮、積極準備採用應用鏈實現DApp創新。等到跨鏈技術落地,再接入到Polkadot/Cosmos,融入DApp生態圈。

第二個現實障礙是應用鏈的開發者奇缺。由於Substrate和Cosmos SDK都是不久之前出現的新技術,而且Substrate開發使用比較小眾的Rust語言,因此國內具有實踐經驗的應用鏈技術團隊極少。目前用Substrate開發過產品的國內團隊,就我所知只有ChainX一家。而且應用鏈開發還面臨一個很大的難題,就是Substrate和Cosmos SDK應該選擇哪一個?兩個開發工具的開發語言不同,都有比較高的學習成本,而且未來對應的是兩個不同的 DApp生態。一旦選定之後再更換,會造成資源投入和專案進度的重大損失。我比較過兩個開發工具,Substrate比Cosmos SDK功能更完整更強大。所以最佳方案是Substrate能相容Cosmos,也就是用Substrate可以開發Cosmos分割槽鏈,形成統一的獨立於Polkadot的Substrate開發工具生態。Substrate是開源軟體,採用模組化的設計,把Tendermint/IBC封裝成可以被Substrate使用的協議元件,在技術上肯定是可行的。我和幾個做開發的朋友正在研究這個問題,也歡迎對此感興趣的同學加入進來。Substrate是應用鏈開發的首選工具。為了在國內開發者中推廣Substrate,一塊鏈習社羣打造了全球首個Substrate線上開發課。主講是Bryan陳錫亮老師,Bryan是Centrality資深架構師、Polkadot社羣大使、Substrate和Polkadot程式碼貢獻者。Gavin Wood給課程寫的推薦語是:Bryan是Substrate的傑出貢獻者。我推薦中國區塊鏈開發者參與他的課程,學習使用Substrate開發區塊鏈專案。首期課程6月2號開課,學費1299元。所有按時完成作業的同學將獲得一半學費返還。課程評價前3名的同學學費全額返還,還有額外獎勵。課程是不盈利的,這個不多說了,懂的人自然明白。我會義務擔任首期課程的助教,期待跟大家一起學習。

還有就是DApp的治理還沒有最佳實踐。前面也介紹了Decred等治理實踐以及遇到的問題。很有可能五年以後,DApp創業者能夠找到很多成功的範例和失敗的教訓可資借鑑。但是現在,一切才剛剛開始。只有幾條基本的原則是清楚的,首先就是DApp要長期成功,需要設計出長期激勵相容的機制。使開發者(專案方)、驗證人、服務提供商、使用者和投資者的長期利益一致,並且能夠約束各方追求自身短期利益、犧牲整體長期利益的行為。

開發者應該鑽研技術和商業、建立並維繫社羣,從長期幣價上漲和技術服務收入獲利。對於驗證人,他首先應該選擇真正具備交易成本優勢的DApp,因為驗證人是最長期的投資者,他不但要付出資金,還有付出很高的人工成本去參與DApp治理。因此陷入龐氏騙局或者資金盤,是專業的驗證人首先要避免的。決定參與DApp經濟體之後,驗證人應該積極參與治理,避免共謀,從長期幣價上漲和領權收益獲利。加密貨幣的投資者,這裡指長期價值投資者,不包括短期投機者、量化或者趨勢投資者,應該深入研究DApp的基本面,將通證委託給有治理能力的驗證人,並持續保持關注,透過長期幣價上漲和Saking獲利。另外,DApp協議的服務提供商和使用者非常有可能作為投資者甚至驗證人參與到DApp去中心化治理之中。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;