原文標題: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數量)
-
最小化最終確定時間
-
最小化運行節點的開銷
這三個目標是相互衝突的:為了實現「經濟上的最終確定性」(economic finality,即攻擊者需要銷毀大量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
還剩下什麼要做?需要權衡什麼?
實際上,剩下的就是找到並實現一個足夠簡單的協議,以便我們可以輕鬆地在主網上實現它。我們非常重視以太坊是一個相當簡單的協議,我們不希望複雜性進一步增加。我們看到的SSLE 實作增加了數百行規範程式碼,並在複雜的加密中引入了新的假設。找出一個足夠有效的抗量子SSLE 實作也是一個懸而未決的問題。
最終可能會出現這樣的情況:只有當我們出於其他原因(例如狀態樹、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
還剩下什麼要做?需要權衡什麼?
目前還不清楚縮短slot時間的可行性。即使在今天,世界上許多地區的質押者也很難以足夠快的速度獲得證明。嘗試4 秒的slot時間存在使驗證者集中心化的風險,並且由於延遲,在少數特權地區之外成為驗證者是不切實際的。
提議者預先確認方法的弱點在於它可以大大改善平均情況的包含時間,但不能改善最壞情況:如果當前提議者運作良好,你的交易將在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 的回饋和審查。