區塊鏈共識協議最詳細的分析

想知道更多關於區塊鏈技術知識,請百度【鏈客區塊鏈技術問答社區】

鏈客,有問必答!

未經容許,拒絕轉載,https://www.liankexing.com/no...html

共識機制是區塊鏈的核心基石,是區塊鏈系統安全性的重要保障。區塊鏈是 一個去中心化的系統,共識機制經過數學的方式,讓分散在全球各地成千上萬的節點就區塊的建立達成一致的意見。共識機制中還包含了促使區塊鏈系統有效運 轉的激勵機制,是區塊鏈創建信任的基礎。
    區塊鏈公鏈經常使用的共識機制有 POW、POS、DPOS、BFT 以及多種機制混合而成的共識機制等。共識是指系統節點達成一致的過程,而分佈式系統的一致性體如今三個方面:算法

最終性(Termination): 全部進程最終會在有限步數中結束並選取一 個值, 算法不會無盡執行下去。
    統一性(Agreement): 全部進程必須贊成同一個值。
    合法性(Validity): 輸出內容是輸入內容按照系統規則生成的,且輸出內容合法。

    最終性衡量了達成共識的效率,在一些對交易確認的實時性要求高的場景顯 得很是重要,而統一性和合法性表徵了共識的安全性。在區塊鏈系統中,去中心 化程度表徵了分佈式系統的大規模協做程度。所以,咱們從效率、安全性和去中 心化程度這三個維度去評價各類共識機制,也就是長鋏提出的著名的「不可能三 角」3理論。安全

  1. POW共識機制

        比特幣採用的 POW 工做量證實共識機制,在生成區塊時,系統讓全部節點 公平地去計算一個隨機數,最早尋找到隨機數的節點便是這個區塊的生產者,並 得到相應的區塊獎勵。因爲哈希函數是散列函數,求解隨機數的惟一方法在數學 上只能是窮舉,隨機性很是好,每一個人均可以參與協議的執行。因爲梅克爾樹根的設置,哈希函數的解的驗證過程也能迅速實現。所以,比特幣的 POW 共識機 制門檻很低,無需中心化權威的許可,人人均可以參與,而且每個參與者都無 需身份認證。
    同時,中本聰經過工做量證實的機制破解了無門檻分佈式系統的「女巫攻擊」 問題。對系統發起攻擊須要掌握超過 50%的算力,系統的安全保障較強。
    POW 共識的優勢可概括爲:服務器

算法簡單,容易實現,節點可自由進入,去中心化程度高。
    破壞系統須要投入極大的成本,安全性極高。
    區塊生產者的選擇經過節點求解哈希函數實現,提案的產生、驗證到共識的最終達成過程是一個純數學問題,節點間無需交換額外的信息便可達成共識,整個過程不須要人性的參與。

    比特幣系統的設定在保證安全性的的前提下,犧牲了一部分最終性。所以,POW 共識算法也存在一些問題:網絡

爲了保證去中心化程度,區塊的確認時間難以縮短。
沒有最終性,須要檢查點機制來彌補最終性,但隨着確認次數的增長,達成共識的可能性也呈指數級地增加。 因爲這兩個方面的問題,一筆交易爲了確保安全,要在 6 個新的區塊產生後才能在全網獲得確認,也就是說一個交易的確認延遲時間大概爲 1 小時,這沒法 知足現實世界中對交易實時性要求很高的應用場景。

    另外一方面,POW 共識算法帶來了硬件設備的大量浪費。隨着比特幣價值的 增加,比特幣算力競賽經歷了從 CPU 到 GPU,再到 ASIC 專用芯片的階段。算力強大的 ASIC 芯片礦機將挖礦算法硬件化,而 ASIC 芯片礦機在淘汰後,沒有 其餘的用途,形成了大量的硬件浪費。架構

  1. POS共識機制

    POS(Proof of Stake)共識機制,是一種由系統權益代替算力決定區塊記 帳權的共識機制,擁有的權益越大則成爲下一個區塊生產者的機率也越大。POS 的合理假設是權益的全部者更樂於維護系統的一致性和安全性。若是說 POW 把 系統的安全性交給了數學和算力,那麼 POS 共識機制把系統的安全性交給了人 性。人性問題,能夠用博弈論來研究,POS 共識機制的關鍵在於構建適當的博弈 模型相應的驗證算法,以保證系統的一致性和公平性。
    POS 共識機制沒有像 POW 那樣耗費能源和硬件設備,縮短了區塊的產生 時間和確認時間,提升了系統效率。但存在的缺點也有不少,包括:分佈式

實現規則複雜,中間步驟多,參雜了不少人爲因素,容易產生安全漏洞。
與 POW 共識機制同樣沒有最終性,須要檢查點機制來彌補最終性。

     (1) POS 共識機制的最先實踐
    早期 POS 共識機制的實現通常是結合了 POW 共識機制,如點點幣(Peer Coin)、黑幣(Black Coin)等。其主要思想是區塊記帳權的得到難度與節點持 有權益的幣齡成反比。相比於 POW 共識機制,必定程度減小了數學運算帶來的 資源消耗,達成共識的時間也相應地縮短,出塊效率提升。 但這種 POS 共識機制的致命弱點在於幣齡依賴問題,攻擊者在積累長時間 幣齡後,挖礦的難度大大下降,容易對系統發起雙花攻擊。
    (2) 純 POS 共識機制
    純 POS 共識機制由節點所持權益(持有數量乘以持有時間)決定區塊生產 者,權益比例越高,被選爲區塊生產者的機率也越大,區塊生產者選舉過程當中沒 有挖礦。這種機制的踐行者有將來幣(NXT)和量子鏈(QTUM)等。
    純 POS 共識機制沒有引入外部資源,僅僅依靠自身的權益來維護網絡安全, 所以其不須要消耗能源來進行計算;並且因爲其沒有引入外部的資源,所以不會 擔憂外部攻擊,例如外界的算力攻擊。可是,這種 POS 共識依然存在不少問題:函數

無利害關係攻擊(Nothing-at-Stake attack)

    基於權益的挖礦不須要像 POW 共識同樣投入物理算力和能源的消耗,只需 要持有權益。假設系統中出現了兩個分支鏈,那麼對於持有幣的「挖礦者」來說, 礦工的最佳的操做策略就是同時在兩個分支上進行「挖礦」,這樣不管哪一個分支 勝出,對幣種持有者來說,都會得到本屬於他的利益,而不會有利益損失。 這致使的問題是,只要系統存在分叉,「礦工們」都會同時在這幾個分支上 挖礦;所以在某種狀況下,發起攻擊的分叉鏈是極有可能成功的,由於全部人也 都在這個分叉鏈上達成了共識;並且甚至不用持有 51%的權益,就能夠成功發 起分叉攻擊。性能

馬太效應

    POS 共識機制下的權益累計由持幣數量乘以持幣時間獲得,它勢必造成贏 家通吃的局面。假設電力成本均爲 3 幣,大戶持有 100 幣天得到 100 利息幣, 小戶持有 1 幣天,得到 1 利息幣。這樣大戶會傾向於開機得到更多的幣天,而 小戶傾向於關機,(97,0)是最終博弈的選擇。如此,大戶得到的幣愈來愈多, 形成富者愈富,貧者愈貧的局面。區塊鏈

記帳節點激勵問題

    儘管 POS 中的「挖礦」不用消耗算力,運行成本很低,可是也存在如何激 勵 POS 礦工的問題。由於通常的 POS 系統是沒有新幣產生的,礦工只能賺取交 易費,並且在交易費不高的狀況下,對礦工的激勵十分有限。
    (3)改進的 POS 共識機制
    針對純 POS 共識機制存在的問題,改進的 POS 共識機制經過設立懲罰制 度來保證系統安全,區塊驗證者以存入押金的形式參與,對系統惡意攻擊的懲罰 力度要比獎勵大成百上千倍。
    POS 共識的這種改進方便區塊鏈進行分叉選擇和在鏈上設置檢查點,解決 了純 POS 共識機制的分叉問題,並使共識結果得到了最終性。可是對於如何判 定惡意攻擊依然是個備受爭議的問題。POS 共識的實行過程始終是一個複雜的 人性博弈過程。 以太坊的 Casper FFG 版 POS 機制將於以太坊第三階段 Metropolis 中的 第二部分 Constantinople(君士坦丁堡)中投入使用,這是一種融合了改進的 POS 共識和 POW 共識的混合共識。以太坊 Casper FFG 版本的記帳人選擇和 出塊時間都由 POW 共識完成,POS 共識在每 100 個區塊處設置檢查點,爲交 易確認提供最終性,也是這種 POW-POS 混合共識機制優於 POW 共識機制的 地方。

  1. DPOS共識機制

    DPOS(Delegated Proof of Share),代理權益證實共識機制,是一種 基於投票選舉的共識算法,相似代議制民主。在 POS 的基礎上,DPOS 將區塊 生產者的角色專業化,先經過權益來選出區塊生產者,而後區塊生產者之間再輪 流出塊。
    DPOS 共識由 BitShares(比特股)社區首先提出,它與 POS 共識的主要 區別在於節點選舉若干代理人,由代理人驗證和記帳。DPOS 相比 POS 能大幅 度提高了選舉效率,在犧牲一部分去中心化特性的狀況下獲得性能的提高。
    DPOS 共識機制不須要挖礦,也不須要全節點驗證,而是由有限數量的見 證節點進行驗證,所以是簡單、高效的。因爲驗證節點數量有限,DPOS 共識被 廣泛質疑過於中心化,代理記帳節點的選舉過程當中也存在巨大的人爲操做空間。
    (1) EOS
    EOS 系統中共有 21 個超級節點和 100 個備用節點,超級節點和備用節點 由 EOS 權益持有者選舉產生。區塊的生產按 21 個區塊爲一輪。在每輪開始的 時候會選出 21 個區塊生產者。前 20 個區塊生產者由系統根據網絡持幣用戶的 投票數自動生成,最後一名區塊生產者根據其得票數按機率生成。所選擇的生產 者會根據從區塊時間導出的僞隨機數輪流生產區塊。
    EOS 結合了 DPOS 和 BFT(拜占庭容錯算法)的特性,在區塊生成後即進 入不可逆狀態,於是具備良好的最終性。EOS 採用的石墨烯技術使其在理論上 可以達到百萬級別的 TPS,目前上線的測試網絡的 TPS 達到數千量級。同時, 因爲 EOS 的記帳節點有嚴格的篩選制度,系統的安全性也很高。
    DPOS 做爲 POS 的變形,經過縮小選舉節點的數量以減小網絡壓力,是一 種典型的分治策略:將全部節點分爲領導者與跟隨者,只有領導者之間達成共識 後纔會通知跟隨者。該機制可以在不增長計算資源的前提下有效減小網絡壓力, 在商業環境的實現中將會具備較強的應用價值。
    DPOS 爲了實現更高的效率而設置的代理人制度,背離了區塊鏈世界裏人 人可參與的基本精神,也是 EOS 一直被質疑的地方。
    (2) Cardano
    Cardano 實行的共識機制 Ouroboros 可認爲是 DPOS 共識的一個變種, 而 Cardano 團隊更願意將其表述爲 Dynamic POS。與 DPOS 共識的相同之處 是,只有 Cardano 的代幣 ADA 持有量超過必定數量的地址(官方數據 ADA 前 2%的地址)纔有資格參與區塊生產者的選舉,持有 ADA 越多的用戶,被選爲區 塊生產者的機率越大。
    Ouroboros協議將物理時間分爲紀元(epoch),而後再將紀元劃分爲區塊 (slot),每一個紀元持續5天,每一個區塊持續約20s。每一個紀元的區塊生產者在上 一個紀元就已經選定,並在下一個紀元中隨機選定某個候選人充當各個區塊的生 產者,一個候選生產者可能在一個紀元中對生產多個區塊。
    Cardano 團隊認爲 Ouroboros 不一樣於 DPOS 之處在於,Cardano 記帳 人的選舉過程是徹底隨機的,而不是利益相關方選舉而來。Ouroboros 共識算 法中引入了一種拋硬幣協議(coin tossing protocol),能夠保證選舉過程的完 全隨機性。據 Cardano 團隊稱,Ouroboros 是目前爲止惟一在數學上證實可以 達成近似納什均衡的 POS 共識機制,但其有效性仍需實際運行效果來檢驗。

  1. BFT共識機制

    (1)PBFT
    最經常使用的BFT共識機制是實用拜占庭容錯算法PBFT(Practical Byzantine Fault Tolerance)。該算法是Miguel Castro和Barbara Liskov在1999年提出 來的,解決了原始拜占庭容錯算法效率不高的問題,將算法複雜度由節點數的指 數級下降到節點數的平方級,使得拜占庭容錯算法在實際系統應用中變得可行。
    PBFT是針對狀態機副本複製爲主的分佈式系統執行環境開發的算法,旨在 讓系統中大部分的誠實節點來覆蓋惡意節點或無效節點的行爲。PBFT算法的節 點數量是固定的,節點身份提早肯定,沒法動態添加或刪除,只能適用於節點數 目固定的聯盟鏈或私有鏈場景中。
    PBFT算法存在的問題:

計算效率依賴於參與協議的節點數量,不適用於節點數量過大的區塊鏈系統,擴展性差。系統節點是固定的,沒法應對公有鏈的開放環境,只適用於聯盟鏈或私有鏈環境。
PBFT算法要求總節點數n>=3f+1(其中,f表明做惡節點數)。系統的失效節點數量不得超過全網節點的1/3,容錯率相對較低。

    (2)DBFT
    考慮到BFT算法存在的擴容性問題,NEO採用了一種代理拜占庭容錯算法— —DBFT(Delegated Byzantine Fault Tolerant)。它與EOS的DPOS共識機制 同樣,由權益持有者投票選舉產生代理記帳人,由代理人驗證和生成區塊,以此 大幅度下降共識過程當中的節點數量,解決了BFT算法固有的擴容性問題。
    爲了便於在區塊鏈開放系統中應用,NEO的DBFT將PBFT中的將C/S(客戶 機/服務器)架構的請求響應模式,改進爲適合P2P網絡的對等節點模式,並將靜 態的共識參與節點改進爲可動態進入、退出的動態共識參與節點,使其適用於區 塊鏈的開放節點環境。
    DBFT的算法中,參與記帳的是超級節點,普通節點能夠看到共識過程,並 同步帳本信息,但不參與記帳。總共 n 個超級節點分爲一個議長和 n-1 個議員, 議長會輪流當選。每次記帳時,先有議長髮起區塊提案(擬記帳的區塊內容), 一旦有至少(2n+1)/3 個記帳節點(議長加議員)贊成了這個提案,那麼這個 提案就成爲最終發佈的區塊,而且該區塊是不可逆的,全部裏面的交易都是百分 之百確認的,區塊不會分叉。
    NEO 的 DBFT 共識機制下只設置了 7 個超級節點,以一種弱中心化的模式 實現較高的共識效率。目前,這些代理節點是靜態選出的,並徹底由項目方部署, NEO 由此被外界質疑爲過於中心化。
    DBFT 的優勢一方面是效率高,NEO 每 15~20 秒生成一個區塊,交易吞吐 量可達到約 1000TPS,經過適當優化,性能可達 10000TPS;另外一方面是其良 好的最終性,區塊不會分叉,以此來驗證參與者的身份,保護網絡安全,使區塊 鏈可以適用於對交易確認實時性要求高的真實金融場景。
    DBFT 的缺點也不容忽視,一方面體如今較低的容錯率,當有 1/3 或以上超 級節點爲惡意節點或宕機後,系統將沒法提供服務;另外一方面體如今超級節點數 量過少,中心化程度高。

  1. POW共識機制的迴歸

    (1) 各類共識機制的比較
        比特幣是解決了拜占庭將軍問題的分佈式帳本,在徹底開放的環境中,實現 了數據的一致性和安全性。但比特幣採用的POW 共識機制被普遍質疑爲:

消耗大量能源和硬件設備;
區塊同步時間長,擴展性弱,TPS 低。 因而效率更高、被認爲更加節能環保的 POS、DPOS、BFT 等共識機制相繼 問世,並獲得普遍的應用。各類共識機制的特色:
在 POS 共識機制下,全網節點根據權益大小按照某種規則參與區塊生 產者的選舉,共識過程當中節點系統開放。但選舉過程效率低下,同時由 於選舉過程複雜,伴隨着許多安全問題。
DPOS 共識經過代理人制度,大幅度提高了 POS 共識的選舉效率。但 在共識過程當中,節點系統是封閉的,並且去中心化程度低
BFT 類的共識機制性能較高並具有良好的最終性,但其容錯率低,且由 於節點的擴展性問題,更加適用於相對封閉的節點系統。
相關文章
相關標籤/搜索