8.1 主流共識介紹

背景

共識算法是區塊鏈項目中最核心的部分,有分佈式,就需要達成共識。共識算法對於加密貨幣而言至關重要的,因爲它可以防止雙花問題。

從歷史上看,雙花問題是限制數字貨幣發展的一個重要挑戰,直到採用了分佈式賬本之後才得以改觀。正因爲加密貨幣是由公開的和不可篡改的分佈式賬本實現的,因此必須採用共識算法來驗證賬本是否具有唯一性,以保證整個加密貨幣網絡不被惡意節點所破壞。因此,共識算法必須具備容錯的能力。例如,通常假設只需要一部分節點作出反應,但最少需要百分五十一的節點反應。

主流共識介紹

在當前的多個項目中,有四種主要的實現方式:工作量證明(pow),權益證明(pos),委託權益證明(dpos)和EOS中使用的BFT-DPOS共識,每個都有其獨特的優點和缺點。
8.1 主流共識介紹

工作量證明(pow)

工作量證明是第一個成功的去中心化區塊鏈共識算法,工作量證明被比特幣和其他的一些加密貨幣使用,工作量證明要求節點參與者執行復雜的計算,計算出符合要求的結果,而對於其他網絡參與者來說要易於驗證。

Pow的過程,即爲不斷調整Nonce值,對區塊頭做雙重SHA256哈希運算,使得結果滿足給定數量前導0的哈希值的過程。其中前導0的個數,取決於挖礦難度,前導0的個數越多,挖礦難度越大。
8.1 主流共識介紹
pow挖礦過程:

  1. 生成一筆交易,並與其它所有準備打包進區塊的交易組成交易列表,生成Merkle根哈希值。
  2. 將Merkle根哈希值,與其它字段組成區塊頭,80字節長度的區塊頭作爲Pow算法的輸入。
  3. 不斷變更區塊頭中的隨機數Nonce,對變更後的區塊頭做雙重SHA256哈希運算,與當前難度的目標值做比對,如果小於目標難度,即Pow完成。

Pow完成的區塊向全網廣播,其他節點將驗證其是否符合規則,如果驗證有效,其他節點將接收此區塊,並附加在已有區塊鏈之後,之後將進入下一輪挖礦。

POW的優點:
完全去中心化和分佈式賬本。

POW的缺點:
計算複雜,浪費資源,交易吞吐量較低。

權益證明(pos)

權益證明也是需要節點進行計算,最後計算的結果小於難度值,則搶到區塊的概率越高。要求所有的參與者抵押一部分他們所擁有的token來驗證交易。不同於通過完成複雜計算問題來驗證交易,驗證者需要通過鎖定token來完成交易驗證。選取交易驗證者的方式通常是根據他們所抵押的token佔整個網絡代幣的比例,以及token抵押時長,因爲抵押的token越多,持有的時間越長,計算的難度就越小。權益證明通過長期綁定驗證者的利益和整個網絡的利益來阻止不良行爲。通過鎖定代幣,如果驗證者存在欺詐×××易,那麼他們所抵押的token也會被削減。

PoS一個重要的概念是幣齡,幣齡 = 持有的幣數 持有幣的天數,例如錢包裏有90個點點幣,都持有了10天,則幣齡=900。與PoW一樣,爲了搶到將區塊寫入區塊鏈的權利,節點同樣要進行hash計算,只不過最終的解和幣齡有關,計算公式:
proofHash < coinAge
target;
coinAge是幣齡,target是一個目標值,用於調整難度。coinAge * target的值越大,難度就越小,搶到區塊的概率就越高。
8.1 主流共識介紹

pos挖礦過程:

  1. 團隊運行節點;
  2. 註冊成爲驗證人;
  3. Staking過程(持幣人委託給節點,或是團隊自由代幣進行Staking委託);
  4. 選舉驗證人(系統通過算法選出每一輪的出塊節點或是驗證節點);
  5. 打包交易、廣播交易、驗證人確認一連串過程;
  6. 獲得獎勵(獎勵是由節點與持幣人按照Staking比例分配);

PoS的優點:
(1) 不需要PoW那麼大的算力,可以減少資源浪費;
(2) 不容易遭受51%***,相比起掌握系統一半以上的算力,擁有整個系統51%的財力會更加困難。

PoS缺點:
(1) 容易被壟斷:因爲持幣越多,持有的越久,幣齡就越高,越容易挖到區塊並得到激勵,持幣少的人基本上沒有機會,這樣整個系統的安全性實際上會被持幣數量較大的一部分人(大股東們)掌握;而比特幣則不存在這個問題,因爲理論上任何人都可以購買礦機獲得提高自己的算力(甚至可以聯合起來),提升自己挖礦成功的概率;
(2) 很難應對分叉的情況:當出現分叉時,PoS可以在兩條鏈上同時挖礦並獲得收益。而PoW則不存在這個問題,因爲當出現分叉以後,PoW總是選擇工作量大的鏈做爲主鏈。

委託權益證明(dpos)

雖然委託權益證明和權益證明名字差不多,但實施細節卻有顯著的不同。在委託權益證明中,不同於權益證明的抵押token來驗證交易,而是通過token的持有者投票產生一組交易驗證者(超級節點)。
委託權益證明是去中心化的,因爲網絡中的所有參與者都能參與投票選取節點來驗證交易,但也是中心化的,因爲只有一組交易驗證者,這樣的好處就是提高交易和驗證的速度。由於區塊生產者數量有限,DPoS能夠處理的事務吞吐量比PoW高出多個數量級。委託權益證明的實施中需要維持良好的信譽,通過持續投票流程以及驗證節點的更換,來得以保證選取產生的驗證者有良好的責任心和信任感。
8.1 主流共識介紹

委託權益證明的優勢在於良好的可擴展性以及快速的交易驗證,但是缺點在於部分中心化。委託權益證明目前被用於Steemit,EOS和BitShares等項目中。

DPoS,以限制網絡上驗證者的數量爲代價,提供高級別的可擴展性。其中固定數量的選定實體(稱之爲區塊生產者或見證人)被挑選來以循環順序創建區塊。區塊生產者由網絡用戶投票決定,他們每個人都得到與他們在網絡上擁有的代幣數量(他們的股份)成正比的選票。或者,選民可以選擇將他們的股權委託給另一名選民,被委託的選民將代表他們投票選舉區塊生產者。DPOS與POW最大的區別是不用計算,生產者由投票決定,並已確定好生產順序來依次生產區塊。

DPoS的優點:
提高了交易和驗證的速度,處理事務吞吐量比今天的PoW高出多個數量級。
DPoS的缺點:
1.投票的積極性並不高:絕大多數持股人從未參與投票。這是因爲投票需要時間、精力以及技能,而這恰恰是大多數投資者所缺乏的。
2.壟斷性高:PoW下幾乎沒有門檻,任何人都可以投入算力,通過競爭獲得區塊獎勵。而DPoS延續了PoS的弊端,只有持幣者纔可以獲得區塊鏈獎勵,其實這就帶來了一種制度性門檻,最終導致DPoS幣的流動性大大減少,窮者越窮,富者越富。

BFT-DPOS共識機制

拜占庭容錯機制(BFT)

BFT( Byzantine Fault Tolerance)稱爲拜占庭容錯,拜占庭容錯技術是一類分佈式計算領域的容錯技術。
拜占庭將軍的問題,當 n > 3m 時,即叛徒的個數 m 小於將軍總數的 n 的 1/3 時,通過口頭同步通信(假設通信是可靠的),可以構造同時滿足“一致性”和“正確性”的解決方法,即將軍們可以達成一致的命令。
N個區塊生產者由區塊生產者候選人被選舉出來,當一個區塊被(2/3 + 1)個區塊生產者確認時,它會得到最終確定(即不可逆轉)。
選民如果發現區塊生產者是惡意的(即試圖審查事務或雙重支出),則可以通過在下一輪投票時不給他投票“炒掉”他。
8.1 主流共識介紹

EOS的共識機制採用(BFT-DPOS)共識機制,EOS通過投票的方式選舉出21個超級節點作爲記賬節點,21個區塊生產者通過token持有者的投票被選出,選中的生產者依據商定好的順序生產區塊,這個順序由21個生產者商定,每生產10輪,21個節點會從新投票被選出。如果輪到某節點出塊而沒有出塊,則該節點可能被投票出局,由其他備選節點頂替,每個節點有6秒的時間片,輪流出塊,每0.5秒出一個塊,每個生產者節點每次出12個塊(6/0.5)。

DPoS共識加上BFT算法後,生產節點出塊時,會確認收到的塊,同時向剩下20個節點進行廣播,如果有超過(2/3+1)的節點驗證通過,則將該區塊加入備選不可逆塊列表中(單節點驗證成功),當全網有超過(2/3+1)的節點把該區塊驗證通過後,最後的不可逆塊是從排好序的備選不可逆塊列表中取1/3處獲取,因爲可能存在網絡問題,會導致最後的不可逆塊衝突(後面章節詳細介紹),爲了解決衝突,需要對備選不可逆塊再做(2/3+1)次確認。

優點:
BFT-DPOS可以使得EOS的出塊和確認塊速度顯著增加,並且可以解決網絡延遲造成的塊丟失問題。

缺點:
1.投票參與度較低,要成爲生產節點,配置要求較高,普通人很難參與,導致投票積極性不高。
2.token壟斷性高,普通人很難成爲生產者,獲取獎勵。

總結

各種共識的優缺點:
8.1 主流共識介紹

鏈接

星河公鏈
https://www.jianshu.com/p/4de66ee2b2c6
https://blog.csdn.net/arm_snow/article/details/90018368

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章