原文標題:(Possible futures of the Ethereum protocol, part 1: The Merge)
撰文:Vitalik Buterin
編譯:Tia,Techub News
最初,「the Merge」指的是從工作量證明到權益證明的過渡。如今,以太坊作爲一個權益證明系統已經穩定運行近兩年了,權益證明在穩定性、性能和避免中心化風險方面表現得非常出色。然而,權益證明仍有一些領域需要改進。
我在 2023 年繪製的路線圖包含了以下幾個部分:改進技術特性,例如增加穩定性、性能和對小型驗證者的可訪問性,以及經濟變革以應對中心化風險。前者則爲「the Merge」包含的部分,而後者則是「the Scourge」的一部分。
這篇文章將重點關注「the Merge」部分:權益證明的技術設計還有哪些可以改進,以及實現這些改進的途徑有哪些?
請注意,這是一份想法清單,並不是一份針對權益證明需要完成事物的詳盡清單。
Single slot 最終性和質押民主化
我們正在解決什麼問題?
目前,需要 2-3 個 epoch(約 15 分鐘)才能最終確定一個區塊,並且需要 32 ETH 才能成爲質押者。這是因爲需要在三個目標之間取得平衡而做出的妥協:
最大化參與質押的驗證者數量(這直接意味着最小化質押所需的最小 ETH 數量)
最小化最終確定時間
最小化運行節點的開銷
這三個目標是相互衝突的:爲了實現經濟最終性(即攻擊者需要銷燬大量 ETH 才能恢復最終確定的區塊),每次實現最終性時,每個驗證者都需要簽署兩條消息。因此,如果您有許多驗證者,要麼就需要很長時間來處理所有簽名,這需要非常強大節點性能,如此才能同時處理所有簽名。
最終這都是爲了實現這一目標而服務的: 攻擊者需要耗費巨大成本才能成功。這就是「經濟最終性」一詞的含義。如果不考慮這個目標,那麼我們只需要隨機選擇一個委員會(例如 Algorand 所做的)來最終確定每個 slot。但這種方法的問題在於,如果攻擊者能夠控制 51% 的驗證者,那麼他們可以以非常低的成本進行攻擊(撤銷最終確定的區塊、審查或延遲最終確定):只有他們在委員會中的那部分節點可以被檢測爲參與攻擊並受到懲罰,無論是通過罰沒還是少數軟分叉。這意味着攻擊者可以多次反覆攻擊該鏈。因此,如果我們想要實現經濟最終性,那麼簡單的基於委員會制度是行不通的。
乍一看,我們確實需要所有驗證者參與。
但在理想情況下,我們可以在改善以下兩部分的情況下依舊實現經濟最終性
在一個 slot 內完成區塊(理想情況下,保持甚至減少當前 12 秒的長度),而不是 15 分鐘
允許驗證者質押 1 ETH(原先爲 32 ETH)
這些目標都可以看作是「使以太坊的性能更接近於(更中心化的)注重性能的 L1」。
但它還是會使用更高安全保證的最終確定機制,以確保所有以太坊用戶的安全性。如今,大多數用戶都無法獲得這一等級的安全性,因爲他們不願意等待 15 分鐘;而使用 Single slot 最終確定機制,用戶幾乎可以在確認交易後立即實現交易最終性。其次,如果用戶和應用不用擔心鏈回滾,那就可以簡化協議和周圍的基礎設施,協議和基礎設施需要考慮的因素就變得更少了。
第二個目標是出於支持 solo 質押者(用戶獨立質押而非依靠機構)。阻止更多人 solo 質押的主要因素是 32 ETH 的最低限額。將最低限額降低到 1 ETH 將解決這個問題,以至於其他問題成爲限制單獨質押的主要因素。
但存在一個挑戰:更快的確定性和更民主化的質押是與最小化開銷相沖突的。這就是我們一開始不採用 Single slot 最終性的原因。然而,最近的研究提出了一些解決這個問題的可能方法。
它是什麼以及它是如何工作的?
Single-slot 最終性指的是在一個 slot 內最終確定區塊的共識算法。這本身並不是一個難以實現的目標:許多算法(例如 Tendermint 共識)已經以最佳屬性實現了這一點。但是,以太坊獨有的「inactivity leaks」屬性,Tendermint 並不具。這一屬性可以讓以太坊在即使超過 1/3 的驗證者離線的情況下,也能繼續運行並最終恢復。幸運的是,現在已經有解決方案可以實現這一屬性:已經有提案修改 Tendermint 式共識以適應 inactivity leaks。
Single slot最終性提案
最難的部分是弄清楚如何使 Single slot 最終性在驗證者數量非常高的情況下發揮作用,同時還不會導致極高的節點運營商開銷。目前,有幾種的解決方案:
選項 1:暴力破解——努力實現更好的簽名聚合協議,可能使用 ZK-SNARKs,這實際上允許我們在每個 slot 中處理數百萬個驗證器的簽名。
Horn,優化聚合的協議設計之一
選項 2: Orbit 委員會,一種新機制,隨機選擇中型委員會來確定鏈的最終性,但同時需具備高經濟攻擊成本。
思考 Orbit SSF 的一種方式是,它開闢了一個妥協選項,不必像 Algorand 風格的委員會一樣不具備經濟最終性),但也能一定程度實現部分高經濟攻擊成本,可以使得以太坊仍然具有足夠的經濟最終性以確保極其安全,但同時也能提高單 solt 的效率。
Orbit 利用驗證者存款規模中預先存在的異質性來獲得儘可能多的經濟最終性,同時仍將給予小型驗證者相應的角色進行參與。此外,Orbit 使用緩慢委員會輪換機制來確保相鄰法定人數之間高度重疊,從而確保其經濟最終性仍然在委員會輪換時依舊適用。
選項 3:雙層質押,該機制將質押者分爲兩類,一類的存款要求較高,另一類的存款要求較低。只有存款要求較高層級的質押者會直接經濟最終性。已有一些提案(例如,參見 Rainbow 質押帖子)來具體說明較低層級存款質押者需要哪些權利和責任。常見想法包括:
將權益委託給更高層級的權益持有者
隨機抽取較低層級的質押者來證明並最終確定每個區塊
生成 inclusion lists 的權利
與現有研究有哪些聯繫?
實現 Single slot 最終性的途徑(2022 年):https : //notes.ethereum.org/@vbuterin/single _slot_finality
以太坊 Single 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
大規模共識的簽名 the Merge(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
彩虹質押:https ://ethresear.ch/t/unbundling-staking-towards-rainbow-staking/18683
還需要做些什麼?有哪些需要權衡?
有四種路徑可供選擇(我們也可以採取混合路徑):
維持現狀
Orbit SSF
暴力破解 SSF
具有兩層質押機制的 SSF
(1)意味着不做任何工作並保持原樣,但這會使以太坊的安全體驗和質押中心化屬性變得比本來應該的更糟糕。
(2)避免「高科技」,通過巧妙地重新思考協議假設來解決問題:我們放寬了「經濟終結性」的要求,這樣我們就要求攻擊是昂貴的,但攻擊成本可能比現在低 10 倍(例如,攻擊成本爲 25 億美元,而不是 250 億美元)。人們普遍認爲,以太坊如今的經濟終結性遠遠超出了它所需要的水平,它的主要安全風險在其他地方,所以可以說這是可以接受的犧牲。
主要工作是驗證 Orbit 機制是否安全並具有我們想要的屬性,然後對其進行完全形式化和實施。此外,EIP-7251(增加最大有效餘額)允許自願驗證者餘額 the Merge,這會立即減少鏈的驗證開銷,並作爲 Orbit 推出的有效初始階段。
(3)用高科技強行解決問題。做到這一點需要在很短的時間內(5-10 秒)收集大量簽名(100 萬以上)。
(4)創造了一個雙層的質押系統,無需過度思考機制也無需使用高科技,但它確實仍然具有中心化風險。風險在很大程度上取決於較低質押層獲得的特定權利。例如:
如果低級質押者需要將其證明權委託給高級質押者,那麼委託可能會中心化,最終我們會得到兩個高度集中的質押層級。
如果需要對較低層進行隨機抽樣來批准每個區塊,那麼攻擊者只需花費極少量的 ETH 即可阻止最終確定性。
如果較低級別的質押者只能製作 inclusion list,那麼證明層可能會保持中心化,此時對證明層的 51% 攻擊可以審查 inclusion list 本身。
可以組合多種策略,例如:
(1 + 2):添加 Orbit,但不執行 Single slot 最終性
(1 + 3):使用強力技術減少最小存款額,而無需進行 Single slot 最終確定。所需的聚合量比純 (3) 情況少 64 倍,因此問題變得更容易。
(2 + 3):使用保守參數執行 Orbit SSF(例如 128k 驗證者委員會而不是 8k 或 32k),並使用蠻力技術使其超高效。
(1 + 4):添加彩虹質押,但不進行 Single slot 最終確認
如何與路線圖的其他部分互動?
除了其他好處之外,Single slot 最終性還降低了某些類型的多區塊 MEV 攻擊的風險。此外,在 Single slot 最終性世界中,證明者-提議者分離設計和其他協議內區塊生產機制需要以不同的方式設計。
通過蠻力實現目標的弱點在於減少 slot 時間變得更加困難。
單一祕密領導人選舉
我們正在解決什麼問題?
如今,哪個驗證者將提出下一個區塊是可以提前知道的。這會產生一個安全漏洞:攻擊者可以監視網絡,確定哪些驗證者對應哪些 IP 地址,並在驗證者即將提出區塊時對其發起 DoS 攻擊。
它是什麼以及它是如何工作的?
解決 DoS 問題的最佳方法是隱藏哪個驗證者將生成下一個區塊的信息(至少在區塊實際生成之前)。如果不考慮「單一」這一要求(只有一方生成下一區塊),一種解決方案是讓任何人都可以創建下一個區塊,但這需要 randao reveal 小於 2 (256) / N。通常來說,只有一個驗證者能夠滿足此要求(但有時會有兩個或更多,有時會沒有)。因此,將「保密」要求與「單一」要求結合起來一直是一個難題。
單一祕密領導者選舉協議通過使用一些加密技術爲每個驗證者創建一個「盲」驗證者 ID,然後讓許多提議者有機會對盲 ID 池進行改組和重新盲化(這類似於混合網絡的工作方式),從而解決了這個問題。在每個 slot 內,都會選擇一個隨機的盲 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
還剩下什麼要做?有哪些需要權衡?
實際上,剩下的就是找到並實現一個足夠簡單的協議,以便我們可以輕鬆地在主網上實現它。我們非常重視以太坊的簡單性,我們不希望複雜性進一步增加。我們看到的 SSLE 實現增加了數百行規範代碼,並在複雜的加密中引入了新的假設。找出一個足夠有效的抗量子 SSLE 實現也是一個懸而未決的問題。
最終可能會出現這樣的情況:只有當我們出於其他原因(例如狀態樹、ZK-EVM)大膽嘗試並在 L1 的以太坊協議中引入執行通用零知識證明的機制時,SSLE 的「邊際額外複雜性」纔會下降到足夠低的水平。
另一種選擇是根本不理會 SSLE,而是使用協議外緩解措施(例如在 p2p 層)來解決 DoS 問題。
它如何與路線圖的其他部分互動?
如果我們添加證明者-提議者分離 (APS) 機制,例如執行票,那麼執行塊(即包含以太坊交易的塊)將不需要 SSLE,因爲我們可以依賴專門的塊構建器。但是,對於共識塊(即包含協議消息(例如證明、可能包含列表的部分等)的塊),我們仍將受益於 SSLE。
更快的交易確認
我們正在解決什麼問題?
以太坊的交易確認時間進一步縮短是有價值的,從 12 秒縮短到 4 秒。這樣做將顯著改善 L1 和基於 rollups 的用戶體驗,同時使 defi 協議更加高效。它還將使 L2 更容易去中心化,因爲它將允許大量 L2 應用基於 rollups 運行,從而減少 L2 構建自己的基於委員會的去中心化排序的需求。
它是什麼以及它是如何工作的?
這裏大致有兩種技術:
減少 slot 時間,例如減少到 8 秒或 4 秒。這並不一定意味着 4 秒的最終性:最終性本身需要三輪通信,因此我們可以將每輪通信設爲一個單獨的區塊,這將在 4 秒後至少獲得初步確認。
允許提議者在 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
還剩下什麼要做?有哪些需要權衡?
目前還不清楚縮短 slot 時間的可行性。即使在今天,世界上許多地區的質押者也很難以足夠快的速度獲得證明。嘗試 4 秒的 slot 時間存在使驗證者集中心化的風險,並且由於延遲,在少數特權地區之外成爲驗證者是不切實際的。
提議者預先確認方法的弱點在於它可以大大改善平均情況的包含時間,但不能改善最壞情況:如果當前提議者運行良好,您的交易將在 0.5 秒內得到預先確認,而不是(平均)6 秒內被包含,但如果當前提議者離線或運行不佳,您仍然需要等待整整 12 秒才能開始下一個 slot 並提供新的提議者。
此外,還有一個懸而未決的問題,即如何激勵預確認。提議者有動機儘可能長時間地最大化他們的可選性。如果見證人簽署預確認的及時性,那麼交易發送者可以將部分費用以立即預確認爲條件,但這會給見證人帶來額外的負擔,並可能使見證人更難繼續充當中立的「啞管道」。
另一方面,如果我們不嘗試這樣做,並將最終確定時間保持在 12 秒(或更長時間),生態系統將更加重視 L2 的預先確認機制,並且跨 L2 的交互將需要更長的時間。
它如何與路線圖的其他部分互動?
基於提議者的預確認實際上依賴於證明者-提議者分離 (APS) 機制,例如執行票。否則,對於常規驗證者來說,提供實時預確認的壓力可能過於集中。
其他研究領域
51% 攻擊恢復
人們通常認爲,如果發生 51% 攻擊(包括無法通過加密證明的攻擊,例如審查制度),社區將齊心協力實施少數派軟分叉,確保好人獲勝,壞人則因不活動而泄露或被罰沒。然而,這種程度的過度依賴社交層可以說是不健康的。我們可以嘗試通過使恢復過程儘可能自動化來減少對社交層的依賴。
完全自動化是不可能的,因爲如果完全自動化,那就相當於一個容錯率 >50% 的共識算法,而且我們已經知道這類算法的(非常嚴格的)數學可證明的侷限性。但我們可以實現部分自動化:例如,如果客戶端審查了客戶端已經看到很長時間的交易,它就可以自動拒絕接受一條鏈作爲最終確定的,甚至拒絕接受它作爲分叉選擇的頭部。一個關鍵目標是確保攻擊者至少不能快速獲得徹底的勝利。
提高法定人數門檻
如今,只要有 67% 的質押者支持,區塊就會最終確定。有人認爲這種做法過於激進。在以太坊的整個歷史上,只有一次(非常短暫的)最終確定性失敗。如果將這一比例提高到 80%,那麼增加的非最終確定性時期數量將相對較低,但以太坊將獲得安全性:特別是,許多更具爭議的情況將導致最終確定性的暫時停止。這似乎是一種比「錯誤的一方」立即獲勝更健康的情況,無論是錯誤的一方是攻擊者,還是客戶端有錯誤。
這也回答了「solo 質押者的意義何在」這個問題。如今,大多數質押者已經通過質押池進行質押,讓單獨質押者質押 ETH 達到 51% 的可能性似乎很小。但是,如果我們努力的話,讓單獨質押者達到法定人數阻止少數羣體,特別是如果法定人數爲 80%(因此法定人數阻止少數羣體只需要 21%)似乎是有可能實現的。只要單獨質押者不參與 51% 攻擊(無論是最終確定性逆轉還是審查制度),這種攻擊就不會獲得「乾淨利落的勝利」,並且單獨質押者會有動力幫助組織少數羣體軟分叉。
抗量子攻擊
Metaculus 目前認爲,儘管誤差很大,但量子計算機可能會在 2030 年代的某個時候開始破解密碼學:
量子計算專家,例如 Scott Aaronson,最近也開始更加認真地考慮量子計算機在中期內實際工作的可能性。這將對整個以太坊路線圖產生影響:這意味着目前依賴於橢圓曲線的每個以太坊協議部分都需要某種基於哈希或其他量子抗性的替代方案。這特別意味着我們不能假設我們將能夠永遠依靠 BLS 聚合的優異性能來處理來自大型驗證器集的簽名。這證明了在權益證明設計性能假設方面的保守性是合理的,也是更積極地開發量子抗性替代方案的原因。