區塊鏈的共識機制和幾種算法介紹

區塊鏈的共識機制和幾種算法介紹

在區塊鏈系統當中,沒有一個像銀行一樣的中心化記賬機構,保證每一筆交易在所有記賬節點上的一致性,即讓全網達成共識至關重要。共識機制解決的就是這個問題。

一般而言,在介紹區塊鏈時經常會提到兩個例子:一是由古老的記賬模式延伸到分佈式賬本,二是拜占庭將軍問題(Byzantine Generals Problem)。使用分佈式賬本目的是讓每個節點都能夠驗證交易,而拜占庭將軍問題與賬本的一致性有關,即本文要討論的共識機制(Consensus)。

區塊鏈的核心是參與者之間的共識。共識之所以是關鍵,是因為在沒有中央機構的情況下,參與者必須就規則及其應用方法達成一致;並同意使用這些規則來接受及記錄擬定交易。

共識一開始是作為社會運作的一個概念,但如今已成為計算機科學的重要組成部分。在過去30多年,電腦世界中的共識機制已從一個抽象概念發展成分佈式賬本技術的重要支柱。在分佈式賬本中,共識機制是大部分(或全部)網絡成員就某條數據或擬定交易的價值達成一致,並就此對賬本進行更新的機制。換言之,共識機制是在參與節點之間管理一系列連貫事實的規則和程序。共識算法允許關聯機器連接起來進行工作,並在某些成員失效的情況下,工作仍能正常進行。這種容錯能力是區塊鏈和分佈式賬本的另一主要優勢,並有內置冗餘餘量以作備用。

目前主要幾類共識算法如下:PoW、PoS、DPos、Ripple Consensus、PBFT

區塊鏈的共識機制和幾種算法介紹

1、PoW(工作量證明)

通過與或運算,計算出一個滿足規則的隨機數,即獲得本次記賬權,發出本輪需要記錄的數據,全網其它節點驗證後一起存儲;

優點:易實現,節點間無需交換額外的信息即可達成共識,破壞系統需要投入極大的成本。

缺點:浪費能源,區塊的確認時間難以縮短;共識達成的週期較長,不適合商業應用

2、PoS(權益證明)

PoW的一種升級共識機制,本質上是採用權益證明來代替PoW的算力證明,記賬權由最高權益的節點獲得,而不是最高算力的節點。根據每個節點所佔代幣的比例和時間;等比例的降低挖礦難度,從而加快找隨機數的速度。

優點:,解決了PoW 消耗算力的問題,在一定程度上縮短了共識達成的時間

缺點:擁有權益 的參與者未必希望參與記賬,還是需要挖礦。

類似於董事會投票,持幣者投出一定數量的節點,代理他們進行驗證和記賬。

優點:大幅縮小參與驗證和記賬節點的數量,可以達到秒級的共識驗證。

缺點:整個共識機制還是依賴於代幣,很多商業應用是不需要代幣存在的。

4、Ripple Consensus(瑞波共識算法)

使一組節點能夠基於特殊節點列表達成共識。初始特殊節點列表就像一個俱樂部,要接納一個新成員,必須由51%的該俱樂部會員投票通過。共識遵循這核心成員的51%權力,外部人員則沒有影響力。由於該俱樂部由“中心化”開始,它將一直是“中心化的”,而如果它開始腐化,股東們什麼也做不了。

5、PBFT:Practical Byzantine Fault Tolerance(實用拜占庭容錯算法)

PBFT是一種狀態機副本複製算法,即服務作為狀態機進行建模,狀態機在分佈式系統的不同節點進行副本複製。每個狀態機的副本都保存了服務的狀態,同時也實現了服務的操作。將所有的副本組成的集合使用大寫字母R表示,使用0到|R|-1的整數表示每一個副本。為了描述方便,假設|R|=3f+1,這裡f是有可能失效的副本的最大個數。儘管可以存在多於3f+1個副本,但是額外的副本除了降低性能之外不能提高可靠性。

PBFT算法主要特點如下:客戶端向主節點發送請求調用服務操作;主節點通過廣播將請求發送給其他副本;所有副本都執行請求並將結果發回客戶端;客戶端需要等待f+1個不同副本節點發回相同的結果,作為整個操作的最終結果。

區塊鏈的共識機制和幾種算法介紹

區塊鏈的共識機制一定會越來越清晰,在現實當中起到的作用也會越來越大,並受到眾多機構的支持,從而讓區塊鏈在現實當中的普及進入到一個全新的應用階段。


分享到:


相關文章: