您現在的位置是:首頁 > 單機遊戲首頁單機遊戲

區塊鏈科普:共識演算法Pow、Pos、Dpos、拜占庭都是什麼?

簡介如果網路的分散式節點達成共識並且確認礦工提供的塊雜湊是有效的工作證明,則工作量證明共識演算法確保該礦工僅能夠驗新區塊裡的交易並將其新增到區塊鏈

遊戲pow是什麼屬性

區塊鏈科普:共識演算法Pow、Pos、Dpos、拜占庭都是什麼?

無論是 Bitcoin、Ethereum 還是 EOS,作為一個分散式網路,首先需要解決分散式一致性的問題,也就是所有的節點如何對同一個提案或者值達成共識,這一問題在一個所有節點都是可以被信任的分散式叢集中都是一個比較難以解決的問題,更不用說在複雜的區塊鏈網路中了。

在加密貨幣領域中,共識演算法是每個區塊鏈網路的關鍵要素,它們負責維護這些分散式系統的完整性和安全性。第一個被創建出的加密貨幣共識演算法是工作量證明(PoW),它由中本聰設計並在比特幣上實現,用於實現拜占庭容錯。

共識演算法

共識演算法可以被定義為使區塊鏈網路達成共識的機制。公共(去中心化的)區塊鏈是作為分散式系統來構建的,由於它們不依賴於一箇中央權威,因此分散的節點需要就交易的有效與否達成一致。這就是共識演算法發揮作用的地方,確保所有節點都遵守協議規則並保證所有交易都以可靠的方式進行,即每個貨幣都只能花一次。

在深入研究不同型別的共識演算法之前,先了解演算法和協議之間的差異非常重要。

共識演算法與協議

演算法和協議作為術語經常會被互換使用,但它們並非同一回事。簡單來說,我們可以將協議定義為區塊鏈的主要規則,而將演算法定義為遵循這些規則的機制。

除了金融系統中的廣泛應用,區塊鏈技術還可以應用於各種各樣的業務,並且可以適用於不同的用例。但無論什麼情景,區塊鏈網路都將建立在一個協議之上,該協議將定義系統應該如何工作,因此係統的所有不同部分和網路的所有參與者都需要遵循規則。

雖然協議確定了規則是什麼,但演算法告訴系統採取哪些步驟來遵守這些規則並最終產生所需的結果。例如,區塊鏈的共識演算法決定了交易和區塊的有效性。因此,比特幣和以太坊是協議,而工作量證明和權益證明是它們的共識演算法。

進一步來說,比特幣協議定義了節點間應如何互動,資料應如何在它們之間傳輸,以及區塊驗證成功的要求是什麼。另一方面,公式演算法負責負責驗證餘額和簽名,確認交易,以及實際執行區塊驗證 - 所有這些都取決於網路共識。

區塊鏈科普:共識演算法Pow、Pos、Dpos、拜占庭都是什麼?

不同型別的共識演算法

有幾種型別的共識演算法。最常見的是工作量證明(PoW)和權益證明(PoS)、PBFT、DPOS。在嘗試平衡安全性與功能性和可擴充套件性時,每個方案都有各自的優缺點。

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

優點:高速、可擴充套件。

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

採用者:Hyperledger Fabric、Stellar、Ripple、Dispatch

在解釋這種演算法之前,我們先來看看分散式計算中的經典問題——拜占庭將軍問題。

拜占庭將軍問題是Leslie Lamport在10世紀80年代提出的一個假想問題。拜占庭是東羅馬帝國的首都,由於當時拜占庭羅馬帝國國土遼闊,每支軍隊的駐地分隔很遠,將軍們只能靠信使傳遞訊息。發生戰爭時將軍們必須制訂統一的行動計劃。

然而,這些將軍中有叛徒,叛徒希望透過影響統一行動計劃的制定與傳播,破壞忠誠的將軍們一致的行動計劃。因此,將軍們必須有一個預定的方法協議,使所有忠誠的將軍夠達成一致。而且少數幾個叛徒不能使忠誠的將軍做出錯誤的計劃。也就是說,拜占庭將軍問題的實質就是要尋找一個方法,使得將軍們在一個有版徒的非信任環境中建立對戰鬥計劃的共識。

在分散式系統中,特別是在區塊鏈網路環境中,也和拜占庭將軍的環境類似,有執行正常的伺服器(類似忠誠的拜占庭將軍),還有故障的伺服器,有破壞者的伺服器(類似叛變的拜占庭將軍)。共識演算法的核心是在正常的節點間形成對網路狀態的共識。

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

拜占庭容錯系統是指:在一個擁有n臺節點的系統,整個系統,對每個請求滿足如下條件:

所有非拜占庭節點使用相同的輸入資訊,產生同樣的結果;

如果輸入的資訊正確,那麼所有非拜占庭節點必須接收這個資訊,並計算相應的結果。

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

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

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

拜占庭系統目前普遍採用的假設條件包括:

1) 拜占庭節點的行為可以是任意的,拜占庭節點之間可以共謀;

2) 節點之間的錯誤是不相關的;

3) 節點之間透過非同步網路連線,網路中的訊息可能丟失、亂序、延時到達;

4) 伺服器之間傳遞的資訊,第三方可以知曉 ,但是不能竄改、偽造資訊的內容和驗證資訊的完整性;

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

區塊鏈科普:共識演算法Pow、Pos、Dpos、拜占庭都是什麼?

工作量證明(PoW)

工作量證明是第一個被建立的共識演算法。它被比特幣和許多其他加密貨幣所採用。工作量證明演算法是挖礦過程的重要組成部分。

工作量證明挖礦涉及到大量雜湊(算力)的(挖礦)嘗試,因此更多的算力意味著每秒更多的嘗試。換句話說,雜湊率的礦工有更多機會找到下一個區塊(也叫做塊雜湊)的解。如果網路的分散式節點達成共識並且確認礦工提供的塊雜湊是有效的工作證明,則工作量證明共識演算法確保該礦工僅能夠驗新區塊裡的交易並將其新增到區塊鏈。

延遲工作量證明(dPoW,Delayed Proof-of-Work)

優點:節能;安全性增加;可以透過非直接提供 Bitcoin(或是其它任何安全鏈),添加價值到其它區塊鏈,無需付出 Bitcoin(或是其它任何安全鏈)交易的代價。

缺點:只有使用PoW或PoS的區塊鏈,才能採用這種共識演算法;在“公證員啟用”(Notaries Active)模式下,必須校準不同節點(公證員或正常節點)的雜湊率,否則雜湊率間的差異會爆炸(下文將給出詳細解釋)。

採用者:Komodo

型別:協同型共識(Collaborative consensus)

DPoW是建立在PoB與DPoS基礎上的新一代共識機制,借鑑了前輩共識機制的設計理念和執行的經驗。

解釋DPoW前,需要先說明什麼叫PoB。

PoB(Proof of Burn)叫做焚燒證明機制,是一種透過焚燒自己手中的代幣來表決誰擁有對網路的領導地位的承諾。焚燒代幣的數量越多,能獲得網路領導地位的機率越高。PoB是分散式共識的一種方法,也是工作量證明機制的替代方法。它也可以用來引導一種加密貨幣。

在基於DPoW的區塊鏈中,礦工挖礦所獲得的不再是獎勵的代幣,而是可以焚燒的“wood”——燃木。礦工使用自己的算力,透過雜湊演算法,最終證明自己的工作量之後,獲取對應的wood,wood不可交易。當wood積攢到一定量之後,可以前往燃燒場地燃燒wood。

透過一組演算法計算後,燃燒較多wood的人或者BP或者一組BP可以獲取下個事件段出塊的權利,成功出塊後獲取獎勵(代幣)。由於一個時間段內可能會有多人燃燒wood,下一個時間段出塊的機率由自己燃燒wood數量決定。焚燒的越多,下一段時間可以獲得出塊權利的機率越高。

這樣可以讓算力和出礦權利達到一個平衡。不一定非要龐大算力的礦工、礦池才能成為區塊生產者。小礦工也有春天,只要辛勤勞動,積攢一定數量的wood,也能出塊。保證效率,人人參與,最平民化的參與方式保證了去中心化的理念,避免擁有算力的組織或者持幣大戶把持網路。

PoW 系統中有兩種型別的節點:公證人節點和正常節點。64 個公證人節點是由 dPoW 區塊鏈的權益持有者(stakeholder)選舉產生的,它們可從 dPoW 區塊鏈向所附加的 PoW 區塊鏈新增經公證確認的塊。一旦添加了一個塊,該塊的雜湊值將被新增到由 33 個公證人節點簽署的 Bitcoin 交易中,並建立一個雜湊到 Bitcoin 區塊鏈的 dPow 塊記錄。該記錄已被網路中的大多數公證人節點公證。

為避免公證人節點間在挖礦上產生戰爭,進而降低網路的效率,Komodo 設計了一種採用輪詢機制的挖礦方法,該方法具有兩種執行模式。

在“無公證人”(No Notary)模式下,支援所有網路節點參與挖礦,這類似於傳統 PoW 共識機制。而在“公證人啟用”(Notaries Active)模式下,網路公證人使用一種顯著降低的網路難度率挖礦。“公證人啟用”模式下,允許每位公證人使用其當前的難度挖掘一個區塊,而其它公證人節點必須採用 10 倍難度挖礦,所有正常節點使用公證人節點難度的 100 倍挖礦。

權益證明(PoS)

作為工作量證明的替代方案,權益證明共識演算法在2011年被提出。儘管工作量證明和權益證明有著相同的目標,但它們存在根本的差異性特殊性。特別是驗證新塊的過程。

簡單來說,權益證明共識演算法用一種機制來取代工作量證明的挖礦,期中區塊根據參與者的質押的幣而驗證。每個區塊的驗證者(也稱為鑄造者或者鑄幣者)由本身的加密貨幣投資決定,而不是分配的算力數量。每個權益證明系統可以以不同的方式來實現該演算法,但是通常來說,區塊鏈由隨機的選舉過程保護,該過程考慮了節點的財富、幣齡(幣被鎖定或者是質押的時間)以及隨機因素。

以太坊區塊鏈目前基於工作量共識演算法,但是最終Casper協議將被推出以將網路從工作量共識切換到權益共識,以嘗試增加網路的可擴充套件性。

DPOS(Delegated Proof-of-Stake)委託權益證明

前面介紹的權益證明演算法可以將整個區塊鏈網路理解為一家公司,出資最多、佔比最大的人有更多的機會得到話語權(記賬權);對於小股東來說,千分之幾甚至萬分之幾的股份很難有什麼作為,只能得到股份帶來的分紅和收益。

但是在這裡介紹的委託權益證明(DPOS,Delegated Proof-of-Stake)能夠讓每一個人選出可以代表自己利益的人參與到記賬權的爭奪中,這樣多個小股東就能夠透過投票選出自己的代理人,保障自己的利益。整個網路中選舉出的多個節點能夠在 1s 中之內對 99。9% 的交易進行確認,使用委託權益證明的 EOS 能夠每秒處理幾十萬筆交易,同時也能夠比較監管的干預。

在委託權益證明中,每一個參與者都能夠選舉任意數量的節點生成下一個區塊,得票最多的前 N 個節點會被選擇成為區塊的建立者,下一個區塊的建立者就會從這樣一組當選者中隨機選取,除此之外,N 的數量也是由整個網路投票決定的,所以可以儘可能地保證網路的去中心化。

區塊鏈科普:共識演算法Pow、Pos、Dpos、拜占庭都是什麼?

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

優點:快速;可擴充套件。

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

採用者:Neo。

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

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

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

所以說,dBFT機制實際使用了一種迭代共識的方法來保證系統達成一致決定。然而,這種機制的缺點在於,當系統中有超過三分之一的記賬節點停止工作時,整個區塊鏈網路將無法提供正常的服務;當超過三分之一的節點聯合作惡時,區塊鏈將有可能發生分叉。

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

優點:節能、快速。

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

使用者:POA。Network、Ethereum Kovan testnet、VeChain。

型別:協同型共識。

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

驗證者必須滿足以下三個條件:

其身份必須在鏈上得到正式驗證,資訊可在公有可用域中交叉驗證;

其資格必須難以獲得,這樣所得到的驗證塊的權利才彌足珍貴(例如,潛在的驗證者需要獲得公證書);

建立權威的檢查和程式必須完全統一。

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

恆星共識(Stellar Consensus)

優點:去中心化控制;低延遲;靈活的信任機制;漸進安全(Asymptotic security)。

採用者:Stellar

恆星共識基於聯邦拜占庭共識(FBA)。恆星共識協議(SCP,Stellar Consensus Protocol)提供了一種不依賴閉合系統實現準確記錄金融交易而達成共識的方法。

SCP 具有一組可驗證的安全屬性,這些屬性根據如何安全地保持活力而做了最佳化。一旦出現分割槽或不當行為節點,它將會終止網路過程,直至達成共識。SCP 同時具備四種屬性:去中心控制、低延遲、靈活信任機制和漸進安全。

為什麼共識演算法對於加密貨幣至關重要

就如同前面所說,共識演算法對於維護加密貨幣網路的完整性和安全性至關重要。它們提供了一種分散式節點就正確版本的區塊鏈達成共識的方法。對當前的區塊鏈狀態達成共識對數字經濟系統的正常運作至關重要。

工作量證明共識演算法被認為是拜占庭將軍問題的最佳解決方案之一,它可以將比特幣建立為拜占庭容錯系統。這意味著比特幣對攻擊具有很強的抵抗力,例如51%的攻擊(或多數攻擊)。不僅僅因為網路是去中心化的,而且還因為工作量證明演算法。挖礦過程中涉及的高成本使礦工很難並且不太可能投入資源來破壞網路。

Top