權益證明 (PoS)
權益證明 (PoS) 是以太坊共識機制的基礎。以太坊在 2022 年啟用了權益證明機制,因為與先前的工作量證明 (PoW)架構相比,它更安全、更節能,並且更適合實作新的擴容解決方案。
先決條件
為了更易於理解本頁面,我們建議你先閱讀共識機制。
什麼是權益證明 (PoS)?
權益證明是一種證明驗證者已將有價值的東西投入網路的方法,如果他們表現不誠實,這些東西就會被銷毀。在以太坊的權益證明中,驗證者以 ETH 的形式明確地將資金質押到以太坊上的智能合約中。然後,驗證者負責檢查在網路上傳播的新區塊是否有效,並偶爾自行建立和傳播新區塊。如果他們試圖欺騙網路(例如,在應該發送一個區塊時提案多個區塊,或發送衝突的證明),他們質押的部分或全部 ETH 可能會被銷毀。
驗證者
要作為驗證者參與,使用者必須將 32 ETH 存入存款合約,並執行三個獨立的軟體:執行客戶端、共識客戶端和驗證者客戶端。存入 ETH 後,使用者會加入一個啟用佇列,該佇列限制了新驗證者加入網路的速率。一旦啟用,驗證者就會從以太坊網路上的對等節點接收新區塊。區塊中傳遞的交易會被重新執行,以檢查對以太坊狀態的提案變更是否有效,並檢查區塊簽章。然後,驗證者會在網路上發送支持該區塊的投票(稱為證明)。
在工作量證明下,區塊的時間由挖礦難度決定,而在權益證明中,節奏是固定的。以太坊權益證明中的時間分為時槽(12 秒)和紀元(32 個時槽)。在每個時槽中,會隨機選擇一名驗證者作為區塊提案者。該驗證者負責建立一個新區塊並將其發送給網路上的其他節點。同樣在每個時槽中,會隨機選擇一個驗證者委員會,他們的投票用於確定被提案區塊的有效性。將驗證者集合劃分為委員會對於保持網路負載可控非常重要。委員會劃分了驗證者集合,使得每個活躍的驗證者在每個紀元中都會進行證明,但不是在每個時槽中。
交易如何在以太坊權益證明中執行
以下提供了交易如何在以太坊權益證明中執行的端到端解釋。
- 使用者使用其私鑰建立並簽署一筆交易。這通常由錢包或函式庫(如 Ethers.js (opens in a new tab)、web3js (opens in a new tab)、web3py (opens in a new tab) 等)處理,但在底層,使用者是使用以太坊 JSON-RPC API 向節點發出請求。使用者定義他們準備支付的燃料量作為給驗證者的小費,以鼓勵他們將交易包含在區塊中。小費支付給驗證者,而基礎費用則被銷毀。
- 交易被提交給以太坊執行客戶端,該客戶端會驗證其有效性。這意味著確保發送者有足夠的 ETH 來完成交易,並且他們使用了正確的金鑰進行簽章。
- 如果交易有效,執行客戶端會將其新增至其本機記憶體池(待處理交易清單)中,並透過執行層的八卦網路將其廣播給其他節點。當其他節點收到該交易時,它們也會將其新增至自己的本機記憶體池中。進階使用者可能會避免廣播他們的交易,而是將其轉發給專門的區塊建構者,例如 Flashbots 拍賣 (opens in a new tab)。這使他們能夠在即將到來的區塊中組織交易以獲得最大利潤(最大可提取價值 (MEV))。
- 網路上的其中一個驗證者節點是目前時槽的區塊提案者,該節點先前已使用 RANDAO 偽隨機選出。該節點負責建構並廣播要新增至以太坊區塊鏈的下一個區塊,並更新全域狀態。該節點由三個部分組成:執行客戶端、共識客戶端和驗證者客戶端。執行客戶端將本機記憶體池中的交易打包成「執行負載」,並在本機執行它們以產生狀態變更。此資訊會傳遞給共識客戶端,在共識客戶端中,執行負載被包裝為「信標區塊」的一部分,該區塊還包含有關獎勵、懲罰、罰沒、證明等資訊,使網路能夠就鏈頭的區塊順序達成共識。執行客戶端和共識客戶端之間的通訊在連接共識與執行客戶端中有更詳細的描述。
- 其他節點在共識層八卦網路上接收新的信標區塊。它們將其傳遞給自己的執行客戶端,在執行客戶端中,交易會在本機重新執行,以確保提案的狀態變更有效。然後,驗證者客戶端證明該區塊是有效的,並且在他們對鏈的視角中是邏輯上的下一個區塊(這意味著它建立在具有最大證明權重的鏈上,如分叉選擇規則中所定義)。該區塊會被新增至每個對其進行證明的節點的本機資料庫中。
- 如果交易已成為在兩個檢查點之間具有「絕對多數連結」的鏈的一部分,則該交易可被視為「已定案」。檢查點出現在每個紀元的開始,它們的存在是為了解釋這樣一個事實:在每個時槽中只有一部分活躍的驗證者進行證明,但所有活躍的驗證者都會在整個紀元中進行證明。因此,只有在紀元之間才能證明「絕對多數連結」(即網路上 66% 的總質押 ETH 對兩個檢查點達成共識)。
有關最終性的更多詳細資訊,請參閱下文。
最終性
在分散式網路中,當一筆交易成為一個區塊的一部分,且該區塊在沒有大量 ETH 被銷毀的情況下無法更改時,該交易就具有「最終性」。在以太坊權益證明上,這是使用「檢查點」區塊來管理的。每個紀元的第一個區塊就是一個檢查點。驗證者對其認為有效的檢查點對進行投票。如果一對檢查點吸引了代表至少三分之二總質押 ETH 的投票,則這些檢查點將被升級。兩者中較新的那個(目標)變為「已證明」。兩者中較早的那個已經是已證明狀態,因為它是上一個紀元中的「目標」。現在它被升級為「已定案」。這個升級檢查點的過程由 Casper 友善最終性小工具 (Casper-FFG) (opens in a new tab) 處理。Casper-FFG 是一個用於共識的區塊最終性工具。一旦區塊已定案,如果沒有對多數質押者進行罰沒,就無法回滾或更改它,這使其在經濟上不可行。
要回滾一個已定案的區塊,攻擊者將面臨損失至少三分之一總質押 ETH 供應量的風險。確切原因在這篇以太坊基金會部落格文章 (opens in a new tab)中有所解釋。由於最終性需要三分之二的多數,攻擊者可以透過使用三分之一的總質押量進行投票來阻止網路達到最終性。有一種機制可以防禦這種情況:不活躍漏損 (opens in a new tab)。每當鏈超過四個紀元未能定案時,此機制就會啟用。不活躍漏損會逐漸消耗投票反對多數的驗證者所質押的 ETH,從而使多數派重新獲得三分之二的多數並使鏈定案。
加密經濟安全性
執行驗證者是一種承諾。驗證者需要維持足夠的硬體和連線能力,以參與區塊驗證和提案。作為回報,驗證者會獲得 ETH 支付(他們的質押餘額會增加)。另一方面,作為驗證者參與也為使用者為了個人利益或破壞而攻擊網路開闢了新途徑。為了防止這種情況,如果驗證者在被呼叫時未能參與,他們將錯失 ETH 獎勵;如果他們表現不誠實,他們現有的質押可能會被銷毀。有兩種主要行為可被視為不誠實:在單一時槽中提案多個區塊(模稜兩可)以及提交相互矛盾的證明。
被罰沒的 ETH 數量取決於大約在同一時間有多少驗證者也被罰沒。這被稱為「關聯性懲罰」 (opens in a new tab),它可能很輕微(單一驗證者單獨被罰沒約 1% 的質押),也可能導致驗證者 100% 的質押被銷毀(大規模罰沒事件)。它在強制退出期間的中途實施,該期間從第 1 天的立即懲罰(最高 1 ETH)開始,第 18 天實施關聯性懲罰,最後在第 36 天從網路中被驅逐。他們每天都會收到輕微的證明懲罰,因為他們存在於網路上但沒有提交投票。這一切意味著協同攻擊對攻擊者來說將是非常昂貴的。
分叉選擇
當網路以最佳且誠實的狀態運作時,鏈頭永遠只有一個新區塊,並且所有驗證者都會對其進行證明。然而,由於網路延遲或區塊提案者模稜兩可,驗證者可能會對鏈頭有不同的視角。因此,共識客戶端需要一種演算法來決定偏好哪一個。以太坊權益證明中使用的演算法稱為 LMD-GHOST (opens in a new tab),它的運作方式是識別其歷史中具有最大證明權重的分叉。
權益證明與安全性
51% 攻擊 (opens in a new tab)的威脅在權益證明上依然存在,就像在工作量證明上一樣,但對攻擊者來說風險更大。攻擊者將需要 51% 的質押 ETH。然後,他們可以使用自己的證明來確保他們偏好的分叉是累積證明最多的分叉。累積證明的「權重」是共識客戶端用來確定正確鏈的依據,因此該攻擊者將能夠使其分叉成為規範鏈。然而,權益證明相對於工作量證明的一個優勢是,社群在發起反擊方面具有靈活性。例如,誠實的驗證者可以決定繼續在少數鏈上建構並忽略攻擊者的分叉,同時鼓勵應用程式、交易所和礦池也這樣做。他們也可以決定強制將攻擊者從網路中移除並銷毀其質押的 ETH。這些都是針對 51% 攻擊的強大經濟防禦。
除了 51% 攻擊之外,惡意行為者還可能嘗試其他類型的惡意活動,例如:
- 遠端攻擊(儘管最終性小工具抵消了這種攻擊向量)
- 短程「重組」(儘管提案者提升和證明截止日期減輕了這種情況)
- 彈跳和平衡攻擊(同樣被提案者提升所減輕,而且這些攻擊無論如何都只在理想化的網路條件下被證明過)
- 雪崩攻擊(被分叉選擇演算法僅考慮最新訊息的規則所抵消)
總體而言,正如在以太坊上實作的那樣,權益證明已被證明比工作量證明在經濟上更安全。
優缺點
| 優點 | 缺點 |
|---|---|
| 質押使個人更容易參與保護網路,促進去中心化。驗證者節點可以在普通的筆記型電腦上執行。質押池允許使用者在沒有 32 ETH 的情況下進行質押。 | 與工作量證明相比,權益證明較新且未經受過那麼多實戰考驗 |
| 質押更加去中心化。規模經濟不以與工作量證明 (PoW) 挖礦相同的方式適用。 | 權益證明的實作比工作量證明更複雜 |
| 權益證明提供比工作量證明更高的加密經濟安全性 | 使用者需要執行三個軟體才能參與以太坊的權益證明。 |
| 需要較少的新 ETH 發行來激勵網路參與者 |
與工作量證明的比較
以太坊最初使用工作量證明,但在 2022 年 9 月切換到權益證明。與 PoW 相比,PoS 提供了幾個優勢,例如:
- 更好的能源效率 – 不需要將大量能源用於工作量證明計算
- 較低的進入門檻,降低的硬體要求 – 不需要頂級硬體就有機會建立新區塊
- 降低的中心化風險 – 權益證明應該會導致更多節點保護網路
- 由於能源需求低,需要較少的 ETH 發行來激勵參與
- 對不當行為的經濟懲罰使得 51% 類型的攻擊對攻擊者來說比工作量證明成本更高
- 如果 51% 攻擊克服了加密經濟防禦,社群可以訴諸於誠實鏈的社交恢復。
延伸閱讀
- 權益證明常見問題 (opens in a new tab) 維塔利克·布特林
- 什麼是權益證明 (opens in a new tab) ConsenSys
- 什麼是權益證明及其重要性 (opens in a new tab) 維塔利克·布特林
- 為什麼選擇權益證明(2020 年 11 月) (opens in a new tab) 維塔利克·布特林
- 權益證明:我如何學會愛上弱主觀性 (opens in a new tab) 維塔利克·布特林
- 以太坊權益證明的攻擊與防禦 (opens in a new tab)
- 權益證明設計理念 (opens in a new tab) 維塔利克·布特林
- 影片:維塔利克·布特林向 Lex Fridman 解釋權益證明 (opens in a new tab)