Gasper
Gasper 是 Casper 友善最終性小工具 (Casper-FFG) 與 LMD-GHOST 分叉選擇演算法的結合。這些元件共同構成了保護權益證明 (PoS) 以太坊的共識機制。Casper 是將特定區塊升級為「已定案」的機制,以便進入網路的新參與者可以確信他們正在同步權威鏈。分叉選擇演算法使用累積的投票,以確保當區塊鏈中出現分叉時,節點可以輕鬆選擇正確的分叉。
注意:Casper 友善最終性小工具 (Casper-FFG) 的原始定義為了納入 Gasper 而進行了微調。在此頁面中,我們討論的是更新後的版本。
先決條件
要理解本資料,必須先閱讀關於權益證明 (PoS)的介紹頁面。
Gasper 的角色
Gasper 建立在權益證明區塊鏈之上,節點提供以太幣作為保證金,如果他們在提案或驗證區塊時怠惰或不誠實,這些保證金可能會被銷毀。Gasper 是一種機制,定義了驗證者如何獲得獎勵和懲罰、決定接受和拒絕哪些區塊,以及要在區塊鏈的哪個分叉上進行構建。
什麼是最終性?
最終性是特定區塊的一種屬性,這意味著除非發生嚴重的共識失敗,且攻擊者銷毀了至少 1/3 的總質押以太幣,否則這些區塊無法被還原。已定案的區塊可以被視為區塊鏈確定的資訊。區塊必須經過兩步升級程序才能被定案:
- 必須有佔總質押以太幣三分之二的絕對多數投票支持將該區塊納入權威鏈。此條件將區塊升級為「已證明」。已證明的區塊不太可能被還原,但在某些條件下仍有可能。
- 當另一個區塊在已證明的區塊之上被證明時,它就會升級為「已定案」。將區塊定案是一種將該區塊納入權威鏈的承諾。除非攻擊者銷毀數百萬枚以太幣(價值數十億美元),否則它無法被還原。
這些區塊升級並不會在每個時槽中發生。相反地,只有紀元邊界的區塊才能被證明和定案。這些區塊被稱為「檢查點」。升級會考量成對的檢查點。兩個連續的檢查點之間必須存在「絕對多數連結」(即佔總質押以太幣三分之二的絕對多數投票認為檢查點 B 是檢查點 A 的正確後代),才能將較早的檢查點升級為已定案,並將較新的區塊升級為已證明。
因為最終性需要三分之二的共識同意某個區塊是權威的,所以攻擊者不可能在沒有以下條件的情況下創建另一條已定案的鏈:
- 擁有或操縱佔總質押以太幣三分之二的絕對多數。
- 銷毀至少三分之一的總質押以太幣。
第一個條件的產生是因為定案一條鏈需要三分之二的質押以太幣。第二個條件的產生是因為如果三分之二的總質押都投票支持了兩個分叉,那麼必定有三分之一的質押對兩者都投了票。雙重投票是一種會受到最嚴厲懲罰的罰沒條件,三分之一的總質押將被銷毀。截至 2022 年 5 月,這需要攻擊者銷毀價值約 100 億美元的以太幣。在 Gasper 中證明和定案區塊的演算法是Casper 友善最終性小工具 (Casper-FFG) (opens in a new tab)的微調版本。
激勵與罰沒
驗證者因誠實地提案和驗證區塊而獲得獎勵。以太幣會作為獎勵發放並加入到他們的質押中。另一方面,缺席且在被呼叫時未能採取行動的驗證者會錯失這些獎勵,有時還會失去一小部分現有的質押。然而,離線的懲罰很小,在大多數情況下,相當於錯失獎勵的機會成本。但是,某些驗證者的行為很難是意外造成的,並意味著某種惡意意圖,例如為同一個時槽提案多個區塊、為同一個時槽的多個區塊進行證明,或與先前的檢查點投票相矛盾。這些是「可罰沒」的行為,會受到更嚴厲的懲罰——罰沒會導致驗證者的部分質押被銷毀,並且該驗證者會從驗證者網路中被移除。這個過程需要 36 天。在第 1 天,會有最高 1 ETH 的初始懲罰。然後,被罰沒的驗證者的以太幣會在退出期間慢慢流失,但在第 18 天,他們會收到「關聯性懲罰」,當同一時間有更多驗證者被罰沒時,這個懲罰會更大。最高懲罰是全部的質押。這些獎勵和懲罰旨在激勵誠實的驗證者,並遏制對網路的攻擊。
不活躍漏損
除了安全性之外,Gasper 還提供了「合理的活躍度」。這個條件是指,只要佔總質押以太幣三分之二的絕對多數誠實地投票並遵循協定,無論發生任何其他活動(例如攻擊、延遲問題或罰沒),該鏈都能夠定案。換句話說,必須有三分之一的總質押以太幣以某種方式受到損害,才能阻止該鏈定案。在 Gasper 中,還有一道防止活躍度失敗的額外防線,稱為「不活躍漏損」。當鏈超過四個紀元未能定案時,此機制就會啟動。未積極對多數鏈進行證明的驗證者,其質押會逐漸流失,直到多數鏈重新獲得三分之二的總質押,從而確保活躍度失敗只是暫時的。
分叉選擇
Casper-FFG 的原始定義包含了一個分叉選擇演算法,該演算法強制執行以下規則:follow the chain containing the justified checkpoint that has the greatest height,其中高度被定義為與創世區塊的最大距離。在 Gasper 中,原始的分叉選擇規則已被棄用,取而代之的是一種名為 LMD-GHOST 的更複雜演算法。必須了解的是,在正常情況下,分叉選擇規則是不必要的——每個時槽只有一個區塊提案者,而誠實的驗證者會對其進行證明。只有在網路嚴重非同步,或者不誠實的區塊提案者發布矛盾訊息時,才需要分叉選擇演算法。然而,當這些情況確實發生時,分叉選擇演算法就是保護正確鏈的關鍵防線。
LMD-GHOST 代表「由最新訊息驅動的貪婪最重觀察子樹 (latest message-driven greedy heaviest observed sub-tree)」。這是一種充滿術語的定義方式,該演算法選擇累積證明權重最大的分叉作為權威分叉(貪婪最重子樹),並且如果從同一個驗證者收到多條訊息,則只考慮最新的一條(最新訊息驅動)。在將最重的區塊添加到其權威鏈之前,每個驗證者都會使用此規則評估每個區塊。