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