原標題:Solana的PoH火爆,是時候回顧一下共識機制歷史了!
在每一個偉大的加密貨幣背後,都有一個偉大的共識算法。沒有一個共識算法是完美的,但它們都有各自的優勢。在加密領域,存在共識算法以防止雙重支出。以下是一些迄今為止最流行的共識算法的快速概述,從區塊鏈到DAG和介於兩者之間的一切。
工作證明(PoW)
優點:我們知道它是有效的
缺點:緩慢的吞吐量
Proof of Work是第一個區塊鏈共識算法。由中本聰(Satoshi Nakamoto)設計用於比特幣區塊鏈,我們要感謝PoW,它為我們在世界各地看到的大規模採礦操作和電力消耗做出了貢獻。我們知道它是可行的(對於許多其他共識算法,我們可以說的更多),但在這個領域的現階段,它開始被認為是一項傳統技術。有這麼多新的替代方案,很難理解為什麼新的區塊鏈會使用PoW。
在PoW中,礦工通過解決困難且無用的問題來創造區塊。 PoW 運行在“最長鏈獲勝”的系統上。所以假設大多數礦工都在同一條鏈上工作,那麼增長最快的就是最長和最值得信賴的。因此,只要礦工的工作中有超過50%是誠實的,比特幣就是安全的。
權益證明(PoS)
優點:攻擊更昂貴;更多的去中心化;能源效率
缺點:質押無禁忌
在PoS中,區塊不是由礦工創建的,而是由礦工用他們的代幣“打賭”哪些區塊是有效的。在分叉的情況下,鑄幣者花費他們的代幣來投票支持哪個分叉。假設大多數人在正確的分叉上投票,在錯誤的分叉上投票的驗證者將在正確的分叉上“失去他們的質押”。
反對利害關係證明的常見論點是“質押無禁忌”問題。問題是,由於驗證者幾乎不需要計算能力就能支持PoW的分叉,所以驗證者可以為發生的每個分叉的兩邊投票。 PoS的分叉可能會比PoW更加普遍,一些人擔心這會損害這種貨幣的信譽。
委託權益證明(DPoS) -選擇自己的驗證者
優點:交易便宜;可擴展;高效節能
缺點:部分中心化
DPoS是Daniel Larimer的智慧結晶,實際上與PoS有很大的不同。在DPoS中,代幣持有者並不對區塊本身的有效性進行投票,而是投票選舉代表來代表他們進行驗證。在DPoS系統中,一般有21-100名當選代表。代表們定期進行洗牌,並得到交付他們的區塊的命令。少數的代表可以讓他們有效地組織自己,並為每個代表創建指定的時間段來發布他們的區塊。如果代表持續錯過他們的區塊或發布無效的交易,質押者將投票淘汰他們,並用更好的代表替換他們。
在DPoS中,礦工可以協作來製作區塊,而不是像PoW和PoS中那樣相互競爭。通過部分中心化創建區塊,DPoS能夠比大多數其他共識算法運行速度快幾個數量級。
權威證明(PoA)
優點:高吞吐量;可擴展的
缺點:中心化系統
權威證明(Proof-of-Authority)是一種共識算法,交易由認可的賬戶驗證,有點像系統的“管理員”。這些賬戶是其他節點獲取真相的權威。 PoA具有較高的吞吐量,並針對專用網絡進行了優化。由於PoA的中心化特性,不太可能看到PoA在公共鏈上運行。
權重證明(PoWeight)
優點:可定制;可擴展的
缺點:激勵機制是一種挑戰
權重證明是一種基於Algorand共識模型的廣泛的共識算法分類。一般的想法是,在PoS中,用戶在網絡中擁有的代幣百分比代表用戶“發現”下一個區塊的概率,在PoWeight系統中,使用其他一些相對加權的值。具體的例子:Filecoin的Proof-of-Spacetime取決於用戶存儲了多少IPFS數據。其他系統可能包括一些權重,比如信譽證明。
拜占庭容錯(BFT)
優點:高吞吐量;低成本;可擴展的
缺點:一半的信任
有一個經典的問題是分佈式計算通常用拜占庭將軍來解釋。問題是幾個拜占庭將軍和他們各自的軍隊包圍了一座城市。他們必須一致決定是否進攻。如果一些將軍單獨進攻,他們的圍攻將以悲劇告終。將軍們通常隔著一段距離,必須通過傳遞信息來溝通。一些加密貨幣協議使用BFT的某些版本來達成共識,每個版本都有自己的優缺點:
實用拜占庭容錯(PBFT):這個問題的第一個解決方案被稱為實用拜占庭容錯。在Hyperledger Fabric使用,很少(< 20 )預選的將軍PBFT 運行得非常高效。優點:高交易吞吐量,缺點:中心化
聯邦拜占庭協議(FBA):FBA是另一類解決拜占庭將軍問題的方法,如Stellar和Ripple。總的想法是,每一個拜占庭將軍,負責他們自己的鏈,因為他們一進來就建立真相排序消息。在Ripple中,將軍(驗證者)是由Ripple基金會預先選擇的。在Stellar中,任何人都可以成為驗證者,因此您可以選擇信任哪個驗證者。
有向無環圖(DAG)
優點:網絡可擴展性;低成本
缺點:取決於實現
DAG是一種共識形式,它不使用區塊鏈數據結構,主要是異步處理交易。理論上,DAG最大的優勢是每秒無限的交易,但與其他共識一樣,DAG也有優缺點。
Tangle:Tangle是Iota使用的DAG共識算法。為了發送Iota交易,用戶需要驗證之前收到的兩個交易。當更多的交易被添加到Tangle中時,共識就加強了交易的有效性。因為共識是通過交易建立的,理論上,如果有人能生成1/3的交易,他就能說服網絡上的其他成員,他的無效交易是有效的。直到有足夠的交易量,創建1/3的交易量變得不可行的時候,Iota會在一個名為“協調器”的中心化節點上“重複檢查”所有的網絡交易。 Iota說,協調員就像系統的訓練輪,一旦Tangle足夠大,就會被移除。
Hashgraph:Hashgraph是Leemon Baird開發的八卦協議共識。節點隨機地與其他節點共享其已知的交易,因此最終所有交易都被傳播到所有節點。 Hashgraph非常快(每秒250,000+交易),但不能抵抗女巫攻擊。因此,Hashgraph對於私有網絡是一個很好的選擇,但你不會很快看到它在以太坊或Dispatch等公共網絡中實現。
Block-lattice:Nano(以前稱為Raiblocks)在區塊鏈上運行,稱為Block-lattice。 Block-lattice是一種結構,在這種結構中,每個用戶(地址)都有自己的鏈,只有他們可以寫入鏈,並且每個人都持有所有鏈的副本。每一筆交易都被分解為發送方鏈上的一個發送區塊和接收方鏈上的一個接收區塊。 Block-lattice似乎太簡單了,但它已經在野外運行了。這種獨特的結構確實讓Block-lattice對一些獨特的攻擊向量開放,比如Penny-spend攻擊,其中攻擊者通過向大量空錢包發送微不足道的數量來誇大節點必須跟踪的鏈數。
SPECTRE:工作證明事件的序列化:通過遞歸選舉確認交易,更廣為人知的名字是SPECTRE,是一個提議的比特幣擴展解決方案,利用PoW和DAG的組合來達成可擴展共識。在SPECTRE中,區塊被指向多個父節點,而不僅僅是一個,因此網絡可能每秒處理多個區塊。挖掘指向一些父塊的區塊支持這些區塊的有效性。與PoW的“最長鏈贏”相比,SPECTRE使用的是“帶有最多子元素的區塊贏”。
容量證明( Proof of Capacity)
在容量證明法中,複雜的數學難題的答案存儲在硬盤等數字存儲器中。整個過程叫做繪圖。當存儲設備被填滿數學難題的解決方案後,用戶可以使用存儲設備來生成區塊。最快找到解決方案的用戶有機會創建一個新區塊。因此,擁有最高存儲容量的用戶將有更高的機會生成新區塊。
經過時間的證明(Proof of Elapsed Time)
經過時間證明過程隨機公平地根據他們等待的時間來決定新塊的生產者。為此,該機制為每個用戶提供一個隨機的等待時間,等待時間最早結束的用戶將生成一個新區塊。只有當系統能夠驗證沒有用戶可以運行多個節點並且等待時間是真正隨機的時候,這種共識機制才會起作用。
身份證明(Proof of Identity)
身份證明將用戶的私鑰與授權的身份進行比較。基本上,身份證明是用戶私鑰的一段加密證據,該私鑰以加密方式附加到特定的交易中。區塊鍊網絡中的任何被識別的用戶都可以創建一個數據塊,該數據塊可以呈現給網絡中的任何人。身份證明確保創建的數據的完整性和真實性。此外,智慧城市可以使用區塊鏈共識機制,如身份證明,以驗證其公民的身份。
活動證明( Proof of Activity)
活動證明機制是工作證明和權益證明的結合。在活動證明中,礦工試圖找到謎題的解決方案並獲得獎勵。然而,在活動證明機制中創建的區塊是簡單的模板,它挖掘了獎勵地址和報頭信息。然後使用標頭信息隨機選擇一組驗證者對區塊進行簽名。擁有較大權益的驗證者被選中籤署新區塊的可能性更大。一旦選定的驗證者簽署了一個新的區塊,它就成為網絡的一部分。如果某些驗證者未簽名該區塊,它將被丟棄,並使用一個新區塊。在此過程中產生的網絡費用在獲勝的礦工和驗證者之間分配。
來源:
https://medium.com/hackernoon/a-hitchhikers-guide-to-consensus-algorithms-d81aae3eb0e3
https://www.allerin.com/blog/8-blockchain-consensus-mechanisms-you-should-know-about