王嘉平:突破不可能三角「非同步共識組Monoxide」(附PPT)

買賣虛擬貨幣

整理 | 傳神

出品 | 區塊鏈大本營(blockchain_camp)

近日,CSDN聯合創新工場執行董事王嘉平博士於北京成功舉辦個人見面會之後,業內外技術人士和廣大開發者對此極為關注。紛紛表示希望能有機會再深入理解本次演講內容,能夠公開分享演講資料。在區塊鏈大本營獲得創新工場和王嘉平博士本人授權之後,終於為大家獻上了本次演講精華+公開講義(文末)。

本次見面會是繼王嘉平博士於計算機頂級學術會議NSDI 2019上發表一篇名為Monoxide: Scale Out Blockchain with Asynchronized Consensus Zones轟動性區塊鏈擴容論文後,在國內舉辦的首場公開技術分享活動。

該論文提出了 Monoxide 方案並獲得了業界的高度關注與廣泛認可,關鍵設計就是透過其創新的“非同步共識組”(Asynchronized Consensus Zones),將區塊鏈效能提升至比特幣的千倍以上,並同時兼顧安全性與去中心化。活動吸引了眾多高校學者、開發者以及區塊鏈技術愛好者前來參加,許多觀眾還帶著列印好的原版論文前來請教。

開場時,王嘉平分享了自己對區塊鏈的理解。他認為,區塊鏈最偉大的地方是分散式計算系統的設計,它是在去中心化的系統上設計的,任何人都沒有壁壘、可以公平、透明、安全地參與。

首先,王嘉平回顧了這篇論文為何會投在一個分散式系統的會議中。他認為,目前區塊鏈在效能上幾乎沒有什麼提高,容量也沒有太大變化,儘管很多公鏈在謀求某種突破,同時也在控制層面提出了很多方案。但在他看來,如果我們關注的是效能和狀態容量的問題,那麼它們就跟分散式系統有直接關係,而跟共識演算法沒什麼關係,所以該論文投在一個分散式系統設計與實現的會議中。

從整個學術界的領域來說,這個會議對區塊鏈的關心非常少,這篇論文是NSDI上唯一一篇區塊鏈的論文。

以下是本次分享的重點,王嘉平從兩部分展開講解:

第一部分:從分散式系統的視角,剖析區塊鏈系統的基本工作原理與技術本質,分析目前區塊鏈系統的效能與瓶頸所在。

第二部分:詳細講解今年在USENIX的旗艦學術會議 NSDI 2019 上釋出的最新研究成果,如何在保障安全性與絲毫不犧牲去中心化特性的前提下,透過非同步共識組架構實現高效能可伸縮的區塊鏈系統,並與大家分享了最新的研究進展與思考。

01

分散式系統視角下的區塊鏈原理與瓶頸

首先,王嘉平博士從結構上剖析了什麼是區塊鏈。他認為,從最簡單的結構來看,區塊鏈就是一個狀態機,它內部有一個狀態,這個狀態可以是一個樹或一堆樹,也可以是一個雜湊表或一個資料庫,這個系統工作是從外部收到input,因為外部系統的不斷輸入,它會改變自己的狀態,這也是所有計算機系統的運作模式。

另外,他也從比特幣和以太坊系統設計的角度,來說明什麼是狀態機以及區塊鏈系統如何運作的,同時也介紹了兩者在系統設計上的區別和存在的弊端。

接下來,王嘉平介紹了狀態機的效能。他認為,狀態機最核心的效能包含幾個方面的因素。

第一個方面是狀態容量,其最大的瓶頸是記憶體問題,不是指歷時交易要儲存下來的問題,而是指當下要記住這個狀態。他指出,餘額就是一個最典型的例子,比如系統要記住使用者餘額是多少,為什麼餘額要儲存在狀態記憶體中而不是狀態硬碟裡呢?因為系統要能夠隨時隨地訪問這個資料,當收到一筆交易要驗證這個交易的有效性的時,系統就要去訪問這個賬戶裡有多少餘額,所以這個資訊必須要放在記憶體中,不能放在硬碟裡。而目前很多公鏈系統對狀態機沒有任何改善。

第二方面是吞吐量,吞吐量就是每秒能處理多少個交易,對於狀態機來說就是每秒可以處理多少個inputs。比特幣當時設計的整個網路平均頻寬比現在低很多,這就是比特幣當時為什麼用10分鐘出一個塊,這種非常保守的吞吐量設計。現在比特幣的分叉率與當時相比低很多,就是因為現在整個網際網路的傳輸速率比以往高很多,這是最大的不同。後來由於不同公鏈採用的共識演算法的改進,導致吞吐量不同程度地增大。

回到區塊鏈(blockchain)定義和原理上來,王嘉平認為,並不是每個input都是有用的、合法的,每一次input都需要驗證,尤其在區塊鏈中,每一次驗證是有代價的,同時驗證是分批驗證,因此就會出現block,這也是為何區塊鏈叫blockchain。

區塊鏈作為一個有驗證的狀態機,而且還是一個分散式的狀態機,不是放在機房裡面就可以自己執行的,而是讓大家隨時隨地都能執行,並且保持狀態一致。隨後,他也進一步介紹了區塊鏈中每個塊(block)之間的邏輯關係。

關於區塊鏈的出塊速度能達到什麼程度呢?王嘉平也給出瞭解釋和證明,他認為區塊鏈的出塊速度不可能很快,並用理論公式和技術原理怎麼了這一結論。

在TPS的計算公式中:

TPS=BlockSize/(TxSize × BlockInterval)

即每個塊的大小除以每個交易的大小與出塊間隔的乘積。

對於市面上號稱實現百萬TPS的區塊鏈,王嘉平也給出了驗證和反駁,頻寬是有理論上限的,在去中心化的網路中,每個節點不僅要把塊收回,還要把塊傳送出去,所以這裡的頻寬往往是放大的,若從極端角度來講,只收塊而不送出塊,最高的TPS可達到7k多。這也是區塊鏈的核心效能瓶頸。

為何特別強調頻寬呢?王嘉平認為,因為在所有計算資源中,唯獨頻寬不是充分市場化的,記憶體、硬碟、CPU都可以買到,唯獨頻寬不行,一是它只有幾家運營商能提供,二是高頻寬受地理位置的限制。如果提高頻寬要求,那就會極大地損失去中心化的程度。

隨後,他從計算模式上分析了POW和POS共識演算法的區別、出塊的機制、解決問題的關鍵。區塊鏈狀態機不僅僅是分散式的,還是去中心化的,出塊具有隨機性,所有的共識演算法是解決由誰來出塊,並要達到公平、安全。而共識不僅要解決塊由誰來出,還要解決出塊衝突的問題。

關於區塊鏈吞吐量的限制問題,王嘉平詳細講解了採用不同共識演算法POS和POW的不同,並用函式證明了隨著時間推移,全網節點被傳播抵達的比例,這條曲線可以直接分析分叉率。

對於區塊鏈不可能三角,王嘉平認為確實存在這個問題,但有個前提假設,如果是單鏈系統一定會有這個問題,它有安全性、正確性的要求,這意味著全網路節點要複製所有狀態;去中心化要求參與門檻低,頻寬、CPU、記憶體要求比較低,否則會有節點參與不進來。在這兩個相矛盾的約束下,導致其效能的狀態容量不高。

吞吐量就是平均頻寬除以交易的大小,單鏈系統要求每一臺電腦維護整個區塊鏈世界交易裡涉及的資料,這就決定了其吞吐量不可能太高。

第一部分演講結束之後,王嘉平針對大家的提問給出了詳細的回答。經過短暫的中場休息,活動進入了更為精彩的下半場。

02

非同步共識組:高效能可伸縮性區塊鏈系統

第二部分演講中,王嘉平針對論文提出的 Monoxide方案進行了詳細解析。在他看來,這篇論文字質上解決效能這個問題是不需要一個節點去掌控、維護全網交易和資料。並實驗中透過2000個分片實現了1000倍的吞吐量提升

在這樣一張曲線圖中,橫軸是這些節點被劃分成了多少個共識組,縱軸是平均每秒處理的交易量。在測試中,最大的共識組數量為2048,此時吞吐量為11694 TPS。這個數字已經遠超現今所有公開發表的執行於網際網路上的公鏈專案,當然那些只在機房裡面跑,單節點採用怪獸般伺服器的專案除外。

世界計算機不是區塊鏈的本質,區塊鏈的核心訴求在於關注計算過程的可信,而不是為了獲得計算的結果。這一點是與為了高效將計算完成,獲得結果的雲端計算本質的區別。雲端計算無法實現向第三方證明其計算過程是可信的,區塊鏈對於計算任務本身也無法向雲端計算那樣的高效和低成本。

王嘉平還強調了區塊鏈去中心化計算是為了讓計算變得更加可信,使得實際部署的程式碼和運算邏輯真實可靠、不可篡改的,而不單單是為了實現計算並輸出一個結果的任務這一點是與為了高效將計算完成並獲得結果的雲端計算本質的區別,雲端計算無法實現向第三方證明其計算過程是可信的,而區塊鏈對於計算任務本身也無法像雲端計算那樣高效和低成本。

同時,區塊鏈帶來的問題和瓶頸是低TPS,難以擴充套件;每個節點都要複製,所以有頻寬的瓶頸;交易要驗證,因此對CPU有要求;交易記錄要儲存下來,因此對硬碟的I/O也有要求;每個節點要儲存狀態,因此對記憶體有要求。

為何低TPS是目前區塊鏈系統的通病呢?王嘉平也給出瞭解釋:系統中的每個節點都需要處理網路中出現的所有交易。無論這裡的共識演算法是什麼,PoW、PoS還是BFT,情況總是這樣。可伸縮性問題的根本原因不是安全性或去中心化。這是因為它們的系統設計中,讓更多節點加入到網路中並不是幫助其工作,只是增加了工作負載的重複。這就是為什麼在這些系統中每秒的交易數如此之低。

為了解決區塊鏈系統的可擴充套件性問題,本篇論文提出了非同步共識組。其基本思想是讓不同的節點組在網路的不同分割槽上工作,並稱這些分割槽為組zones。

在該方案中,隨著整個網路被劃分為更多的組zones,交易吞吐量和狀態容量被擴充套件。共識組由多個同質的、功能上完全一致、地位上也完全平等,並邏輯上儘量隔離的獨立共識系統的例項所構成,他們並行工作,分攤全網的吞吐、計算、儲存的壓力,分攤全網狀態的維護工作。

最後,王嘉平針對非同步共識組的系統設計進行了詳細講解,並從可擴充套件性、安全性以及去中心化三個方面進行了深度分析。

活動結束之後,仍有不少觀眾與王嘉平博士圍坐一起,深入交流和探討學習心得。

更為詳細的內容可參考講義資料,或新增小助手微信(CSDN_qkldby)入群交流討論。

資料下載地址:

https://pan.baidu.com/s/1Rc7nPiU3rwZXIOhI05NNlQ 

提取碼: cmui

免責聲明:

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

推荐阅读

;