[ad_1]
眾所周知,PoS 以太坊的共識協議是「Gasper」,它是在 LMD-GHOST(分叉選擇規則)之上應用 Casper FFG(最終性確定工具)構建的。所以要想搞清楚完整的以太坊共識協議,就必須了解這兩個部分(Casper + Ghost)。此外,這些設計真的很有趣。我打算梳理一下這兩個協議的背景和演進,以及它們簡單的工作流程。
PoS 共識算法的三大流派如下:
1.Nakamoto-inspired(Peercoin)
2.PBFT-inspired(Tendermint、Casper FFG)
3.CBC Casper
Nakamoto-inspired PoS 是一種基於鏈的算法,模擬在 PoW 中挖礦。它通過偽隨機選擇驗證者來創建新區塊。其在 2012 年的「Peercoin」論文中首次提出,peercoin 是基於權益證明共識的第一個加密貨幣。
PBFT-inspired(即 BFT-style)PoS 基於多年對拜占庭容錯(尤其是 pBFT)的研究。在 2014 年的「Tendermint」論文中首次提出。一般來說,這些算法會選擇一個代表賬本規範交易的唯一鏈。
Casper 直接繼承了 BFT 算法(更精確的是 pBFT),做了一些修改。CBC Casper 是由 @VladZamfir 提出的,有一些很好的資料可以更充分地解釋它。
V 神的 CBC Casper 教程
VladZamfir 寫的 CBC Casper 歷史
CBC Casper 介紹影音
雖然以太坊最終選擇了 Casper FFG 而不是 CBC Casper,但對 CBC Casper 的研究也很有價值,比如滿足以太坊需求的分叉選擇規則「LMD-GHOST」。Casper FFG 由 V 神和 Virgil Griffith在 2017 年提出,引入了 justification 和 finalization 的概念,並引入了 slashing conditions 和動態驗證者機制,這些都是非常重要的特性。
Casper FFG 用於保證「最終性」(也就是安全性),這在 PoW 中是不存在的。簡單來說,每個驗證者都會對檢查點進行投票,經過兩輪投票後,檢查點將被「最終確定」(第一輪為驗證,第二輪為最終確定)。
所有最終確定的檢查點都成為規範鏈(區塊鏈歷史的一部分),所有忠誠節點都同意他們永遠不會逆轉這條鏈。「最終檢查點」之後的區塊可以隨意分叉,但之前的區塊不允許分叉。
Casper FFG 除了通過「最終性」來保證區塊鏈安全外,還引入了 slashing 條件來懲罰所有違反規則的驗證者(這在傳統 BFT 算法中是做不到的),所有違反規則的驗證者都將被跟蹤和懲罰。
除此之外,Casper FFG 是無需許可的(傳統的 BFT 算法是需要許可認證的),pBFT 通過一個列表來維護共識,只有列表中的人才能成為參與者。Casper FFG 構建了動態驗證者機制,所有驗證者可以自由進出。Casper FFG 用於保證「最終性」和「安全性」,負責確認區塊的最終狀態,但不負責創建新區塊,所以它需要底層區塊鏈和分叉選擇規則。
以太坊使用的分叉選擇規則是基於 GHOST,該規則最早在2013 年的一篇論文中提出。2017 年,@VladZamfir 在 CBC Casper 工作時,他嘗試將 GHOST 與 Casper 結合,產生了一個變種「LMD-GHOST」。
區塊鏈允許分叉,當出現不同的分支時,應該選擇哪條鏈繼續添加後續新區塊,需要分叉選擇規則。PoW 使用的是最長鏈規則。思路是鍛造最長的鏈需要最多的算力,所以這條鏈是最可信的。所以當所有礦工添加新區塊時,他們會默認在最長的鏈上添加。
GHOST 的思路與此類似,其選擇票數最多的鏈而不是高度最長的鏈,LMD-GHOST 做了一些修改,只考慮最近的投票(即所謂的「Least Message Driven」,LMD)。
LMD-GHOST 的規則很簡單:
– 從創世區塊開始;
– 每次有分叉,選擇票數多的分支;
– 重複,直至找到 block leaf;
– 返回鏈的頭部;
這是 Casper FFG 和 LMD-GHOST 的演變以及它們如何工作,它們共同保證「安全」+「活性」。LMD-GHOST 允許提議者隨時創建新區塊,新區塊將按照分叉選擇規則(即活躍度)添加到權重最大的鏈上。雖然 Casper FFG 將根據所有驗證者的投票(兩輪,超過 2/3,按存款)最終確定一個規範鏈。所有忠誠節點默認接受規範鏈,從而獲得安全。
共識真的很有意思,以太坊對 PoS 的研究始於 2014 年,2022 年完成了合併。這是一條漫長而曲折的道路,過程中誕生了許多奇妙的想法、設計和工程。
原文連結
[ad_2]
Source link