區塊鏈共識機制:POW、POA、POS、DPOS、PBFT、DBFT


由於區塊鏈的去中心化的特性,沒有中心記賬節點,需要全網對賬本達成共識,因此共識機制作為區塊鏈的關鍵技術之一,在業務吞吐量、交易速度、不可篡改性、准入門檻等等方面發揮重要的作用。

本次筆記歸納如下幾種共識算法:

  • POW,工作量證明
  • POS,權益證明
  • DPOS,授權POS
  • POA,權威證明
  • PBFT,實用拜占庭容錯算法
  • DBFT,授權拜占庭容錯算法

 

問題場景

區塊鏈技術中非對稱加密可信的分布式網絡解決拜占庭將軍問題中的共識問題。

非對稱加密

可以解決古代難以解決的簽名問題:

  • 消息傳送的私密性
  • 能夠確認身份
  • 簽名不可偽造、篡改

作用:保護消息內容, 並且讓消息接收方確定發送方的身份。

分布式記賬場景

 下面開始歸納現區塊鏈主流共識算法(機制)

PoW(Proof of Work,工作量證明)

“解決一道數學難題”,“機器性能越好,挖礦時間越長,獲得的回報也越多。”

類型:競爭共識

概念:工作量證明,引入了對一個特定值的計算工作。

POW共識算法應用場景:比特幣(BTC)及其引申出來的BCH、BCD等

算法工作描述:

  1. 礦工們在挖一個新的區塊時,必須對SHA-256密碼散列函數進行運算,區塊中的隨機散列值以一個或多個0開始。
  2. 隨着0數目的上升,找到這個解所需要的工作量將呈指數增長,礦工通過反復嘗試找到這個解。

解決問題:

  1. 誰有權記賬
  2. 如何避免記賬者作弊

優點:

算法簡單,采用大家認可的數學邏輯(找尋隨機數),容易實現。安全系數最高,破壞整個系統,需要投入巨大成本。

缺點:

  1. 大量消耗能源。
  2. 它的價值回路必須要通過外部輸入。也就是說,采用POW的數字貨幣仍舊不是理想狀態的數字貨幣,因為它們的安全性不直接與使用者相關,而是要通過礦工這個媒介。

使用該算法的項目(包含且不限於):

Bitcoin、Ethereum、Litecoin、Dogecoin

 

POS(Proof of Stake,權益證明)

“擁有的幣越多,有記賬權的概率就越大?”

類型:競爭共識

因為POW大量消耗能源和安全性不與使用者相關的問題,POS的出現可以解決這些問題:

  1. 采用POS的貨幣的安全性直接與使用者相關,省去了礦工這個媒介。
  2. POS簡單說就是,每當發表一條消息的時候,不用證明你付出了什么代價,而要證明你擁有一定數量的錢。而擁有錢代表着,如果你作弊損害了這個系統的安全性,你的錢會貶值,這變相地讓你付出了代價。
  3. 這東西更好的一點是,如果采用POS,實際上連挖礦獎勵都不需要,因為POS實際上不需要付出任何代價。
概念:

試圖解決POW機制中大量資源被浪費的情況。這種機制通過計算你持有占總幣數的百分比,包括你占有幣數的時間來決定記賬權。

優點:不需要拼算力挖礦,不會浪費電力。縮短了共識達成的時間,效率提高。

缺點:

  1. 擁有權益的參與者因為可以持幣吃利息,所以賣幣意願不強烈,容易產生壟斷。
  2. 所有的確認都只是概率上的表達,存在其他攻擊的可能性。挖礦成本低,硬分叉十分容易。

使用該算法的項目(包含且不限於):

Ethereum、Peercoin、Nxt

 

DPOS(Delegated Proof of Stake,授權權益證明)

可理解為“公司董事會”。

類型:協同型共識

2014年4月由Bitshares 的首席開發者 Dan Larimer(BM)提出。它的原理是讓每一個持有比特股的人進行投票,由此產生101位代表 , 我們可以將其理解為101個超級節點或者礦池,而這101個超級節點彼此的權利是完全相等的。

優點:節能;快速;高流量博客網站 Steemit 就使用了它。EOS 的塊時間是 0.5 秒。

缺點:略為中心化;擁有高權益的參與者可投票使自己成為一名驗證者(這是近期已在 EOS 中出現的問題)。

使用該算法的項目(包含且不限於):

BitShares、Steemit、EOS、Lisk、Ark。

 

POA(Proof-of-Authority,權威證明)

“投票指定一位被認可的賬戶作為礦工”

類型:協同型共識

 基於 PoA 的網絡、事務和區塊,是由一些經認可的賬戶認證的,這些被認可的賬戶稱為“驗證者”(Validator)。驗證者運行的軟件,支持驗證者將交易(transaction)置於區塊中。該過程是自動的,無需驗證者持續監控計算機,但需要維護計算機(權威節點)不妥協(uncompromised)。

使用 PoA,每個個體都具有變成驗證者的權利,因此存在一旦獲取就保持驗證者位置的動機。通過對身份附加一個聲譽,可以鼓勵驗證者去維護交易的過程。因為驗證者並不希望讓自己獲得負面聲譽,這會使其失去來之不易的驗證者地位。

優點:節能、快速。

缺點:略為中心化;雖然可用於公有區塊鏈,但是通常用於私有區塊鏈和許可區塊鏈。

使用該算法的項目(包含且不限於):

POA.Network、Ethereum Kovan testnet、VeChain

 

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

類型:協同型共識

首先從“拜占庭將軍問題”開始(簡書:中本聰與拜占庭將軍問題),拜占庭將軍問題的實質就是要尋找一個方法,使得將軍們在一個有版徒的非信任環境中建立對戰斗計划的共識。

實用拜占庭容錯(PBFT,Practical Byzantine Fault Tolerance)是首個提出的該問題解決方案,當前已被 Hyperledger Fabric 采用。PBFT 使用了較少(少於 20 個,之后會稍有增加)的預選定將軍數,因此運行非常高效。它的優點是高交易通量和吞吐量,但是不足之處在於是中心化的,並用於許可網絡。

拜占庭容錯系統是指:在一個擁有n台節點的系統,整個系統,對每個請求滿足如下條件: 所有非拜占庭節點使用相同的輸入信息,產生同樣的結果; 如果輸入的信息正確,那么所有非拜占庭節點必須接收這個信息,並計算相應的結果。

與此同時,在拜占庭系統的實際運行過程中一般假設系統中拜占庭節點不超過m台,並且對每個請求滿足2個指標:

安全性——任何已經完成的請求都不會被更改,它可以在以后請求看到;

活性——可以接受並且執行非拜占庭客戶端的請求,不會被任何因素影響而導致非拜占庭客戶端的請求不能執行。

 

優點:高速、可擴展。

缺點:通常用於私有網絡和許可網絡。

使用該算法的項目(包含且不限於):

Hyperledger Fabric、Stellar、Ripple、Dispatch

 

DBFT (Delegated Byzantine Fault Tolerance, 授權拜占庭容錯算法)

類型:協同型共識

同樣是為了解決拜占庭將軍問題,「授權拜占庭容錯」機制,是一種在NEO區塊鏈內部實現的保證容錯的共識算法。

在這個機制當中,存在兩個參與者,一個是專業記賬的“記賬節點”,一個是系統當中的普通用戶。

普通用戶基於持有權益的比例來投票決定記賬節點,當需要通過一項共識時,在這些記賬節點中隨機推選出一名發言人擬定方案,然后由其他記賬節點根據拜占庭容錯算法,即少數服從多數的原則進行表態,如果超過66%的節點表示同意發言人方案,則共識達成;否則,重新推選發言人,重復投票過程。

優點:快速;可擴展。

缺點:每個人都爭相成為根鏈。其中可能存在多個根鏈。

使用該算法的項目:

Neo

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM