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