在每一個偉大的數字貨幣背後,都有一個很好的共識算法。沒有一種共識算法是完美的,但它們都有各自的優點。在密碼術的世界裡,存在著防止雙倍支出的共識算法。這裡有一個到目前為止最流行的一些算法的快速概述,從區塊鏈到DAG和所有介於兩者之間的東西。
工作量證明(PoW)
流行的實現方式:比特幣、Ethereum、Litecoin、Dogecoin(大多數比特幣)
優點:我們知道它是有效的
缺點:緩慢的吞吐量;
工作證明是第一個區塊鏈共識算法。由中本聰(Satoshi Nakamoto)設計,用於比特幣區塊鏈。我們要感謝全球範圍內的大規模採礦作業和電力消耗。我們知道它是可行的(對於許多其他的共識算法,我們可以說它是可行的),但在遊戲的這個階段,它開始被視為一種遺留技術。甚至以太坊也在從PoW遷移到更節能、更經濟的PoS。有了這麼多新的替代方案,很難理解為什麼新的區塊鏈會還會使用PoW。
在POW中,礦工們通過解決一些困難的、無用的問題來製造塊。PoW運行在「最長鏈獲勝」的系統上。「因此,假設大多數礦商都在同一條鏈上工作,那麼增長最快的那條鏈將是最長、最值得信賴的。」因此,只要礦商投入的工作中有50%以上是誠實的,比特幣就是安全的。
權益證明(PoS)
一些常用的實現: Decred、Ethereum、Peercoin
優點: 攻擊更昂貴;更多的分散
缺點: 沒有什麼利害關係
在PoS中,塊不是由正在工作的礦工創建的,而是由礦工用他們的代幣「打賭」哪些塊是有效的。在使用分叉的情況下,鑄造者使用代幣投票來支持某個分叉。假設大多數人都在正確的分叉上投票,那麼在錯誤的分叉上投票的驗證器就會在正確的分叉上「失去他們的利益」。
權益證明的常見論點是利益無關問題。令人擔憂的是,由於與PoW不同,驗證器幾乎不需要計算能力來支持一個分叉,所以驗證器可以為發生的每個分叉的兩邊投票。這樣一來,在PoS的分叉可能會比POW的分叉普遍得多,一些人擔心這會損害貨幣的信譽。
委託權益關係證明 (DPoS)
流行的實現: Steemit, EOS, bitshare
優點: 廉價的交易;可伸縮性的;
缺點: 部分集中
DPoS是Daniel Larimer的產物,實際上和PoS有很大的不同。在DPoS中,代幣擁有者並不會投票給塊本身,而是投票給選舉人來代表他們進行驗證。DPoS系統中一般有21-100名當選代表。代表們定期洗牌,並接到命令,要把他們的塊送進去。只有少量的委託允許它們有效地組織自己,並為每個委託創建指定的時間間隔來發布它們的塊。如果委託持續丟失它們的塊或發布無效的事務,賭注就會將它們的投票排除,並使用更好的委託替換它們。
在DPoS中,採礦者可以協作生成塊,而不是像在PoW和PoS中那樣進行競爭。通過部分集中化塊的創建,DPoS能夠比大多數其他共識算法運行速度快幾個數量級。EOS設置為第一個塊乘以《 1秒的區塊鏈!比比特幣的10分鐘阻塞時間快一點。
權威證明(PoA)
流行的實現: POA.Network, Ethereum Kovan testnet
優點: 高吞吐量;可伸縮性的
缺點: 集中系統
PoA是一種共識算法,其中事務由經過批准的帳戶驗證,有點像系統的「管理員」。這些帳戶是其他節點從其接收真相的權威。PoA具有較高的吞吐量,並針對私有網絡進行了優化。由於PoA的集中性,您不太可能看到它在公共區塊鏈上運行。
權重證明(PoWeight)
流行的實現: Algorand、Filecoin、Chia
優點: 可定製;可伸縮性的
缺點: 激勵可能是一個挑戰
PoWeight是一種廣泛分類的協商共識算法。一般的想法是,在PoS系統中,您在網絡中擁有代幣的百分比代表您「發現」下一個塊的概率,在PoWeight系統中,可以使用其他一些相對加權的值。具體示例:Filecoin的PoWeight是根據您存儲的IPFS數據的多少來確定的。其他系統可能包括一些權重,比如聲譽證明。
拜佔庭式容錯(BFT)
流行的實現: Hyperledger, Stellar, Dispatch和 Ripple
優點: 高吞吐量;低成本;可伸縮的
缺點: 半信任
這個經典問題是分布式計算,通常用拜佔庭將軍來解釋。問題是幾個拜佔庭將軍和他們各自所在的拜佔庭軍隊包圍了一座城市。他們必須一致決定是否進攻。如果一些將軍沒有攻擊其他將軍,他們的圍攻將以悲劇告終。將軍們通常隔著一段距離,必須傳遞信息進行溝通。一些加密貨幣協議使用一些版本的BFT來達成共識,每個協議都有各自的優缺點:
實用拜佔庭式容錯(PBFT):最早解決這個問題的方法之一就是發明實用拜佔庭式容錯。優點:高事務吞吐量。缺點:集中。
聯邦拜佔庭協議(FBA): FBA是另一種解決拜佔庭將軍問題的方法,類似於Stellar和Ripple。一般的想法是,每一個拜佔庭將軍,對他們自己的鎖鏈負責,在他們進來建立真理時,對信息進行分類。在Ripple基金會中,將軍(驗證器)是預先選定的。在Stellar系統中,任何人都可以是驗證程序,您可以選擇信任哪個驗證程序。
由於其驚人的吞吐量、低事務成本和網絡可伸縮性,我相信FBA類的協商共識算法是我們發現的用於分布式協商共識的最佳算法。
定向無環圖(DAG)
流行的實現: Iota, Hashgraph, Raiblocks/Nano
優點: 網絡可伸縮性;低成本
缺點: 取決於實現
DAG現在比Vitalik的Tinder更火。DAG是一種共識形式,它不使用區塊鏈數據結構,主要異步處理事務。從理論上講,big pro是每秒無限次的交易,但與其他共識一樣,DAG也有優點和缺點。
Tangle: Tangle是Iota使用的DAG共識算法。為了發送Iota事務,您需要驗證接收到的前兩個事務。隨著越來越多的交易被添加到混亂之中,「一賠二、一付一」的共識增強了交易的有效性。因為共識是由事務建立的,理論上,如果有人能產生1/3的事務他們就能說服網絡的其他部分。除非有足夠的事務量,以至於無法創建三分之一的事務量,否則Iota就是在一個名為「協調器」的集中節點上「重複檢查」所有網絡事務。Iota說,協調員就像系統的輔助輪,一旦纏結足夠大,就會被移除。
Hashgraph: Hashgraph是由Leemon Baird開發的一個八卦協議共識。節點隨機地與其他節點共享它們已知的事務,因此最終所有的事務都被散布到所有節點。Hashgraph非常快(每秒超過250,000個事務),但是不能抵抗Sybil攻擊。所以Hashgraph對於私有網絡來說是一個很好的選擇,但是你不會很快看到它在公共網絡中實現,比如Ethereum或者Dispatch。
Block-lattice: Nano(以前稱為Raiblocks)在區塊鏈上運行時帶有一個稱為Block-lattice的扭轉。Block-lattice是一個結構,在這個結構中,每個用戶(地址)都擁有自己只能寫入的鏈,每個人都擁有所有鏈的副本。每個事務都被分解為發送方鏈上的發送塊和接收方鏈上的接收塊。塊似乎太簡單而不能工作,但它已經在野外運行了。這種獨特的結構確實讓塊向一些獨特的攻擊向量開放,比如Penny-spend攻擊,攻擊者通過向大量的空錢包發送微不足道的數據來增加節點必須跟蹤的鏈的數量。
工作證明事件的序列化: 通過確認交易
Recursive Elections (更廣為人知的名稱是SPECTRE)是一種提議的比特幣可伸縮性解決方案,它利用PoW和DAG的組合來達成可伸縮的共識。在SPECTRE中,塊被挖掘指向多個父節點,而不僅僅是一個父節點,因此網絡可能每秒處理多個塊。挖掘指向某些父塊支持這些塊的有效性。與PoW的「最長鏈的勝利」相比,SPECTRE使用了類似「最多塊勝利」這樣的東西。SPECTRE還沒有經過實戰考驗,新的攻擊載體可能會出現,但它似乎是修複比特幣的一種非常聰明的潛在方式。
打開APP閱讀更多精彩內容聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴