權益證明 (PoS)
最後編輯: @cc03668(opens in a new tab), 2024年9月3日
權益證明 (PoS) 是支撐以太坊共識機制的基礎。 以太坊於 2022 年啟用了權益證明機制,這一轉變主要因為相較於之前的工作量證明架構,權益證明機制在安全性上更為可靠,且能源消耗更低,為實現新的擴容解決方案提供了更優越的基礎。
先決條件
為了更好地理解此頁面,我們建議你先閱讀共識機制的相關資料。
什麼是權益證明 (PoS)?
權益證明是一種證明驗證者已經將有價值物品質押到網路上的方法。如果驗證者有失信行為,這些物品可能會被銷毀。 在以太坊的權益證明機制下,驗證者明確地透過以太幣將資產質押到以太坊上的智慧型合約中。 之後,驗證者負責檢查在網路上傳播的新區塊是否有效,偶爾自己也建立和傳播新區塊。 當他們試圖欺騙網路時(例如,在應該傳送一個區塊時提議多個區塊,或傳送衝突的證明),他們質押的部分或全部以太幣可能會被銷毀。
驗證者
要作為驗證者參與,使用者必須向存款合約存入 32 個以太幣並執行三種獨立的軟體:執行用戶端、共識用戶端和驗證者用戶端。 存入以太幣時,使用者會加入一個激活隊列,限制新驗證者加入網路的速度。 激活後,驗證者會從以太坊網路上的對等節點接收新區塊。 區塊中的交易會被重新執行,以檢查提議的以太坊狀態變更是否有效,並檢查區塊的簽章。 然後驗證者在整個網路上傳送支持該區塊的投票(稱為證明)。
在工作量證明中,產生區塊的時間是由挖礦難度決定的,而在權益證明中,節奏是固定的。 權益證明以太坊中的時間分為時隙(12 秒)和時期(32 個時隙)。 在每個時隙會隨機選擇一位驗證者作為區塊提議者。 該驗證者負責建立新區塊並傳送給網路上的其他節點。 另外在每個時隙中,都會隨機選擇一個驗證者委員會,透過他們的投票來確定所提議區塊的有效性。 將驗證者集合劃分為若干個委員會對於保持網路負載易於管理非常重要。 委員會將驗證者集合分成不同部分,以便每個活躍的驗證者在每個時期都會出示證明,但並非每個時隙都這樣做。
如何在以太坊權益證明中執行交易
以下提供了關於如何在以太坊權益證明中執行交易的全面解釋。
- 使用者使用他們的私鑰建立並簽署交易。 這通常由錢包或程式庫處理,例如 ether.js(opens in a new tab)、web3js(opens in a new tab)、web3py(opens in a new tab) 等,但本質上是使用者在使用以太坊 JSON-RPC 應用程式介面向節點發出請求。 使用者定義他們準備支付的一定數量的燃料,作為給驗證者的小費,以鼓勵他們將交易納入到區塊中。 小費支付給驗證者,而基本費用則會被銷毀。
- 交易提交給以太坊執行層用戶端以驗證其有效性。 這意味著確保發送者有足夠的以太幣來完成交易,並且他們已經使用正確的金鑰來簽署交易。
- 如果交易有效,執行層用戶端將其新增至其本機記憶體池(待處理交易清單),並透過執行層廣播網路將其廣播到其他節點。 當其他節點聽到關於交易的消息時,它們也會將其添加到本地記憶體池中。 進階使用者可能會避免廣播他們的交易,而是將其轉發給專門的區塊建置者,例如 Flashbots Auction(opens in a new tab)。 這使他們能夠在即將到來的區塊中組織交易以獲得最大利潤(最大可提取價值)。
- 網路上的驗證者節點之一是當前時隙的區塊提議者,該提議者是之前使用 RANDAO 以偽隨機方式選取的。 該節點負責建立和廣播下一個要新增至以太坊區塊鏈的區塊並更新全域狀態。 此節點由三個部分組成:執行用戶端、共識用戶端和驗證者用戶端。 執行層用戶端將來自本機記憶體池的交易捆綁到「執行有效負載」中,並在本機執行它們以產生狀態變更。 此資訊被傳遞到共識用戶端,在該用戶端,執行有效載荷被包裝為「信標區塊」的一部分。該信標區塊還包含有關獎勵、懲罰、罰沒、證明等的資訊,從而使網路能夠就鏈頭的區塊順序達成一致。 連線共識用戶端和執行用戶端中更詳細地描述了執行用戶端和共識用戶端之間的通訊。
- 其他節點在共識層廣播網路上接收新的信標區塊, 並將其傳遞給它們的執行用戶端。在執行用戶端上,交易在本機重新執行以確保提議的狀態變更有效。 然後,驗證者用戶端證明該區塊是有效的,並且根據他們的看法,這在邏輯上是鏈上的下一個區塊(這意味著它建置在如分叉選擇規則所定義的具有最大證明權重的鏈上)。 該區塊被新增到證明它的每個節點的本機資料庫中。
- 如果交易已經成為兩個檢查點之間具有「絕對多數連結」的鏈的一部分,那麼可以認為該交易已經「最終確定」。 檢查點發生在每個時期的開始,它們的存在是為了兼顧以下事實:每個時隙只有活躍驗證者的子集會提供證明,但所有活躍驗證者在每個完整時期內都會提供證明。 因此,只有在時期之間才能證明「絕對多數連結」(即網路上總質押以太幣的 66% 同意兩個檢查點的情況)。
關於最終確定性的更多詳細資訊,請參見下文。
最終性
交易在分佈式網路中具有「最終確定性」是指,該交易是區塊的一部分,而且除非銷毀大量以太幣,否則便無法變更。 在權益證明以太坊上,最終確定性是透過「檢查點」區塊來管理的。 每個時期中的第一個區塊便是檢查點。 驗證者為其認為有效的「檢查點對」投票。 如果一對檢查點獲得了質押以太幣總數中三分之二以上的投票,那麼這對檢查點將被升級。 這兩個(目標)中較新的一個會變成「合理化」狀態。 較舊的一個檢查點已經是合理化狀態,因為它是上一個時期中的「目標」。 現在,這個檢查點已升級為「最終確定」狀態。
要撤銷最終確定的區塊,攻擊者將承擔至少相當於質押以太幣總數三分之一的損失。 這篇以太坊基金會部落格文章(opens in a new tab)解釋了其確切原因。 由於最終確定性需要獲得三分之二的多數投票,攻擊者可以用質押以太幣總數的三分之一投票來阻止網路實現最終確定性。 有一種可以防禦此種攻擊行為的機制:怠惰逐減懲罰(opens in a new tab)。 如果鏈未能在四個時期內最終確定,此機制就會啟動。 怠惰逐減懲罰會逐漸消耗驗證者投票反對大多數驗證者的質押以太幣,使大多數驗證者重新獲得三分之二多數投票,以最終確定鏈。
加密經濟安全性
運行驗證者是一個承諾。 驗證者應要維持足夠的硬體和連線,以參與區塊驗證和提議。 作為回報,驗證者會獲得以太幣(他們的質押餘額增加)。 另一方面,作為驗證者參與也會開啟新渠道,讓使用者為了個人利益或為破壞而攻擊網路。 為了預防此種情況,如果驗證者在被調用時並未能參與,將會錯過以太幣獎勵,且他們如果有不誠實行為,目前的質押可能會被銷毀。 兩種主要的行為會被視為不誠實:在一個時隙中提議多個區塊(模稜兩可),以及提交相互矛盾的證明。
罰沒的以太幣數量視大致同一時間受到罰沒的驗證者數量而定。 這稱為「相關性懲罰」(opens in a new tab)。相關性懲罰可以很輕微(單個驗證者被罰沒約 1% 的質押),或是造成驗證者 100% 的質押被銷毀(大額罰沒事件)。 這種懲處在強制退出期執行,首先是第一天的立即懲罰(最高 1 枚以太幣),接下來是第 18 天的相關性懲罰,最後是第 36 天的逐出網路。 如果驗證者在網路上但未提交投票,驗證者每天會受到輕微的證明懲罰。 以上均表明,協同攻擊對攻擊者來說代價將極其高昂。
分叉選擇
當網路以最佳狀態誠信運行時,鏈頭始終只會有一個新區塊並且所有驗證者都會證明它。 然而,由於網路延遲或因為區塊提議者提出多個區塊(模棱兩可),驗證者可能會看到不同的鏈頭視圖。 因此,共識用戶端需要一種演算法來確定支援哪一個區塊。 在權益證明以太坊中所用的演算法稱為 LMD-GHOST(opens in a new tab),其工作原理是識別在其歷史記錄中具有最大證明權重的分叉。
權益證明及安全性
51% 攻擊(opens in a new tab)的威脅如在工作量證明中一樣仍存在於權益證明,但對攻擊者來說風險更大。 攻擊者將需要 51% 的質押以太幣。 然後他們可以使用自己的證明,確保其首選的分叉為最多累積證明的分叉。 共識用戶端使用累積證明的「權重」來決定正確的鏈,使攻擊者能夠因此讓他們的分叉成為規範分叉。 然而,相較於工作量證明,權益證明的優勢在於社群可以靈活地發動反擊。 例如,誠實的驗證者可以決定繼續在非多數鏈上建置,忽略攻擊者的分叉,同時鼓勵應用程式、交易所和池也這樣做。 他們也可以決定強行將攻擊者從網路中移除,並銷毀其質押以太幣。 這些都是針對 51% 攻擊強而有力的經濟防禦。
除了 51% 攻擊,不良行為者也可能嘗試其他惡意活動,例如:
- 遠程攻擊(但是最終確定性小工具能抵銷此種攻擊媒介)
- 短距「區塊重組」(但是提議者增強和證明截止可以緩解此情況)
- 反彈和平衡攻擊(也能透過提議者增強來緩解,且這些攻擊也只有在理想化的網路情況下展示過)
- 雪崩攻擊(透過分叉選擇演算法只考慮最新訊息的規則加以抵銷)
整體來說,以太坊上實行的權益證明在經濟方面展現為比工作量證明更安全。
優勢及劣勢
優勢 | 劣勢 |
---|---|
質押使個人更容易參與保障網路安全,促進去中心化。 驗證者節點可以在普通筆電上運行。 質押池讓使用者在沒有 32 個以太幣的情況下也能進行質押。 | 權益證明比起工作量證明更為初期且經歷過的實戰測試較少 |
質押更加去中心化。 規模經濟不像在工作量證明挖礦中那樣適用於權益證明。 | 實行權益證明比起工作量證明更為複雜 |
權益證明比起工作量證明提供了更多加密經濟安全性 | 使用者需要執行三個軟體才能參與以太坊質押 |
僅需發行更少的以太幣就能激勵網路參與者 |
與工作量證明的比較
以太坊最初使用工作量證明,但在 2022 年 9 月轉為權益證明。 權益證明比工作量證明具有多項優勢,例如:
- 能源效率更高 – 無需在工作量證明計算上使用大量能源
- 參與門檻更低,更低的硬體要求 – 不需要頂尖硬體以獲得建立新區塊的機會
- 更低的中心化風險 – 權益證明應可以增加保護網路安全的節點
- 因為能源要求低,發行較少的以太幣就可以激勵參與
- 與工作量證明相比,不當行為的經濟懲罰使發動 51% 攻擊的攻擊者須付出更高的代價
- 如果 51% 攻擊攻破加密經濟防禦,社群可以採取誠實鏈的社交恢復。
了解更多
- 權益證明常見問題(opens in a new tab) - Vitalik Buterin
- 什麼是權益證明?(opens in a new tab)- ConsenSys
- 權益證明是什麼,又有何重要性?(opens in a new tab)- Vitalik Buterin
- 為什麼採用權益證明(2020 年 11 月)(opens in a new tab)- Vitalik Buterin
- 權益證明:我如何學著愛上弱主觀性(opens in a new tab) - Vitalik Buterin
- 權益證明以太坊攻擊與防禦(opens in a new tab)
- 權益證明的設計哲學(opens in a new tab) - Vitalik Buterin
- 影片:Vitalik Buterin 向 Lex Fridman 解釋權益證明(opens in a new tab)