探索乙太坊 2.0 的權益證明革新,瞭解如何通過技術升級應對質押中心化挑戰。 Vitalik 的深度解析,帶你洞見乙太坊未來的技術潛力與升級路徑。 不容錯過的區塊鏈技術前沿解讀!
原文:Possible futures of the Ethereum protocol, part 1: The Merge(vitalik.eth)
作者:vitalik.eth
編譯:183Aaros,LXDAO
封面:Photo by Shubham Dhage on Unsplash
譯者前言
乙太坊 2.0 相對於工作量證明時代的乙太坊 1.0 更新了眾多生澀、繁瑣的權益證明機制以保持更強的穩定性、安全性,並將部分目標交由 Layer 2 解決。 時過境遷,自「The Merge」升級至今已逾兩年,以 Lido 為首的質押服務供應商們逐漸成為乙太坊節點質押的首選,獨立質押在這樣的背景下顯得意義寥寥,雙層質押方案也仍然具有中心化風險。 幸運的是,Tendermint 式共識的出現讓單時隙最終確定(SSF)重回牌桌,Orbit 委員會等新選擇也為未來的更新提供了更多籌碼。 面對乙太坊質押中心化隱憂,Vitalik 在本文結合了 “The Merge” 升級前後的新舊思考,將盡可能多的技術解決組合方案佈局紙上,為其 2023 年鋪設的技術路線展望補充了這份想法清單,詳解了 “The Merge” 升級后乙太坊權益證明技術的設計潛力,以及當下潛在可行的技術升級路徑。
本文概述
本文共約 6500 字,有 4 個部分,閱讀完本文預計需要 40 分鐘。
1. 單時隙確定性及質押民主化
2. 單一秘密領袖選舉
3. 更快的交易確認
4. 其他研究領域
正文內容
《乙太坊協定可能的未來(一):The Merge》
特別感謝 Justin Drake、Hsiao-wei Wang、@antonttc、Anders Elowsson 和 Francesco 的反饋和審閱。
最初,「合併」(“The Merge”)指的是以太坊協定自發佈以來最重要的事件:期待已久也來之不易的由工作量證明(PoW)向權益證明(PoS)過渡的轉變。 如今,乙太坊的權益證明系統已穩定運行將近兩年,在穩定性、性能和避免中心化風險方面表現得非常出色。 然而,權益證明仍然存在一些需要改進的重要領域。
我在 2023 年的路線圖可以分成幾個部分:改進技術特性,例如穩定性、性能和對小型驗證者的可訪問性,以及為了應對中心化風險而作出的經濟變革。 前者成為了 The Merge 的主題,而後者成為了 The Scourge 的一部分。
這篇文章將重點討論「合併」部分:權益證明的技術設計還有哪些可以改進的地方,實現這一目標的途徑有哪些?
這不是一份關於權益證明可行項的詳盡清單,而是一份值得被積極考慮的想法清單。
The Merge: 關鍵目標
- 單時隙(slot)最終性
- 儘快確認、最終確定交易,同時保持去中心化
- 提高獨立質押者的質押可行性
- 提高穩健性
- 提高乙太坊的抗審查能力、恢復 51% 攻擊的能力(包括最終確定性回退、最終確定性區塊和審查)
本章節
- 單時隙確定性及質押民主化
- 單一秘密領袖選舉
- 更快速的交易確認
- 其他研究領域
單時隙最終確定性(Single Slot Finalty)及質押民主化
我們要解決什麼問題?
目前,需要 2-3 個 epoch(15 分鐘左右)才能最終確定(finalize)一個區塊,且需要 32 ETH 才能成為質押者。 最初這是為了在以下三個目標之間取得平衡而做出的妥協:
- 最大化參與到質押中的驗證者數量(這直接意味著最小化質押所需的最低 ETH 數量)
- 最小化最終確定時間
- 最小化運行節點的開銷,包括下載、驗證和廣播其他驗證者簽名的成本
這三個目標是相互衝突的:為了實現經濟最終確定性(意味著:攻擊者需要銷毀大量 ETH 才能回滾已經最終確定的區塊),每次最終確定時,每個驗證者都需要簽署兩條消息。 因此,如果存在許多驗證者,要麼需要很長時間來處理所有簽名,要麼就需要非常強大的節點來同時處理所有簽名。
請注意:這一切都取決於乙太坊的一個關鍵目標:確保即使乙太坊被攻擊,攻擊者也需要支付高昂的成本才能成功。 這就是經濟最終性的含義。 如果我們沒有這個目標,那麼我們可以通過隨機選擇一個委員會(如同 Algorand 的做法)確定每個時隙來解決這個問題。 但這種方法的問題在於,如果攻擊者確實控制了 51% 的驗證者,那麼他們能以非常低的成本進行攻擊(回滾已最終確定的區塊、審查或是延遲區塊的最終確定):無論是通過罰沒(slashing)還是少數派軟分叉(minority soft fork),只能檢測到委員會的那部分節點參與了攻擊並受到懲罰。 這意味著攻擊者可以多次重複攻擊該鏈。 因此,如果我們想要經濟最終性,那麼簡單的、基於委員會的方法是行不通的,看起來,我們確實需要所有驗證者參與進來。
理想情況下,我們希望保持經濟終結性,同時在兩個方面改善現狀:
- 在單時隙內最終確定區塊(理想情況下,保持甚至減少當前 12 秒的時長),而不是 15 分鐘
- 允許驗證者以 1 ETH 進行質押(原為 32 ETH)
關鍵目標由兩個子目標來證明其合理性,而兩個子目標都可以理解為「使乙太坊的特性與(更中心化的)注重性能的 L1 公鏈對齊」。。
首先,它確保所有乙太坊使用者都能真正享受到最終確定性帶來的更高安全保障。 但現在的情況是:大多數使用者都不願意幹等 15 分鐘(譯者注:所以實際上並沒有獲得這種保障); 如果採用單時隙確認,用戶幾乎可以在交易確認后立刻最終確定。 其次,這種機制簡化了協定與相關基礎設施,使用者與應用不再需要擔心鏈回滾(reverting)的可能性,除非遇到非常罕見的 inactivity leak 的情況。
第二個目標則是來自於支持獨立質押者的願望。 一次又一次的投票表明,32 ETH 的最低限額是阻止更多人獨立質押的主要因素。 將最低限額降低到 1 ETH 將解決這個問題,到那個時候,限制個人質押的主要因素就在其他方面了。
這裡存在一個挑戰:更快的區塊最終確定和更民主化質押的目標,但這都與最小化開銷的目標相衝突。 事實上,這就是我們當初沒有採用單時隙最終確定的唯一原因。 不過,最近的研究提出了一些解決這個問題的新方法。
它是什麼,如何做到的?
單時隙最終性涉及使用一種共識演算法來最終確定一個時隙中的區塊。 這本身並不是一個難以實現的目標 —— 許多演算法,例如 Tendermint 共識,已經以最佳性能的方式實現了。 乙太坊的獨特特性需求是 inactivity leaks:即使超過 1/3 的驗證器離線,該特性也允許鏈繼續運行並最終恢復,而 Tendermint 不支援這個特性。 幸運的是,現在可以滿足這個願望了:已經有提案修改了 Tendermint 共識以適應 inactivity leaks。
問題最難的部分是在驗證者數量非常多時,單時隙的最終確定性如何正常工作,而不會導致節點的運營商產生極高的開銷。 為此,有幾種領先的解決方案:
- 選項 1:暴力破解 —— 努力實現更好的簽名聚合協定,可能會使用 ZK-SNARKs,這將讓我們得以處理單 slot 中數百萬個驗證者的簽名。
- 選項 2:Orbit 委員會 —— 一種新機制,允許隨機選取的中型委員會來負責鏈的最終確定性,但這是以一種我們想要的保留攻擊成本特性的方式。
有一種思考 Orbit SSF 的方式:它開闢了折中的空間,(譯者注:我們可以將這種折中方案視作一個可被調整的值)從範圍 x=0(Algorand 風格的委員會,沒有經濟最終確定性)到 x=1(乙太坊的現狀),Orbit SSF 在其間開闢了中間地帶,其中乙太坊仍然具有足夠的經濟最終性,用以確保極其安全; 但與此同時,僅需中等規模的隨機驗證者樣本參與每個時隙,我們也獲得了效率優勢。
Orbit 利用驗證者存款規模中預先存在的異質性(譯者注:由不同或多樣的元素組成的狀態或特性)來獲得盡可能大的經濟最終性,同時仍將給予小型驗證者與其匹配的角色。 此外,Orbit 使用緩慢的委員會輪換模式,來確保相鄰法定人數高度重疊,進而確保了其經濟最終性也適用於委員會輪換期間。
- 選項 3:雙層質押 —— 一種有兩類質押者的機制,一類質押者有較高的存款要求,另一類質押者有較低的存款要求。 只有存款要求較高的層級會直接參與到提供經濟最終性的過程中。 至於低層級存款應有哪些權責,已有各類提案提出(例如,參見彩虹質押(Rainbow staking)的帖子)。 常見的想法包括:
- 將權益委託質押給更高級的權益持有者的權利
- 隨機抽取低層級質押者來證明並最終確定每個區塊
- 生成納入清單(inclusion lists)的權利
與現有研究有哪些聯繫?
- 實現單時隙最終確定性的途徑(Paths toward single slot finality)(2022 年):https://notes.ethereum.org/@vbuterin/single_slot_finality
- 乙太坊單時隙最終確定性協定的具體提案(A specific proposal for a single slot finality protocol for Ethereum)(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 風格機制的進一步分析(Further analysis on Orbit-style mechanisms):https://notes.ethereum.org/@anderselowsson/Vorbit_SSF
- Horn,簽名聚合協定(Horn, signature aggregation protocol)(2022 年):https://ethresear.ch/t/horn-collecting-signatures-for-faster-finality/14219
- 大規模共識的簽名合併(Signature merging for large-scale consensus)(2023 年):https://ethresear.ch/t/signature-merging-for-large-scale-consensus/17386?u=asn
- Khovratovich 等人提出的簽名聚合協定(Signature aggregation protocol proposed by Khovratovich et al):https://hackmd.io/@7dpNYqjKQGeYC7wMlPxHtQ/BykM3ggu0#/
- 基於 STARK 的簽名聚合(STARK-based signature aggregation)(2022 年):https://hackmd.io/@vbuterin/stark_aggregation
- 彩虹質押(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(增加最大有效餘額)允許自願驗證者進行餘額合併(balance consolidation),這將立即減少鏈驗證的開銷,並作為 Orbit 的有效初始階段推出。
(4)避免了巧妙的重新思考和高科技,但它創造了雙層質押系統,仍然具有中心化風險。 風險在很大程度上取決於低質押層獲得的具體權利。 例如:
- 如果低層質押者需要將其證明權利委託給高層質押者,那麼委託就會中心化,最終結果是:我們將得到兩個高度中心化的質押層級。
- 如果需要對低層進行隨機抽樣來批准(approve)每個區塊,那麼攻擊者只需花費極少量的 ETH 即可阻止最終確定性。
- 如果低層質押者只能製作納入清單(inclusion lists),那麼證明層可能會保持中心化,此時在證明層的 51% 攻擊可以審查納入清單本身。
可以組合多種策略,例如:
(1+2):添加 Orbit,但不進行單時隙最終確定。
(1+3):使用強力技術減少最小存款規模,而無需進行單時隙最終確定。 所需的聚合量比單純使用(3)情況少 64 倍,這樣一來問題變得更簡單了。
(2+3):使用保守參數(例如 128k 驗證者委員會而不是 8k 或 32k)執行 Orbit SSF,並使用暴力破解技術使其極其高效。
(1+4):增加彩虹質押而不執行單時隙最終確定。
它如何與路線圖中的其他部分互動?
除了其他好處之外,單時隙確定還降低了某些特定類型的多區塊 MEV 攻擊的風險。 此外,在單時隙最終確定性的世界里,需要重新設計證明者-提議者分離(PBS)方案以及其他協定內的區塊生產流程。
暴力破解策略的缺點是減少時隙時間這一目標變得更難實現了。
單一秘密領袖選舉
我們要解決什麼問題?
如今,哪個驗證者將提出下一個區塊是可以提前知道的。 這會產生一個安全漏洞:攻擊者可以監視網路,確定哪些驗證者對應哪些 IP 位址,並在驗證者即將提出區塊時對其發起 DoS 攻擊。
它是什麼,如何做到的?
解決 DoS 問題的最佳方法是隱藏哪個驗證者將生成下一個區塊的資訊,至少在區塊實際生成之前要隱藏這些資訊。 請注意,如果我們刪除「單獨」這一要求,那麼問題就簡單了:一種解決方案是讓任何人都可以創建下一個區塊,但要求 randao 揭示小於 2^256 / N。 平均而言,只有一個驗證者能夠滿足此要求 —— 但有時會有兩個或更多,有時會沒有。 將「保密」要求與「單獨」要求結合起來一直是一個難題。
單一秘密領袖選舉協議通過使用一些加密技術為每個驗證者創建一個「盲」驗證者 ID 來解決這個問題,然後讓許多提議者有機會對盲 ID 池進行改組和重新盲化(這類似於混合網路的工作方式)。 在每個時段,都會選擇一個隨機盲 ID。 只有該盲 ID 的擁有者才能生成有效的證明來提議區塊,且沒有人知道該盲 ID 對應的是哪個驗證者。
與現有研究有哪些聯繫?
- 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 的單一秘密領袖選舉標籤(Single secret leader election tag on ethresear.ch):https://ethresear.ch/tag/single-secret-leader-election
- 使用環簽名的簡化 SSLE(使用環簽名的簡化 SSLE):HTTPs://ethresear.ch/t/simplified-ssle/12315
還有什麼要做,需要權衡什麼?
現實地說,還需要做的就是找到並實現一個足夠簡單的協定,以便我們可以輕鬆地在主網上實現它。 我們高度重視保持乙太坊協定的簡易性,不希望進一步增加複雜性。 SSLE 僅用了數百行規範代碼,並在複雜的加密中引入了新的假設。 如何實現足夠有效的抗量子 SSLE 也是一個問題。
最終可能會出現這樣的情況:只有當我們出於其他原因(例如狀態樹、ZK-EVM)大膽嘗試並在 L1 的乙太坊協定中引入執行通用零知識證明的機制時,SSLE 的 “邊際額外複雜性” 才會下降到足夠低的水準。
另一種選擇是根本不理會 SSLE,而是使用協定外緩解措施(例如在 p2p 層)來解決 DoS 問題。
它如何與路線圖的其他部分互動?
如果我們添加證明者-提議者分離(APS)機制,比如執行票證,因為我們可以依賴專門的區塊構建器,那麼執行區塊(例如包含乙太坊交易的區塊)將不再需要 SSLE。 不過,對於共識區塊(包含協定消息的區塊:比如證明、可能還有納入清單的一些片段等),我們仍然可以從 SSLE 中受益。
更快的交易確認
我們要解決什麼問題?
進一步縮短乙太坊的交易確認時間(從 12 秒縮短到 4 秒)是有價值的。 這樣做將顯著改善 L1 和基於 rollups 的用戶體驗,同時使 De-Fi 協定更加高效。 它還將使 L2 更易去中心化,因為它將允許大量 L2 應用程式在 based rollups 上運作,從而減少 L2 構建自己的基於委員會的去中心化排序的需求。
它是什麼,如何做到的?
這裡大致有兩種技術:
- 減少時隙時間,降至如 8 秒或 4 秒。 這並不一定意味著 4 秒的最終確定性:最終確定性本質上需要三輪通信,因此我們可以將每輪通信設為一個單獨的區塊,這將在 4 秒後至少得到初步確認。
- 允許提議者在單時隙期間發佈預確認。 在極端情況下,提議者可以即時將他們看到的交易納入其區塊,並立即為每筆交易發佈預確認消息(“我的第一筆交易是 0×1234...”,“我的第二筆交易是 0×5678...”)。 提議者發佈兩個相互衝突的確認的情況可以通過兩種方式處理:(i)通過罰沒(slashing)提議者,或(ii)通過使用證明人(attesters)投票選出哪一個更早。
與現有研究有哪些聯繫?
- Based 預確認(Based preconfirmations):https://ethresear.ch/t/based-preconfirmations/17353
- 協議強制執行提議者承諾(PEPC,Protocol-enforced proposer commitments):https://ethresear.ch/t/unbundling-pbs-towards-protocol-enforced-proposer-commitments-pepc/13879
- 平行鏈之間的交錯週期(2018 年實現低延遲的想法)[跨並行鏈的交錯週期(2018 年實現低延遲的想法)]:https://ethresear.ch/t/staggered-periods/1793
還有什麼要做,需要權衡什麼?
目前還不清楚縮短時隙時間的可行性。 即使在今天,世界上許多地區的質押者也很難以足夠快的速度獲得證明。 4 秒時隙時間的嘗試有驗證者集中心化的風險,而且由於延遲(存在),在少數具備地理優越性的地區之外成為驗證者是不切實際的。
提議者預確認方法的弱點在於,它可以大大改善平均情況下的納入時間,但不能改善最壞情況:如果當前提議者運行良好,交易將在 0.5 秒內得到預確認,而不是(平均)6 秒內被納入。 但如果當前提議者離線或運行不佳,仍然需要等待整整 12 秒,才能開始下一個時隙並提供新的提議者。
此外,還有一個懸而未決的問題,即如何激勵預確認。 提議者有動機儘可能長時間地最大化他們的可選性。 如果見證人合時宜地簽署預確認,那麼交易發送者可以將部分費用以立即預確認為條件,但這會給見證人帶來額外的負擔,並可能使見證人更難繼續充當中立的「啞管(dumb pipe)」。
另一方面,如果我們不嘗試這樣做,並將最終確定時間保持在 12 秒(或更長時間),生態系統將更加重視 Layer 2 的預先確認機制,跨 L2 的交互將需要更長的時間。
它與路線圖的其他部分如何互動?
基於提議者的預確認實際上依賴於證明者-提議者分離(APS)機制,例如執行票。 否則,提供即時預確認的壓力可能會對常規驗證者造成過於中心化的壓力。
時隙時間到底能有多短還取決於時隙結構,這在很大程度上取決於我們最終實施的 APS、納入清單等措施。 有些時隙結構包含的輪次較少,因此對短時隙時間更友好,但它們在其他地方也做出了讓步。
其他研究領域
51% 攻擊恢復
人們通常認為,如果發生 51% 攻擊(包括無法通過加密證明的攻擊,例如審查),社區將聯合起來實施少數派軟分叉(minority soft fork),確保好人獲勝,壞人被施以 inactivity-leaked 或罰沒(slashing)。 然而,這種對社會層的過度依賴可以說是不健康的。 我們可以嘗試讓恢復過程盡可能自動化來減少對社會層的依賴。
完全自動化是不可能的,因為如果可以的話,那就相當於一個容錯率 >50% 的共識演算法,而且我們已經知道這類演算法在數學上可證明的(非常嚴格的)局限性。 但我們可以實現部分自動化:例如,一個客戶端發現,某個區塊鏈正在審查那些已經被該客戶端觀察了很長時間的交易,那麼該用戶端可以自動拒絕接受其作為分叉鏈的選項。 要實現一個關鍵目標:要確保至少壞人的攻擊不能乾脆利落地獲得勝利。
提升投票生效閾值
如今,只要有 67% 的質押者支援,區塊就會最終確定。 有人認為這種做法過於激進。 在乙太坊的整個歷史上,只發生過一次(非常短暫的)最終確定性失敗。 如果將這一比例提高到 80%,那麼增加的非最終確定性時期數量將相對較低,但乙太坊將獲得安全性:尤其是很多有爭議的情況會導致最終確定性的暫停。 這似乎比「錯誤的一方」立即獲勝要健康得多,無論是錯誤的一方是攻擊者還是用戶端。
這也回答了「獨立質押者意義何在」的問題。 如今,大多數質押者已經通過權益池進行質押,讓獨立質押者質押的 ETH 比例達到 51% 的可能性似乎很小。 但是,如果我們努力的話,讓單獨質押者達到成為能夠阻止多數派的少數派似乎是有可能實現的,特別是如果多數派達到 80%(因此阻止多數派的少數派只需要 21%)。 只要單獨質押者不參與 51% 攻擊(無論是最終確定性反轉還是審查),這種攻擊就不會是 “乾淨俐落地獲勝”,並且獨立質押者將會有動力説明組織少數派軟分叉。
需要注意的是,投票生效閾值(quorum thresholds)和 Orbit 機制之間存在相互作用:如果我們最終使用 Orbit,那麼 “'21% 的質押者' 究竟意味著什麼?” 將成為一個更複雜的問題,並且在一定程度上取決於驗證者的分佈情況。
抗量子攻擊
Metaculus 目前認為,儘管誤差很大,但量子計算機可能會在 21 世紀 30 年代的某個時候開始破解密碼學:
斯科特·阿倫森(Scott Aaronson)等量子計算專家最近也開始更加認真地考慮量子計算機在中期內實際工作的可能性。 這對整個乙太坊路線圖產生了影響:這意味著當前依賴於橢圓曲線的每個乙太坊協定部分都需要有一些基於哈希或其他抗量子的替代方案。 這特別意味著我們不能假設我們將能夠永遠依靠 BLS 聚合的優異特性來處理來自大型驗證器集的簽名。 這證明瞭在圍繞權益證明設計的性能假設中的保守主義是合理的,也是更積極地開發抗量子攻擊替代方案的原因。
免責聲明:作為區塊鏈資訊平臺,本站所發佈文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。 文章內的資訊僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。