ETH2.0 將切換到 PoS 共識,什麼是 PoS?如何在 ETH2.0 中參與 Staking?

原文標題:《科普 | Eth 2.0 的 Staking 邏輯》(Proof of Stake)
翻譯:Unitimes_David

綜述

權益證明 (PoS) 代表一類共識算法,其中驗證者 (validators) 會對下一個區塊進行投票,而投票的權重取決於投票者的權益大小。由於更低的能耗,更少的中心化風險,抵禦不同類型的 51% 攻擊的安全性等等,權益證明被認爲是對工作量證明(PoW)的改進。

PoS 算法可以被分類成兩大類:

  • 基於鏈的 PoS:依賴於網絡的同步性;
  • 基於 BFT (拜占庭容錯) 的 PoS:優先考慮節點的一致性而不是可用性。

在以太坊 2.0 中,爲了參與投票(即成爲一名驗證者),你需要質押 ETH。爲此,你將會獲得部基於某個利率 (收益率) 的額外 ETH 獎勵以及部分網絡交易費。

一文讀懂 ETH2.0 的 Staking 機制來源 :EthHub

權益證明 (PoS) 是什麼?

權益證明 (PoS) 是一類依賴於驗證者網絡中的經濟權益的公鏈共識算法。在基於工作量證明 (PoW) 的公鏈(例如比特幣和當前的以太坊)中,PoW 算法會獎勵解決密碼學難題的參與者以驗證交易與創建新區塊 (即挖礦)。在基於 PoS 的公鏈(例如以太坊即將推出的 Casper 實現)中,一組驗證者輪流對下一個區塊進行提議和投票,而且每個驗證者投票權重取決於其押金 (即權益) 大小。PoS 的顯著優勢包括安全性,減少的中心化風險以及節能。

總的來說,PoS 算法看起來是這樣的:區塊鏈會追蹤一組驗證者,而且持有區塊鏈基礎加密貨幣 (在以太坊的情況下是 ETH) 的任何人都可以通過發送一筆特殊類型的交易來成爲驗證者,該交易會把他們的 ETH 鎖定爲押金。然後,創建新區塊和對區塊達成共識的過程是通過一個共識算法來完成,所有當前的驗證者都能夠且應該參與其中。

共識算法有很多類型,而且給參與共識算法的驗證者分配獎勵的方式也有很多種,所以存在着多種「風格」的 PoS。從算法的角度來看,主要有兩類:基於鏈的和 BFT (拜占庭容錯) 的 PoS。

在基於鏈的 PoS 中,算法會在每個 slot (例如,每 10 秒的週期可能是一個 slot) 期間僞隨機地選擇一個驗證者,分配該驗證者創建單個區塊的權利,且該區塊必須指向某個前面的區塊 (通常是前面最長鏈末端的那個區塊)。因此,隨着時間推移,大部分區塊組成單條持續增長的鏈。

在基於 BFT (拜占庭容錯) 的 PoS 中,驗證者被隨機地分配提議區塊的權利,但是會通過一個多輪的過程來就哪個區塊是權威規範的區塊達成共識,在該過程中,每個驗證者會對每一輪的某個特定區塊進行「投票」,在此過程結束時,所有 (誠實和在線的) 驗證者將對任何給定的區塊是否成爲區塊鏈的一部分達成永久性共識。請注意,區塊或許依然會被鏈接在一起,但其中的關鍵區別就是,基於 BFT 的 PoS 中,區塊的共識在一個區塊內達成,而不需要依賴它身後鏈的長度或大小。

與 PoW 相比,PoS 的優勢是什麼?

  • 不需要消耗大量的能量來確保區塊鏈的安全。(據瞭解,比特幣和以太坊每天消耗超過 100 萬美元的電力和硬件成本作爲它們共識機制的一部分)
  • 由於缺乏對高耗能的要求,PoS 沒有必要爲了激勵參與者繼續持續參與網絡而增發那麼多新幣。理論上,PoS 甚至可能出現淨髮行呈負數的情況,這種情況下,交易費的一定比例被「銷燬」,從而久而久之減少供應量。
  • PoS 爲使用博弈論機制設計的更廣泛的技術打開了大門,以便有效地阻止中心化壟斷的形成,且如果這些技術成型,也能夠阻止對網絡造成損害的行爲 (比如 PoW 中的自私挖礦)。
  • 減少中心化風險,這是因爲幾乎不存在規模經濟的問題。在 PoW 機制中,價值 1000 萬美元的投入將爲你帶來 10 倍於價值 100 萬美元投入的回報,而不會帶來任何額外的不成比例的收益,因爲在更高的水平上,你可以負擔得起更好的大規模挖礦設備,這是 PoW 中的一種「優勢」。
  • 能夠使用經濟懲罰去讓各種類型的 51% 攻擊的成本比在 PoW 中實施要昂貴得多。套用 Vlad Zamfir 的話說,「如果你參與了一次 51% 攻擊,你的 ASIC 礦場就如同被被摧毀了一樣」。

對 Casper 權益證明的 51% 攻擊會是怎樣的?

51% 攻擊有四種基本的類型:

  • 最終性回滾 (finality reversion):已經敲定了區塊 A 的驗證者後續敲定相互矛盾的區塊 A,從而打破了區塊鏈的最終性保證。
  • 敲定無效區塊:驗證者敲定了無效 (或不可用) 的區塊。
  • 活性拒絕攻擊:驗證者停止敲定區塊。
  • 審查:驗證者阻止部分或所有的交易 / 區塊被包含進區塊鏈。

在第一種情況中,用戶可以社交的方式帶外協商,就哪個敲定的區塊最先出現達成共識,並支持該區塊。第二種情況可以利用欺詐證明和數據可用性證明來解決。第三種情況可以被對 PoS 算法的修改解決,即如果節點沒有參與共識,那麼該算法會逐漸削減(「泄漏」)非參與節點在驗證者集合中的權重。Casper FFG 的論文包含了對這種情況的描述。

第四種情況是最難解決。第四種情況可以通過一種「少數派軟分叉」的方式修復,其中少數誠實的驗證者就大多數驗證者在審查他們達成了共識,並停止繼續在當前的鏈上創建區塊;相反,這些誠實的少數驗證者將會繼續搭建自己的鏈,並最終通過上述的「泄露」機制來確保這些誠實的少數驗證者將會成爲新鏈中的 2/3 絕對多數驗證者。那時,市場將會傾向於支持由這些誠實驗證者控制的新鏈,而不是由不誠實節點控制的舊鏈。

ETH2.0 中的 Staking 邏輯

01. 爲什麼我會想質押我的 ETH?

因爲質押 (stake) 了你的 ETH 及爲正確的區塊作證,你將通過網絡利率 (即驗證者的收益率) 和部分網絡交易費的形式來獲取 ETH 獎勵。詳情見這裏。下圖是當前被提議的 ETH 最大年增發率和驗證者的最大年收益率:

一文讀懂 ETH2.0 的 Staking 機制圖源:EthHub

需要注意的是,根據 Vitalik Buterin 的說法,上圖這些是最大的數字,有許多因素可能會減少 ETH 的總髮行量。這些因素包括:

  • 驗證者離線。將個人懲罰和集體懲罰結合起來說,每 1% 的驗證者離線將減少約 3% 的總髮行量,如果超過 33% 的驗證者同時下線,許多 ETH 很快就會 (因懲罰) 被銷燬。
  • 驗證者被罰沒 (slashing)。這種情況在實際中可能很少發生。
  • ETH 交易費由於 EIP 1559 而被銷燬。根據此提案,預計前期當 ETH2.0 網絡的使用率較低時,將有大約 10,000 ETH/ 年 的交易費被銷燬;最終有可能會上升至每年銷燬數十萬 ETH 交易費。
  • 交易費用於支付狀態租金而被銷燬。這種機制可能會整合進 ETH2.0 的 gas 機制中,因此基於 EIP 1559 被銷燬。

根據 Justin Drake 的說法,基於上述因素,可能帶來的結果是,如果 ETH2.0 中質押了約 30,000,000 ETH,那麼網絡的年通脹率 (增發率) 將約只有 0.5%,相應的驗證者年收益率將約是 5%。

相關閱讀:

02. Staking 的最低要求是什麼?

  • 每個驗證者至少質押 32 ETH
  • 具有足夠硬件規格的計算機
  • 連接互聯網

03. 我需要運行什麼軟件來參與 Staking?

當考慮在以太坊上質押時,需要了解兩種主要的軟件類型:

  • 信標節點:這是驗證者的樞紐
    • 存儲規範狀態,處理點對點和傳入的同步請求,廣播區塊和進行區塊證明。
    • 擁有一個客戶端可以連接的 gRPC 服務器並提供一個公共 API。
  • 驗證者客戶端:與信標節點通信並對區塊簽名。你可以在每個客戶端質押 32 ETH。
    • 存儲重要的祕密信息,如 RANDAO 揭示,共享數據的託管證明以及 BLS 私鑰。
    • 可以有效地切換底層信標節點
    • 追蹤驗證者已經簽名的共享狀態執行數據和數據塊。

這意味着可能有三種需要運行的軟件組合:

  1. 僅運行信標節點
  2. 運行信標節點 + 驗證者客戶端
  3. 運行信標節點 + 多個驗證者客戶端

04. 運行軟件的硬件要求是什麼?

仍待定。理想情況下,我們只需達到上述三種設置的最低要求。(備註:根據此前以太坊 2.0 研究者 Justin Drake 的說法,預計驗證者客戶端將可以「毫不費力地」在 Raspberry Pi (樹莓派) 硬件 (4GB RAM) 上運行。)

05. 如果我在參與 Staking 時連不上網,會發生什麼?

成爲一名驗證者的關鍵在於保證你始終可以給區塊投票 (也即證明區塊),從而保證了網絡的安全。因此,如果你的驗證者客戶端在任何時候離線了,爲了激勵驗證者的可用性,這裏會有相應的懲罰,懲罰大小視情況而定。這會發生在在兩個場景中:

  1. 如果區塊正在敲定並且你處於離線狀態,那麼你會在一年內損失 x% 的質押金,其中 x% 爲當前的驗證者年利率。例如,如果當前驗證者年利率爲 5%,那麼你每天將損失 0.0137% 的押金 (備註:5%/365 = 0.0137%),但你在線時每天將獲得這些獎勵。
  2. 如果區塊無法被敲定(即超過 33% 的驗證者離線)且你也處於離線狀態,那麼你會在 18 天內損失 60% 的押金。

如果你的押金在任何時候下降到 16ETH 一下,那麼你將會被完全從驗證者集合中刪除。

06. 如果我參與 Staking,我的 ETH 會被鎖定多長時間?

當想從驗證者取回 ETH,那麼你會被放入一個取款隊列。如果沒有隊列,那麼最短的贖回時間爲 18 小時,時間會根據當時正在取款的人數動態調整。

相關閱讀:《科普 | ETH2.0 中的驗證者密鑰和取款密鑰是什麼?》

資料
Proof of Stake FAQ
CBC Casper Resources
Beacon and Validator explanations
Some details around staking from Vitalik

來源鏈接:docs.ethhub.io