號稱“區塊鏈靈魂”的共識機制,要發生巨大演變?

買賣虛擬貨幣

白話區塊鏈

從入門到精通,看我就夠了!

共識演算法是近年來分散式系統研究的熱點,也是區塊鏈技術的核心要素。

如何理解共識演算法的重要性及評價體系?如何認清當前主流的共識演算法及背後的發展脈絡?接下來,共識演算法發展的趨勢與阻礙又是什麼?

 01
共識演算法及評價體系

共識演算法主要是解決分散式系統中,多個節點之間對某個狀態達成一致性結果的問題。分散式系統由多個服務節點共同完成對事務的處理,分散式系統中多個副本對外呈現的資料狀態需要保持一致性。

但是,由於節點的不可靠性和節點間通訊的不穩定性,甚至節點作惡,偽造資訊,使得節點之間出現資料狀態不一致性的問題。透過共識演算法,可以將多個不可靠的單獨節點組建成一個可靠的分散式系統,實現資料狀態的一致性,提高系統的可靠性。

區塊鏈系統本身就是一個超大規模的分散式系統,但又與傳統的分散式系統存在明顯區別。區塊鏈系統建立在去中心化的點對點網路基礎之上,在整個系統中沒有中央權威,由共識演算法實現在分散的節點間對交易的處理順序達成一致,這是共識演算法在區塊鏈系統中起到的最主要作用。

另外,與企業分散式系統不同,區塊鏈系統中的共識演算法還承擔著區塊鏈系統中激勵模型和治理模型中的部分功能,包括每個區塊中對哪些礦工進行激勵發放、網路中所有交易手續費的結算和分配、區塊鏈網路共識週期的切換等。

共識演算法根據容錯能力不同,即在考慮節點故障不響應的情況下,再考慮節點是否會偽造資訊進行惡意響應,可以分為:CFT(Crash Fault Tolerance,故障容錯)類和BFT(Byzantine Fault Tolerance,拜占庭容錯)類共識演算法。

CFT共識演算法,只保證分散式系統中節點發生宕機錯誤時,整個分散式系統的可靠性;當系統中節點違反共識協議的時候(比如:被駭客攻佔、資料被惡意篡改等),將無法保障分散式系統的可靠性。因此,CFT共識演算法目前主要應用在企業內部的封閉式分散式系統中,目前流行的CFT共識演算法主要有Paxos演算法及其衍生的Raft共識演算法。

採用BFT共識演算法的分散式系統,即使系統中的節點發生了任意型別的錯誤,只要發生錯誤的節點少於一定比例,整個系統的可靠性就可以保證。因此,在開放式分散式系統中,比如區塊鏈網路,必須採用BFT共識演算法。

在區塊鏈網路發展前,BFT共識演算法主要為PBFT共識演算法(實用拜占庭容錯共識演算法),目前也有部分聯盟鏈採用PBFT共識演算法。由於公有鏈的開放性,任意節點都可以隨時參與和退出網路並都有作惡的可能,近兩年公有鏈的快速發展也帶動了BFT共識演算法的巨大進步。

另外,因為共識演算法都建立在底層的網路模型基礎上,所以從網路同步模型的角度來看,共識演算法可以分為三種,即同步共識演算法、半同步共識演算法和非同步共識演算法。

同步共識演算法要求網路中任一訊息能夠在已知的限定時間內到達所有的共識節點。因此,主要應用在限定規模的網路環境中,大多數聯盟鏈採用同步共識演算法。

非同步共識演算法對於訊息在網路中的傳播延遲沒有任何限制,訊息可以在無限長時間後才傳送到其他共識節點上。由於FLP不可能定理(在網路可靠,存在節點失效,即便只有一個的最小化非同步模型系統中,不存在一個可以解決一致性問題的確定性演算法),非同步共識演算法無法確定性保證共識終局,因此,幾乎沒有高效的全非同步共識演算法,即使Bitcoin的PoW演算法也是基於同步網路保證一致性,基於非同步網路保證可用性。

半同步共識演算法在前兩者之間做了權衡,要求網路中訊息在某限定時間後到達所有共識節點的概率與時間的關係是已知的。目前,主流的區塊鏈共識演算法都是基於半同步的網路模型,即半同步共識演算法。

評價一個區塊鏈共識演算法的優劣,可以從以下四個方面進行,即:容錯效能、終局性效能、擴充套件性(訊息複雜度)以及網路模型效能。

容錯效能:指共識演算法的容錯能力。在區塊鏈中,特別是公有鏈中,由於節點間存在利益博弈,同時又是一個非中心化的網路狀態,其共識演算法必須支援節點作惡的容錯,所以區塊鏈的共識演算法必然是BFT演算法。

終局性效能:指區塊鏈網路對一個候選區塊完成終局一致性所需要的時間,這對於面向使用者的DApp應用是非常重要的引數。

擴充套件性:指區塊鏈網路節點數目與共識演算法效能的相關關係。比如,PBFT演算法隨著節點數目增加,完成一輪共識需要在網路中傳播的訊息數目呈平方比例增加,因此PBFT演算法無法支援大規模網路。

共識演算法的網路模型效能,對其容錯效能和終局效能都有很大的影響。在區塊鏈大規模網路條件下,同步共識演算法要求所有節點在規定時間內響應來自其他節點的訊息,否則將被認為是故障節點,因此受網路波動影響較大,從而進一步導致演算法容錯效能的降低;而由於FLP不可能定理,非同步共識演算法無法給出確定的終局性效能,所以,當前主流區塊鏈共識演算法都是基於半同步模型。

 02
當前主流的共識演算法

在區塊鏈發展初期,主流區塊鏈網路都是基於PoW共識演算法,包括比特幣、以太坊、萊特幣等。

由於PoW存在挖礦的資源浪費問題,2017年後基於PoS的共識演算法研究得到了迅猛的發展,並在2018年各種基於PoS共識演算法的公有鏈中逐步上線。

對於當前主流共識演算法可以採用如下幾種方式分類:

一、基於挖礦方式分類:

1、PoW : 所有節點透過解決某個計算難題(例如雜湊難題)參與共識,包括:比特幣、以太坊、萊特幣。

2、PoS:所有節點透過質押Token的方式參與共識,包括:EOS的DPoS、DFINITY、VBFT。

二、基於終局性分類:

1、GHOST:PoW、Ethereum-PoS。

2、BFT:Tendermint、EOS DPoS、Algorand、DFINITY、VBFT。

三、基於節點選擇方式:

1、所有節點參與:PoW、Ethereum PoS、Tendermint。

2、隨機選擇部分節點參與:Algorand、Dfinity、VBFT。

▲ 主流共識演算法比較

從上述的分類過程中,我們可以看出當前區塊鏈共識演算法在效能、擴充套件性、去中心化等方向上的演進過程。

比特幣採用了PoW共識演算法,透過計算雜湊難題和最長鏈規則,實現去中心化的共識演算法。隨著比特幣網路規模的增大,後續區塊在網路傳播中延遲增加,基於最長鏈規則造成了大量的偽分叉,浪費了網路中的算力和PoW共識演算法的效能。

針對偽分叉問題,區塊鏈社羣後續提出了透過DAG方式擴充套件PoW共識演算法,比如:PHANTOM,Conflux等。但是,針對於PoW的算力浪費問題,區塊鏈社羣後續更多地轉向基於PoS的共識演算法。

以太坊也計劃逐漸減少PoW激勵,直至最終完全取消PoW的共識機制,完成到PoS共識演算法的切換。同時,也有許多新興區塊鏈平臺採用了PoS共識機制,其中最著名是EOS的DPoS共識演算法。

與此同時,隨著區塊鏈應用的增加,區塊鏈共識演算法的擴充套件性問題也日益凸顯。圖靈獎獲得者Micali教授提出了Algorand演算法,提出基於VRF隨機選擇部分節點參與共識的方式,透過BFT的方式極大降低了共識演算法的訊息複雜度,在保證去中心化安全性的同時實現共識演算法的可擴充套件性。

在此基礎之上,VBFT等共識演算法增加了PoS治理機制,並基於此解決了隨機節點選擇的抽樣陷阱問題,在保證演算法擴充套件性的同時,實現優秀的終局性效能。

混合共識演算法也值得介紹。單一共識演算法由於其本身具有的侷限性,例如PoW共識速度偏慢,區塊鏈研究者嘗試將兩種或者多種共識演算法融合起來,取長補短,達到更好的共識特性。

一般來說,混合共識有PoW+PoS、PoW+BFT以及PoS+BFT等種類。新一代的共識演算法,比如Algorand、DFINITY、 BUMOBU Firework,以及Ontology的VBFT,都屬於混合共識演算法。

 03
共識演算法的發展趨勢

總體來看,目前主流共識演算法逐漸由PoW轉向PoS共識演算法,採用VRF隨機選擇節點的方式實現演算法的擴充套件性。另外,Avalanche共識演算法也採用隨機選擇節點的方式,實現區塊鏈共識演算法的擴充套件性,不過目前還沒有上線的區塊鏈採用此共識演算法。

隨著對區塊鏈共識演算法的研究,區塊鏈技術社羣發現,在網際網路規模的網路中可達到的效能上限不僅取決於共識演算法的效能引數,更取決於在此規模的網路中完成訊息傳播的時間延遲等物理上限。

因此,主流區塊鏈的研究團隊將下一步區塊鏈網路效能擴充套件方向投向了分片技術狀態通道二層網路等方向。

你如何看待主流共識演算法逐漸由PoW轉向PoS?你認為PoS是未來嗎?為什麼?

免責聲明:

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

推荐阅读

;