一、工作量證明(PoW)
1.概念: 工作量證明涉及到大量礦工挖礦,如果網絡的分佈式節點達成共識並且確認礦工提供的塊哈希是有效的工作證明,則工作量證明共識算法確保該礦工僅能夠驗新區塊裏的交易並將其添加到區塊鏈。
2.優點:
完全的去中心化
3.缺點:
依賴機器進行運算並獲取記賬權的過程造成了巨大的資源消耗。每次達成共識需要全網共同參與計算,性能效率較低。容易被算力控制。
二、權益證明(PoS)
1.概念:
權益證明共識算法用一種機制來取代工作量證明的挖礦,期中區塊根據參與者的質押的幣而驗證。每個區塊的驗證者(也稱爲鑄造者或者鑄幣者)由本身的加密貨幣投資決定,而不是分配的算力數量。每個權益證明系統可以以不同的方式來實現該算法,但是通常來說,區塊鏈由隨機的選舉過程保護,該過程考慮了節點的財富、幣齡(幣被鎖定或者是質押的時間)以及隨機因素。
2.優點:
它根據每個節點所佔代幣的比例和時間,等比例的降低挖礦難度,從而加快找到隨機數的速度。在一定程度上縮短了共識達成的時間,不再需要大量消耗能源去挖礦。
3.缺點:
沒有完全解決挖礦導致的問題,仍存在被攻擊可能導致分叉。
三、股份授權證明(DPoS機制)
1.概念:
DPoS機制類似於董事會投票,持幣人選出一定數量的節點,進行代理驗證和記賬。
2.優點:
同步確認的節點越來越少,其速度也會越來越快。
3.缺點:
弱去中心化,也沒有擺脫對代幣的依耐。
四、PBTF算法及實現
1.概念:
PBFT 共識分爲三個過程,分別是預準備、準備、提交,其中後兩個過程通信複雜度爲 O(n^2),當節點數過多時,PBFT 的效率會急劇下降,因此,PBFT 通常應用在節點數較少的聯盟鏈中。
從發起請求到最終收到reply,中間的共識過程需要經過3個階段:
pre-prepare:primary收到請求,生成新區塊並廣播
prepare:所有replica收到區塊後,廣播區塊驗證結果,同時等待接收超過2/3的節點的廣播
commit:收到2/3的節點廣播或者超時後,再次發送廣播,同時再次等待接收超過2/3的節點的廣播
各共識方法對比如下: