撰文:Vitalik Buterin
編譯:Alex Liu,Foresight News
特別感謝 Justin Drake、Hsiao-wei Wang、 @antonttc 、Anders Elowsson 和 Francesco 的反饋和審稿。
最初,「合併(the Merge)」指的是以太坊協議自推出以來歷史上最重要的事件:期待已久且來之不易的從工作量證明(PoW)到權益證明(PoS)的過渡。如今,以太坊作為一個穩定運行的權益證明系統已快整整兩年了,而且這種權益證明在穩定性、性能和避免中心化風險方面都表現得非常出色。然而,權益證明仍有一些重要領域需要改進。
我的 2023 年路線圖將其分為幾個部分:改進技術功能,例如穩定性、性能和小型驗證器的可訪問性,以及解決中心化風險的經濟變革。前者接管了「the Merge」的標題,後者成為「the Scourge」的一部分。
這篇文章將重點討論「Merge」部分:權益證明的技術設計還有哪些可以改進的地方,以及實現這一目標的途徑是什麼?
這並不是對權益證明可以做的事情的詳盡列表;相反,它是一個正在積極考慮的想法的列表。
單 Slot 的最終確定性和質押民主化
我們要解決什麼問題?
如今,需要 2-3 個 epochs(約 15 分鐘)才能完成一個區塊,並且需要 32 ETH 才能成為質押者。這最初是為了平衡三個目標而做出的妥協:
最大化可以參與質押的驗證者數量(這直接意味著最小化質押所需的最低 ETH )
最大限度地縮短最終確定的時間
最小化運行節點的開銷,在這種情況下是下載、驗證和重新廣播所有其他驗證者簽名的成本
這三個目標是相互衝突的:為了使經濟上的最終性成為可能(意味著:攻擊者需要燃燒大量 ETH 來扭轉最終確定的區塊),每次最終確定發生時,你需要每個驗證者簽署兩條消息。因此,如果你有很多驗證者,要麼你需要很長時間來處理他們的所有簽名,要麼你需要非常強大的節點來同時處理所有簽名。
這三個目標是相互衝突的:為了使經濟上的最終性成為可能(意味著:攻擊者需要燃燒大量 ETH 來篡改最終確定的區塊),每次最終確定發生時,你需要每個驗證者簽署兩條消息。因此,如果你有很多驗證者,要麼你需要很長時間來處理他們的所有簽名,要麼你需要非常強大的節點來同時處理所有簽名。
請注意,這一切都以以太坊的一個關鍵目標為條件:確保即使成功的攻擊也會給攻擊者帶來高昂的成本。這就是「經濟最終性」一詞的含義。如果我們沒有這個目標,那麼我們可以通過隨機選擇一個委員會來最終確定每個區塊來解決這個問題。不嘗試實現經濟最終性的鏈,例如 Algorand,通常就是這麼做的。但這種方法的問題在於,如果攻擊者確實控制了 51% 的驗證者,那麼他們就可以以非常低的成本執行攻擊(恢復最終確定的區塊、審查或者延遲最終確定):僅控制其節點中的部分節點。在委員會中,可能會被檢測為參與攻擊並受到懲罰,無論是通過削減(slashing)還是社會協調的軟分叉。這意味著攻擊者可以多次重複攻擊該鏈,在每次攻擊期間僅損失一小部分權益。因此,如果我們想要經濟上的最終性,基於委員會的簡單方法是行不通的,乍一看,我們確實需要全部驗證者的參與。
理想情況下,我們希望保持經濟的最終性,同時改善兩個領域的現狀:
在單個 slot 中完成區塊(理想情況下,保持甚至減少當前 12 秒的長度),而不是 15 分鐘
允許驗證者用 1 ETH 進行質押(低於 32 ETH)
第一個目標有兩個目標,這兩個目標都可以被視為「使以太坊的屬性與(更中心化的)注重性能的 L1 鏈的屬性保持一致」。
首先,它確保所有以太坊用戶實際上受益於通過最終性機制實現的更高級別的安全保證。如今,大多數用戶不這樣做,因為他們不願意等待 15 分鐘;通過單 slot 最終確定,用戶幾乎在確認交易後就會看到他們的交易已完成。其次,如果用戶和應用程序不必擔心鏈扭轉的可能性(除了相對罕見的 inactivity leak情況),它會簡化協議和周圍的基礎設施。
第二個目標是因為希望支持單獨的質押者(solo stakers)。一次又一次的民意調查反覆顯示,阻止更多人單獨質押的主要因素是 32 ETH 的最低限額。將最低限額減少到 1 ETH 將解決這個問題,其他問題將成為限制單獨質押的主導因素。
目前存在一個挑戰:更快的最終確定和更民主化的質押目標都與最小化開銷的目標相沖突。實際上,這個事實就是我們沒有從單 slot 最終確定性開始的全部原因。然而,最近的研究提出瞭解決該問題的一些可能途徑。
它是什麼以及它是如何工作的?
單 slot 最終性涉及使用一種共識算法來最終確定一個 slot 中的塊。這本身並不是一個困難的目標:許多算法,例如 Tendermint 共識,已經做到了這一點。以太坊獨有的一項所需屬性是不活動洩漏,Tendermint 不支持這一屬性,即使超過 1/3 的驗證者離線,該屬性也允許鏈繼續運行並最終恢復。幸運的是,這已經得到解決:已經有提案修改 Tendermint 式共識以適應不活動洩漏。
領先的單 slot 最終性提案
問題的更難部分是弄清楚如何使單 slot 最終確定性與非常高的驗證器數量一起工作,而不導致極高的節點運營商開銷。為此,有一些領先的解決方案:
選項 1:暴力- 努力實現更好的簽名聚合協議,可能使用 ZK-SNARK,這實際上允許我們處理每個 slot 中數百萬個驗證器的簽名。
Horn,為更好的聚合協議提出的設計之一
選項 2:軌道委員會(Orbit committees )— 一種新機制,允許隨機選擇的中型委員會負責最終確定鏈,但以保留我們正在尋找的攻擊成本屬性的方式。
一種思考 Orbit SSF 的方式是,它開闢了一個妥協兩種選項的空間,範圍從 x=0(Algorand 風格的委員會,沒有經濟終結性)到 x=1(以太坊現狀),在中間開闢了「以太坊仍然具有足夠的經濟最終性,因此非常安全,但同時我們只需要中等規模的隨機驗證者樣本參與每個 slots 即可獲得效率優勢」的點。
Orbit 利用驗證者存款規模中預先存在的異質性來獲得儘可能多的經濟最終確定性,同時仍將給予小型驗證者相應的角色。此外,Orbit 使用緩慢的委員會輪換來確保相鄰法定人數(adjacent quorums)之間的高度重疊,從而確保其經濟最終性仍然適用於委員會切換的界限。
選項 3:兩級質押—— 一種存在兩類質押者的機制,一類具有較高的存款要求,一類具有較低的存款要求。只有較高存款層級才會直接參與提供經濟最終性。對於較低存款層到底擁有哪些權利和責任,有各種建議(例如,參見Rainbow 質押帖子)。共同的想法包括:
將質押委託給更高級別質押者的權利
一些隨機的低級質押者需要證明並最終確定每個區塊
與現有研究有哪些聯繫?
Paths toward single slot finality (2022): https://notes.ethereum.org/@vbuterin/single_slot_finality 實現單 slot 最終確定性的路徑(2022)
A concrete proposal for a single slot finality protocol for Ethereum (2023): https://eprint.iacr.org/2023/280 以太坊單 slot 最終性
Orbit SSF: https://ethresear.ch/t/orbit-ssf-solo-staking-friendly-validator-set-management-for-ssf/19928
Further analysis on Orbit-style mechanisms: https://ethresear.ch/t/vorbit-ssf-with-circular-and-spiral-finality-validator-selection-and-distribution/20464 Orbit 式機制的進一步分析
Horn, signature aggregation protocol (2022): https://ethresear.ch/t/horn-collecting-signatures-for-faster-finality/14219 Horn,簽名聚合協議(2022)
Signature merging for large-scale consensus (2023): https://ethresear.ch/t/signature-merging-for-large-scale-consensus/17386?u=asn 大規模共識的簽名合併(2023)
Signature aggregation protocol proposed by Khovratovich et al: https://hackmd.io/@7dpNYqjKQGeYC7wMlPxHtQ/BykM3ggu0#/ Khovratovich 等人提出的簽名聚合協議
STARK-based signature aggregation (2022): https://hackmd.io/@vbuterin/stark_aggregation 基於 STARK 的簽名聚合(2022)
Rainbow staking: https://ethresear.ch/t/unbundling-staking-towards-rainbow-staking/18683 彩虹質押
還需要做什麼,需要權衡什麼?
有四種主要可能的路徑可供選擇(我們也可以採取混合路徑):
維持現狀
暴力 SSF
Orbit SSF
具有兩級質押的 SSF
(1)意味著不做任何工作並保持原樣,但這會使以太坊的安全體驗和質押中心化屬性變得更糟。
(2) 用高級技術暴力解決問題。要實現這一點,需要在很短的時間內(5-10 秒)聚合大量簽名(100 萬以上)。一種思考這種方法的方式是,它涉及通過全力以赴接受封裝的複雜性來最小化系統複雜性。
(3)避免「高級技術」,並通過圍繞協議假設進行巧妙的重新思考來解決問題:我們放寬了「經濟最終性」要求,以便我們追求令攻擊成本高昂,但可以接受攻擊成本可能低於 今天的 10 倍(例如,攻擊成本為 25 億美元,而不是 250 億美元)。人們普遍認為,今天的以太坊的經濟最終性遠遠超出了它的需要,而且主要安全風險在其他地方,所以這可以說是一個可以接受的犧牲。
主要的工作是驗證 Orbit 機制是安全的並且具有我們想要的屬性,然後將其完全形式化並實現。此外,EIP-7251(增加最大有效餘額)允許自願驗證者餘額合併,這會立即在一定程度上減少鏈驗證開銷,並有效充當 Orbit 推出的初始階段。
(4)避免了巧妙的反思和高級技術,但它創建了一個仍然存在中心化風險的兩級質押系統。風險在很大程度上取決於較低質押級別獲得的具體權利。例如:
如果低級別的質押者需要將其證明權委託給高級質押者,那麼授權可以中心化,因此我們最終會得到兩個高度中心化的質押層。
如果需要較低層的隨機樣本來批准每個塊,那麼攻擊者可以花費非常少量的 ETH 來阻止最終性。
如果較低層的質押者只能生成包含列表,那麼證明層可能會保持中心化,此時對證明層的 51% 攻擊可以自行審查包含列表。
可以組合多種策略,例如:
1 + 2):添加 Orbit 而不進行單 slot 最終確定
(1 + 3):使用暴力技術來減少最小存款大小,而不進行單 slot 最終確定。所需的聚合量比純 (3) 情況少 64 倍,因此問題變得更容易。
(2 + 3):使用保守參數(例如 128k 驗證者委員會而不是 8k 或 32k)進行 Orbit SSF,並使用技術使其超高效。
(1 + 4):添加彩虹質押(ainbow staking)而不進行單 slot 最終確定
它如何與路線圖的其他部分交互?
除了其他好處外,單 slot 最終性還降低了某些類型的多塊 MEV 攻擊的風險。此外,在單 slot 最終確定性世界中,證明者 - 提議者分離設計和其他協議內區塊生產管道需要進行不同的設計。
暴力策略的弱點在於,它們使得減少 slot 時間變得更加困難。
單一秘密 leader 選舉(Single secret leader election)
我們要解決什麼問題?
如今,哪個驗證者將提出下一個區塊是提前知道的。這會產生一個安全漏洞:攻擊者可以監視網絡,識別哪些驗證器對應於哪些 IP 地址,並在驗證器即將提出區塊時對每個驗證器進行 DoS 攻擊。
它是什麼以及它是如何工作的?
解決 DoS 問題的最佳方法是隱藏有關哪個驗證器將生成下一個塊的信息,至少直到該塊實際生成為止。請注意,如果我們刪除「單一」要求,這很容易:一種解決方案是讓任何人創建下一個區塊,但要求randao Reveal小於 2 (256) / N。平均而言,只有一個驗證者能夠滿足這個要求 - 但有時會有兩個或更多,有時會為零。將「保密」要求與「單一」要求結合起來一直是難題。
單一秘密領導者選舉協議通過使用一些加密技術為每個驗證者創建一個「盲」驗證者 ID 來解決這個問題,然後為許多提議者提供對盲 ID 池進行洗牌的機會(這類似於mixnet 的方式)作品)。在每個 slot 期間,都會選擇一個隨機盲 ID。只有該盲化 ID 的所有者才能生成有效的證明來提議該區塊,但沒有其他人知道該盲化 ID 對應於哪個驗證器。
與現有研究有哪些聯繫?
Paper by Dan Boneh (2020): https://eprint.iacr.org/2020/025.pdf Dan Boneh 的論文(2020)
Whisk (concrete proposal for Ethereum, 2022): https://ethresear.ch/t/whisk-a-practical-shuffle-based-ssle-protocol-for-ethereum/11763 Whisk(以太坊具體提案,2022)
Single secret leader election tag on ethresear.ch: https://ethresear.ch/tag/single-secret-leader-election ethresear.ch 上的單一秘密領導者選舉標籤
Simplified SSLE using ring signatures: https://ethresear.ch/t/simplified-ssle/12315 使用環簽名的簡化 SSLE
還需要做什麼,需要權衡什麼?
實際上,剩下的就是找到並實現一個足夠簡單的協議,以便我們可以輕鬆地在主網上實現它。我們高度評價以太坊是一個相當簡單的協議,我們不希望複雜性進一步增加。我們看到的 SSLE 實現添加了數百行規範代碼,並在複雜的密碼學中引入了新的假設。找出足夠高效的抗量子 SSLE 實現也是一個懸而未決的問題。
最終可能的情況是,一旦我們出於其他原因冒險嘗試並引入在 L1 的以太坊協議中進行通用零知識證明的機制(例如狀態樹、ZK-EVM),由 SSLE 帶來的額外複雜性就會降到足夠低。
另一種選擇是根本不考慮 SSLE,並使用協議外緩解措施(例如,在 p2p 層)來解決 DoS 問題。
它如何與路線圖的其他部分交互?
如果我們添加證明者 - 提議者分離(APS)機制,例如。執行票證( execution tickets),那麼執行塊(即包含以太坊交易的塊)將不需要 SSLE,因為我們可以依賴專門的塊構建器。然而,我們仍然會從 SSLE 的共識塊中受益(即包含協議消息的塊,例如證明(attestations),也許是包含列表的片段等等)。
更快的交易確認
我們要解決什麼問題?
以太坊的交易確認時間進一步減少是有價值的,從 12 秒減少到例如 4 秒。這樣做將改善 L1 和 Based Rollups 的用戶體驗,同時使 defi 協議更加高效。它還將使 L2 更容易去中心化,因為它將允許一大類 L2 應用程序在 Based Rollups 上工作,從而減少 L2 構建自己的基於委員會的去中心化排序的需求。
它是什麼以及它是如何工作的?
減少 slot 時間,例如 8 秒 或 4 秒。這並不一定意味著 4 秒最終確定:最終確定本質上需要三輪通信,因此我們可以使每輪通信成為一個單獨的塊,這至少將在 4 秒後得到初步確認。
允許提議者在 slot 過程中發佈預確認。在極端情況下,提議者可以將他們實時看到的交易添加到自己的區塊中,並立即為每個交易發佈預確認消息(「我的第一筆交易是 0×1234...」,「我的第二筆交易是 0×5678……」)。提議者發佈兩個相互衝突的確認的情況可以通過兩種方式處理:(i)削減(slashing)提議者,或(ii)使用 prover 對較早出現的確認進行投票。
與現有研究有哪些聯繫?
Based preconfirmations: https://ethresear.ch/t/based-preconfirmations/17353
Protocol-enforced proposer commitments (PEPC): https://ethresear.ch/t/unbundling-pbs-towards-protocol-enforced-proposer-commitments-pepc/13879 協議強制提議者承諾(PEPC)
Staggered periods across parallel chains (a 2018-era idea for achieving low latency): https://ethresear.ch/t/staggered-periods/1793 並行鏈上的交錯週期(2018 年實現低延遲的想法)
還需要做什麼,需要權衡什麼?
目前尚不清楚減少 slot 時間是否切實可行。即使在今天,世界許多地區的質押者也很難足夠快地獲得證明。嘗試 4 秒的 slot 時間會帶來驗證者中心化的風險,並且由於延遲而導致在少數發達地區之外成為驗證者變得不切實際。具體來說,轉向 4 秒時隙需要將網絡延遲(「增量」)限制減少到兩秒。
提議者預確認方法的缺點是它可以極大地提高平均情況下的包含時間,但不能改善最壞情況:如果當前提議者運行良好,交易將在 0.5 秒內得到預確認,而不是在 6 秒內被包含 ( 平均),但如果當前提議者離線或運行不佳,你仍然需要等待整整 12 秒才能啟動下一個 slot 並提供新的提議者。
此外,如何激勵預確認也是一個懸而未決的問題。提案者有動力盡可能長時間地最大化他們的選擇權。如果證明者簽署了預確認的及時性,那麼交易發送者可以以立即預確認為條件收取部分費用,但這會給證明者帶來額外的負擔,並可能使證明者繼續運作變得更加困難作為中性的 「dumb pipe」。
另一方面,如果我們不嘗試這樣做,並將最終確定時間保持在 12 秒(或更長),生態系統將更加重視 L2 的預確認機制,跨 L2 交互將需要更長的時間。
它如何與路線圖的其他部分交互?
基於提議者的預確認實際上取決於證明者 - 提議者分離(APS)機制,例如 執行票證。否則,對於常規驗證者來說,提供實時預先確認的壓力可能過於集中。
Slot 時間到底能有多短還取決於 slot 結構,這在很大程度上取決於我們最終實施的 APS 版本、包含列表等。有些 slot 結構包含較少的回合,因此對短 slot 時間更友好,但它們在其他地方進行了權衡。
其他研究領域
51% 攻擊恢復
人們常常假設,如果發生 51% 攻擊(包括無法通過密碼學證明的攻擊,例如審查制度),社區將齊心協力實施少數派軟分叉,以確保好人獲勝,壞人獲得不活動洩漏或削減(slashed)。然而,這種對社會層面的過度依賴可以說是不健康的。我們可以嘗試通過使恢復過程儘可能自動化來減少對社交層的依賴。
完全自動化是不可能的,因為如果是的話,那將被視為 >50% 容錯共識算法,並且我們已經知道此類算法的(非常嚴格的)數學上可證明的侷限性。但我們可以實現部分自動化:例如,如果客戶端審查客戶端已經看到足夠長的交易,客戶端可以自動拒絕接受最終確定的鏈,甚至拒絕接受分叉選擇的頭。一個關鍵目標是確保攻擊中的壞人至少不能快速乾淨利落地取得勝利。
提高 quorum 閾值
今天,如果持有 67% 質押的人支持,則該區塊將最終確定。有人認為這過於激進。在以太坊的整個歷史中,只發生過一次(非常短暫的)最終性失敗。如果這個百分比增加,例如到 80%,那麼增加的非最終性階段的數量會相對較低,但以太坊將獲得安全屬性:特別是,許多更有爭議的情況將導致最終性的暫時停止。這似乎比「錯誤的一方」立即獲勝要健康得多,無論是當錯誤的一方是攻擊者還是有錯誤的客戶端時。
這也回答了「單獨質押者的意義是什麼」這個問題?如今,大多數質押者已經通過礦池進行質押,而單獨質押者似乎不太可能獲得質押 ETH 的 51%。然而,如果我們努力工作,讓單獨的質押者達到法定人數阻止少數派,特別是如果法定人數為 80%(因此 quorum 阻止少數派只需要 21%),似乎是可以實現的。只要單獨的質押者不同意 51% 攻擊(無論是最終性恢復還是審查),這樣的攻擊就不會獲得「乾淨的勝利」,並且單獨的質押者就會有動力幫助組織少數派軟分叉。
請注意,quorum 閾值和 Orbit 機制之間存在相互作用:如果我們最終使用 Orbit,那麼「21% 的質押者」到底意味著什麼將成為一個更復雜的問題,並且部分取決於驗證者的分佈。
量子抗性
Metaculus 目前認為,儘管誤差線很寬,但量子計算機可能會在 2030 年代的某個時候開始破解密碼學:
斯科特·阿倫森(Scott Aaronson)等量子計算專家最近也開始更加認真地對待量子計算機在中期內有效工作的可能性。這對整個以太坊路線圖產生了影響:這意味著當前依賴於橢圓曲線的以太坊協議的每個部分都需要進行一些基於哈希或其他抗量子的替代。這特別意味著我們不能假設我們能夠永遠依靠BLS 聚合的優異特性來處理來自大型驗證器集的簽名。這證明了圍繞權益證明設計性能的假設的保守性是合理的,也是更加積極主動地開發抗量子替代方案的原因。