The Surge 階段是怎樣的? DA、數據壓縮、Generalized Plasma、跨 L2 互操作性改進、在 L1 上擴展執行等......
原文:Possible futures for the Ethereum protocol, part 2: The Surge
編譯:Karen,Foresight News
封面:Photo by Shubham Dhage on Unsplash
特別鳴謝 Justin Drake、Francesco、Hsiao-wei Wang、@antonttc 和 Georgios Konstantopoulos。
起初,乙太坊的路線圖中有兩種擴容策略。 一種(參見 2015 年的一篇早期論文)是「分片」(sharding):每個節點只需要驗證和存儲一小部分交易,而不是驗證和存儲鏈中的所有交易。 其他任何點對點網路(例如 BitTorrent)也是這樣工作的,所以我們當然可以讓區塊鏈以同樣的方式工作。 另一種是 Layer2 協定:這些網路將位於乙太坊之上,使其能夠充分受益於其安全性,同時使大部分數據和計算保持在主鏈之外。 Layer2 協定是指 2015 年的 state channels,2017 年的 Plasma,然後是 2019 年的 Rollup。 Rollup 比 state channels 或 Plasma 更強大,但它們需要大量的鏈上數據頻寬。 幸運的是,到 2019 年,分片研究已經解決了大規模驗證「數據可用性」的問題。 結果,兩條路徑融合在一起,我們得到了以 Rollup 為中心的路線圖,該路線圖今天仍然是乙太坊的擴展策略。
以 Rollup 為中心的路線圖提出了一個簡單的分工:乙太坊 L1 專注於成為一個強大且去中心化的基礎層,而 L2 則承擔説明生態系統擴展的任務。 這種模式在社會上無處不在:法院系統(L1)的存在不是為了追求超高速和高效,而是為了保護合同和財產權,而創業者(L2)則要在這一穩固的基礎層之上進行建設,帶領人類走向(無論是字面還是比喻意義上的)火星。
今年,以 Rollup 為中心的路線圖取得了重要成果:隨著 EIP-4844 blobs 的推出,乙太坊 L1 的數據頻寬大幅增加,多個乙太坊虛擬機(EVM)Rollup 已進入第一階段。 每個 L2 都作為具有自身內部規則和邏輯的「分片」存在,分片實現方式的多樣性和多元化如今已成為現實。 但正如我們所見,走這條路也面臨著一些獨特的挑戰。 因此,我們現在的任務是完成以 Rollup 為中心的路線圖,並解決這些問題,同時保持乙太坊 L1 所特有的穩健性和去中心化。
- The Surge:關鍵目標
- 本章內容
- 可擴展性三角悖論
- 數據可用性採樣的進一步進展
- 數據壓縮
- Generalized Plasma
- 成熟的 L2 證明系統
- 跨 L2 互操作性改進
- 我們正在解決什麼問題?
- 它是什麼? 如何工作?
- 有哪些與現有研究的連結?
- 鏈特定位址:ERC-3770:https://eips.ethereum.org/EIPS/eip-3770
- ERC-7683:https://eips.ethereum.org/EIPS/eip-7683
- RIP-7755: https://github.com/wilsoncusack/RIPs/blob/cross-l2-call-standard/RIPS/rip-7755.md
- Scroll keystore 錢包設計式樣: https://hackmd.io/@haichen/keystore
- Helios: https://github.com/a16z/helios
- ERC-3668(有時稱為 CCIP 讀取):https://eips.ethereum.org/EIPS/eip-3668
- Justin Drake 提出的「基於(共用)預先確認」提案:https://ethresear.ch/t/based-preconfirmations/17353
- L1SLOAD(RIP-7728):https://ethereum-magicians.org/t/rip-7728-l1sload-precompile/20388
- REMOTESTATIC https://github.com/ethereum-optimism/ecosystem-contributions/issues/76 調用
- AggLayer,其中包括共用代幣橋的想法:https://github.com/AggLayer
- 還需做什麼? 有哪些權衡?
- 如何與路線圖的其他部分交互?
- 在 L1 上擴展執行
The Surge:關鍵目標
1、未來乙太坊通過 L2 可以達到 10 萬以上的 TPS;
2、保持 L1 的去中心化和魯棒性;
3、至少一些 L2 完全繼承了乙太坊的核心屬性(去信任、開放、抗審查);
4、乙太坊應該感覺像一個統一的生態系統,而不是 34 個不同的區塊鏈。
本章內容
- 可擴展性三角悖論
- 數據可用性採樣的進一步進展
- 數據壓縮
- Generalized Plasma
- 成熟的 L2 證明系統
- 跨 L2 互操作性改進
- 在 L1 上擴展執行
可擴展性三角悖論
可擴展性三角悖論是 2017 年提出的一個想法,它認為區塊鏈的三個特性之間存在矛盾:去中心化(更具體地說:運行節點的成本低)、可擴充性(處理的交易數量多)和安全性(攻擊者需要破壞網路中很大一部分節點才能使單筆交易失敗)。
值得注意的是,三角悖論不是一個定理,介紹三角悖論的帖子也沒有附帶數學證明。 它確實給出了一個啟發式的數學論點:如果一個去中心化友好的節點(例如消費類筆記型電腦)每秒可以驗證 N 筆交易,並且你有一個每秒處理 k*N 筆交易的鏈,那麼(i)每筆交易只能被 1/k 個節點看到,這意味著攻擊者只需破壞少數節點就能通過一筆惡意交易, 或(ii)你的節點將變得強大,而你的鏈不會去中心化。 這篇文章的目的從不是證明打破三角悖論論是不可能的; 相反,它旨在表明打破三元悖論是困難的,它需要在某種程度上跳出該論證所隱含的思維框架。
多年來,一些高性能鏈常聲稱它們在不從根本上改變架構的情況下就解決了三元悖論,通常是通過運用軟體工程技巧來優化節點。 這總是具有誤導性的,在這些鏈上運行節點比在乙太坊上運行節點要困難得多。 本篇文章將探討為何會如此,以及為什麼僅憑 L1 用戶端軟體工程本身無法擴展乙太坊?
然而,數據可用性採樣與 SNARKs 的結合確實解決了三角悖論:它允許用戶端在僅下載少量數據並執行極少量計算的情況下,驗證一定數量的數據是可用的,並且一定數量的計算步驟是正確執行的。 SNARKs 是無需信任的。 數據可用性採樣具有一種微妙的 few-of-N 信任模型,但它保留了不可擴容鏈所具有的基本特性,即即使是 51% 的攻擊也無法強制壞塊被網路接受。
解決三難困境的另一種方法是 Plasma 架構,它使用巧妙的技術,以激勵相容的方式將監視數據可用性的責任推給使用者。 早在 2017-2019 年,當我們只有欺詐證明這一手段來擴展計算能力時,Plasma 在安全執行方面非常受限,但隨著 SNARKs(零知識簡潔非互動式論證)的普及,Plasma 架構對於比以往更廣泛的使用場景變得更加可行。
數據可用性採樣的進一步進展
我們正在解決什麼問題?
2024 年 3 月 13 日,當 Dencun 升級上線時,乙太坊區塊鏈每 12 秒的 slot 有 3 個約 125 kB blob,或每個 slot 的數據可用頻寬約 375 kB。 假設交易數據直接在鏈上發佈,則 ERC20 轉帳約為 180 位元組,因此乙太坊上 Rollup 的最大 TPS 為:375000 / 12 / 180 = 173.6 TPS
如果我們加上乙太坊的 calldata(理論最大值:每個 slot 3000 萬 Gas / 每位元組 16 gas = 每個 slot 1,875,000 位元節),則變為 607 TPS。 使用 PeerDAS,blob 數量可能會增加到 8-16,這將為 calldata 提供 463-926 TPS。
這是對乙太坊 L1 的重大提升,但還不夠。 我們想要更多的可擴充性。 我們的中期目標是每個 slot 16 MB,如果結合 Rollup 數據壓縮的改進,將帶來 ~58000 TPS。
它是什麼? 如何運行?
PeerDAS 是「1D sampling」的一個相對簡單的實現。 在乙太坊中,每個 blob 都是一個在 253 位素數域(prime field)上的 4096 次多項式(polynomial)。 我們廣播多項式的 shares,其中每個 shares 包含從總共 8192 個座標中相鄰的 16 個座標上的 16 個評估值。 在這 8192 個評估值中,任何 4096 個(根據當前提出的參數:128 個可能樣本中的任何 64 個)都可以恢復 blob。
PeerDAS 的工作原理是讓每個用戶端偵聽少量子網,其中第 i 個子網廣播任何 blob 的第 i 個樣本,並通過詢問全球 p2p 網路中的對等方(誰將偵聽不同的子網)來請求它需要的其他子網上的 blob。 更保守的版本 SubnetDAS 僅使用子網機制,而沒有額外的詢問對等層。 當前的提案是讓參與權益證明的節點使用 SubnetDAS,而其他節點(即客戶)使用 PeerDAS。
從理論上講,我們可以將一「1D sampling」規模擴展得相當大:如果我們將 blob 的最大數量增加到 256(目標為 128),那麼我們就能達到 16MB 的目標,而數據可用性採樣中每個節點 16 個樣本 * 128 個 blob * 每個 blob 每個樣本 512 位元組 = 每個 slot 1 MB 的數據頻寬。 這隻是勉強在我們的容忍範圍內:這是可行的,但這意味著頻寬受限的客戶端無法採樣。 我們可以通過減少 blob 數量和增加 blob 大小來對此進行一定程度的優化,但這會使重建成本更高。
因此,我們最終想要更進一步,進行 2D 採樣(2D sampling),這種方法不僅在 blob 內進行隨機抽樣,還在 blob 之間進行隨機抽樣。 利用 KZG 承諾的線性屬性,通過一組新的虛擬 blob 來擴展一個區塊中的 blob 集,這些虛擬 blob 冗餘地編碼了相同的資訊。
因此,最終我們想更進一步,進行 2D 採樣,它不僅在 blob 內,而且在 blob 之間進行隨機採樣。 KZG 承諾的線性屬性用於擴展一個區塊中的 blob 集,其中包含對相同資訊進行冗餘編碼的新虛擬 blob 清單。
2D 採樣。 資料來源:a16z crypto
至關重要的是,計算承諾的擴展並不需要有 blob,因此該方案從根本上來說對分散式區塊構建是友好的。 實際構建區塊的節點只需要擁有 blob KZG 承諾,並且它們可以依賴數據可用性採樣(DAS)來驗證數據塊的可用性。 一維數據可用性採樣(1D DAS)本質上也對分散式塊構建友好。
有哪些與現有研究的連結?
- 介紹數據可用性的原始帖子(2018):HTTPs://github.com/ethereum/research/wiki/A-note-on-data-availability-and-erasure-coding
- Follow-up paper: https://arxiv.org/abs/1809.09044
- 關於 DAS 的解釋文章,paradigm:HTTPs://www.paradigm.xyz/2022/08/das
- 帶有 KZG 承諾的 2D 可用性:https://ethresear.ch/t/2d-data-availability-with-kate-commitments/8081
- ethresear.ch 上的 PeerDAS:https://ethresear.ch/t/peerdas-a-simpler-das-approach-using-battle-tested-p2p-components/16541 和論文:https://eprint.iacr.org/2024/1362
- EIP-7594: https://eips.ethereum.org/EIPS/eip-7594
- ethresear.ch 上的 SubnetDAS:https://ethresear.ch/t/subnetdas-an-intermediate-das-approach/17169
- 2D 採樣中可恢復性的細微差別:https://ethresear.ch/t/nuances-of-data-recoverability-in-data-availability-sampling/16256
還需做什麼? 又有哪些權衡?
接下來是完成 PeerDAS 的實施和推出。 之後,不斷增加 PeerDAS 上的 blob 數量,同時仔細觀察網路並改進軟體以確保安全,這是一個漸進的過程。 同時,與此同時,我們希望有更多的學術工作來規範 PeerDAS 和其他版本的 DAS 及其與分叉選擇規則安全等問題的交互。
在未來更遠的階段,我們需要做更多的工作來確定 2D DAS 的理想版本,並證明其安全屬性。 我們還希望最終能夠從 KZG 轉向一種量子安全且無需可信設置的替代方案。 目前,我們還不清楚有哪些候選方案對分散式區塊構建是友好的。 即使使用昂貴的「蠻力」技術,即使用遞歸 STARK 來生成用於重建行和列的有效性證明,也不足以滿足需求,因為雖然從技術上講,一個 STARK 的大小為 O(log(n)* log(log(n))哈希值(使用 STIR),但實際上 STARK 幾乎與整個 blob 一樣大。
我認為的長期現實路徑是:
- 實施理想的 2D DAS;
- 堅持使用 1D DAS,犧牲採樣頻寬效率,為了簡單性和魯棒性而接受較低的數據上限
- (Hard pivot)放棄 DA,完全接受 Plasma 作為我們關注的主要 Layer2 架構。
請注意,即使我們決定直接在 L1 層擴展執行,這種選擇也是存在的。 這是因為如果 L1 層要處理大量的 TPS,L1 區塊將變得非常大,用戶端將希望有一種高效的方法來驗證它們的正確性,因此我們將不得不在 L1 層使用與 Rollup(如 ZK-EVM 和 DAS)相同的技術。
如何與路線圖的其他部分交互?
如果實現數據壓縮,對 2D DAS 的需求會有所減少,或者至少會延遲,如果 Plasma 被廣泛使用,則需求會進一步減少。 DAS 也對分散式區塊構建協議和機制提出了挑戰:雖然 DAS 理論上對分散式重建友好,但這在實踐中需要與包 inclusion list 提案及其周圍的分叉選擇機制相結合。
數據壓縮
我們在解決什麼問題?
Rollup 中的每筆交易都會佔用大量的鏈上數據空間:ERC20 傳輸大約需要 180 位元組。 即使有理想的數據可用性採樣,這也限制了 Layer 協定的可擴充性。 每個 slot 16 MB,我們得到:
16000000 / 12 / 180 = 7407 TPS
如果我們不僅能解決分子的問題,還能解決分母的問題,讓每個 Rollup 中的交易在鏈上佔用更少的位元組,那會怎樣?
它是什麼,如何工作?
在我看來,最好的解釋是兩年前的這張圖:
零位元組壓縮中,用兩個字節替換每個長的零位元組序列,表示有多少個零位元組。 更進一步,我們利用了交易的特定屬性:
簽名聚合:我們從 ECDSA 簽名切換到 BLS 簽名,BLS 簽名的特性是多個簽名可以組合成一個單一的簽名,該簽名可以證明所有原始簽名的有效性。 在 L1 層中,由於即使進行聚合,驗證的計算成本也較高,因此不考慮使用 BLS 簽名。 但在 L2 這樣數據稀缺的環境中,使用 BLS 簽名是有意義的。 ERC-4337 的聚合特性為實現這一功能提供了一條途徑。
用 pointers 替換位址:如果以前使用過某個位址,我們可以將 20 位元組的位址替換為指向歷史記錄中某個位置的 4 位元組 pointer。
交易值的自定義序列化——大多數交易值的位數很少,例如,0.25 ETH 表示為 250,000,000,000,000,000 wei。 最大基礎手續費和優先手續費也類似。 因此,我們可以使用自定義的十進位浮點格式,來表示大多數貨幣值。
有哪些與現有研究的連結?
- 探索 sequence.xyz:https://sequence.xyz/blog/compressing-calldata
- L2 Calldata 優化合約:https://github.com/ScopeLift/l2-optimizoooors
- 基於有效性證明的 Rollups(又名 ZK rollups)發佈狀態差異而不是交易:https://ethresear.ch/t/rollup-diff-compression-application-level-compression-strategies-to-reduce-the-l2-data-footprint-on-l1/9975
- BLS 錢包 - 通過 ERC-4337 實現 BLS 聚合:https://github.com/getwax/bls-wallet
還需做什麼,有哪些權衡?
接下來主要要做的是實際實現上述方案。 主要的權衡包括:
1、切換到 BLS 簽名需要付出很大努力,並且會降低與能夠增強安全性的可信硬體晶片的相容性。 可以使用其他簽名方案的 ZK-SNARK 封裝來替代它。
2、動態壓縮(例如,用 pointers 替換位址)會使用戶端代碼變得複雜。
3、將狀態差異發佈到鏈上而不是交易,會降低可審計性,並使很多軟體(例如區塊瀏覽器)無法工作。
如何與路線圖的其他部分交互?
採用 ERC-4337,並最終將其部分內容納入 L2 EVM 中,可以大大加快聚合技術的部署。 將 ERC-4337 的部分內容放在 L1 上可以加快其在 L2 上的部署。
Generalized Plasma
我們正在解決什麼問題?
即使使用 16 MB 的 blob 和數據壓縮,58,000 TPS 也未必足以完全滿足消費者支付、去中心化社交或其他高頻寬領域的需求,尤其是當我們開始考慮隱私因素時,這可能會使可擴充性降低 3-8 倍。 對於高交易量、低價值的應用場景,目前的一種選擇是使用 Validium,它將數據保存在鏈下,並採用了一種有趣的安全模型:運營商無法竊取用戶的資金,但他們可能會暫時或永久凍結所有用戶的資金。 但我們可以做得更好。
它是什麼,如何工作?
Plasma 是一種擴容解決方案,它涉及到一個運營商將區塊發佈到鏈下,並將這些區塊的 Merkle 根放到鏈上(與 Rollup 不同,Rollup 會將完整的區塊放到鏈上)。 對於每個區塊,運營商會向每個用戶發送一個 Merkle 分支來證明該用戶的資產發生了什麼變化,或者沒有發生什麼變化。 用戶可以通過提供 Merkle 分支來提取他們的資產。 重要的是,這個分支不必以最新狀態為根。 因此,即使數據可用性出現問題,使用者仍然可以通過提取他們可用的最新狀態來恢復他們的資產。 如果使用者提交了一個無效的分支(例如,提取他們已經發送給其他人的資產,或者運營商自己憑空創造了一個資產),則可以通過鏈上的挑戰機制來判斷資產的合法歸屬。
Plasma Cash chain 圖。 花費硬幣 i 的交易被放在 tree 中的第 i 個位置。 在此示例中,假設所有先前的 tree 都有效,我們知道 Eve 當前擁有代幣 1,David 擁有代幣 4,George 擁有代幣 6。
早期的 Plasma 版本僅能處理支付用例,無法有效地進一步推廣。 然而,如果我們要求每個根都用 SNARK 進行驗證,那麼 Plasma 就會變得強大得多。 每個挑戰遊戲都可以大大簡化,因為我們排除了運營商作弊的大部分可能路徑。 同時,也開闢了新的路徑,使 Plasma 技術能夠擴展到更廣泛的資產類別。 最後,在運營商不作弊的情況下,使用者可以立即提取資金,而無需等待一周的挑戰期。
製作 EVM Plasma 鏈的一種方法(不是唯一的方法):使用 ZK-SNARK 構建一個並行的 UTXO 樹,該 tree 反映了 EVM 所做的餘額變化,並定義了在歷史不同時間點的「同一代幣」的唯一映射。 然後可以在其上構建 Plasma 結構。
一個關鍵的見解是,Plasma 系統並不需要完美。 即使你只能保護資產的子集(例如,僅僅是過去一周內未移動的代幣),你也已經大大改善了當前超可擴展 EVM(即 Validium)的現狀。
另一類結構是是混合 Plasma/Rollup,例如 Intmax。 這些構造將每個使用者的極少量數據放到鏈上(例如,5 個字節),這樣做可以獲得介於 Plasma 和 Rollup 之間的某些特性:在 Intmax 的情況下,你可以獲得非常高的可擴展性和隱私性,儘管即使在 16 MB 的容量中,理論上也限制在大約 16,000,000 / 12 / 5 = 266,667 TPS 之間。
有哪些與現有研究相關的連結?
- Original Plasma paper: https://plasma.io/plasma-deprecated.pdf
- Plasma Cash: https://ethresear.ch/t/plasma-cash-plasma-with-much-less-per-user-data-checking/1298
- Plasma 現金流:https://hackmd.io/DgzmJIRjSzCYvl4lUjZXNQ?view# -退出
- Intmax (2023): https://eprint.iacr.org/2023/1082
還需做什麼? 有哪些權衡?
剩下的主要任務是將 Plasma 系統投入實際生產應用。 如上所述 Plasma 與 Validium“ 並非是一個非此即彼的選擇:任何 Validium 都可以通過在其退出機制中融入 Plasma 特性來至少在一定程度上提升其安全屬性。 研究的重點在於為 EVM 獲得最佳屬性(從信任需求、最壞情況下的 L1 Gas 成本以及抵禦 DoS 攻擊的能力等方面考慮),以及替代的特定應用結構。 此外,相對於 Rollup,Plasma 在概念上的複雜性更高,這需要通過研究和構建更好的通用框架來直接解決。
使用 Plasma 設計的主要權衡在於它們更多地依賴於運營商,並且更難 based,儘管混合 Plasma/Rollup 設計通常可以避免這一弱點。
如何與路線圖的其他部分交互?
Plasma 解決方案越有效,L1 具有高性能數據可用性功能的壓力就越小。 將活動移至 L2 還可以減少 L1 上的 MEV 壓力。
成熟的 L2 證明系統
我們正在解決什麼問題?
目前,大多數 Rollup 實際上還不是去信任的。 存在一個安全委員會,它有能力 override(optimistic 或 validity)證明系統的行為。 在某些情況下,證明系統甚至完全不運行,或者即使運行,也僅具有「諮詢」功能。 最先進的 Rollup 包括:(i)一些去信任的應用特定 Rollup,如 Fuel;(ii)截至本文撰寫之時,Optimism 和 Arbitrum 是兩個實現了被稱為「第一階段」的部分無需信任里程碑的全 EVM Rollup。 Rollup 未能取得更大進展的原因是擔心代碼中存在 bug。 我們需要無需信任的 Rollup,因此必須直面並解決這個問題。
它是什麼,如何工作?
首先,讓我們回顧一下本文中最初介紹的「stage」系統。
階段 0:用戶必須能夠運行節點並同步鏈。 如果驗證是完全可信 / 集中的,那也沒關係。
階段 1:必須有一個(無需信任的)證明系統,確保只有有效的交易才會被接受。 允許有一個可以推翻證明系統的安全委員會,但必須有 75% 的門檻投票。 此外,委員會中 quorum-blocking 部分(即 26%+)必須在構建 Rollup 的主公司之外。 允許使用功能較弱的升級機制(例如 DAO),但它必須有足夠長的延遲,如果它批准了惡意升級,用戶可以在資金上線之前撤出他們的資金。
階段 2:必須有一個(無需信任的)證明系統,確保只有有效的交易才會被接受。 安全委員會只允許在代碼中存在可證明的錯誤時進行干預,例如。 如果兩個冗餘的證明系統彼此不一致,或者如果一個證明系統接受同一個區塊的兩個不同的後 post-state 根(或在足夠長的時間內不接受任何內容,例如一周)。 允許使用升級機制,但必須具有很長的延遲。
我們的目標是達到第 2 階段。 達到第 2 階段的主要挑戰是獲得足夠的信心,證明系統實際上足夠值得信賴。 有兩種主要方法可以執行此操作:
- 形式化驗證:我們可以使用現代數學和計算技術來證明(optimistic 和 validity)證明系統只接受通過 EVM 規範的區塊。 這些技術已經存在了幾十年,但最近的進步(如 Lean 4)使它們更加實用,而 AI 輔助證明的進步可能會進一步加速這一趨勢。
- 多證明(Multi-provers):製作多個證明系統,並將資金投入這些證明系統與安全委員會(或其他具有信任假設的小工具,例如 TEE)。 如果證明系統同意,安全委員會就沒有權力; 如果他們不同意,安全委員會只能在其中之一之間做出選擇,它不能單方面強加自己的答案。
有哪些與現有研究的連結?
- EVM K Semantics (formal verification work from 2017): https://github.com/runtimeverification/evm-semantics
- 關於多證明思想的演講(2022):HTTPs://www.youtube.com/watch?v=6hfVzCWT6YI
- Taiko 計劃使用多重證明:https://docs.taiko.xyz/core-concepts/multi-proofs/
還需做什麼? 有哪些權衡?
對於形式化驗證來說,工作量很大。 我們需要創建一個 EVM 的整個 SNARK 證明者的正式驗證版本。 這是一個極其複雜的專案,儘管我們已經開始進行了。 有一個技巧可以大大簡化這項任務:我們可以為一個最小化的虛擬機(例如 RISC-V 或 Cairo)創建一個經過形式化驗證的 SNARK 證明器,然後在該最小化虛擬機中實現 EVM(並形式化證明它與其他乙太坊虛擬機規範的等效性)。
對於多證明而言,還有兩個主要的部分尚未完成。 首先,我們需要對至少兩個不同的證明系統有足夠的信心,既要確保它們各自都相當安全,也要確保如果它們出現問題,那麼這些問題應該是不同且不相關的(因此它們不會同時出現問題)。 其次,我們需要對合併證明系統的底層邏輯有非常高的信任度。 這部分代碼要少得多。 有一些方法可以使其非常小,只需將資金存儲在一個由代表各個證明系統的合約作為簽署者的安全多簽(Safe multisig)合約中,但這會增加鏈上的 Gas 成本。 我們需要在效率和安全性之間找到某種平衡。
如何與路線圖的其他部分交互?
將活動移至 L2 可降低 L1 上的 MEV 壓力。
跨 L2 互操作性改進
我們正在解決什麼問題?
當今 L2 生態系統面臨的一個主要挑戰是用戶難以在其中導航。 此外,最簡便的方法通常又會重新引入信任假設:中心化跨鏈、RPC 用戶端等等。 我們需要讓使用 L2 生態系統的感覺就像是在使用一個統一的乙太坊生態系統一樣。
它是什麼? 如何工作?
跨 L2 互操作性改進有很多類別。 從理論上講,以 Rollup 為中心的乙太坊與執行分片 L1 是一回事。 當前乙太坊 L2 生態系統在實踐中距離理想狀態還有這些不足:
1、特定鏈的位址:位址中應包含鏈資訊(L1、Optimism、Arbitrum......)。 一旦實現這一點,就可以通過簡單地將位址放入「發送」字段來實現跨 L2 發送流程,此時錢包可以在後台自行處理如何發送(包括使用跨鏈協定)。
2、特定鏈的支付請求:應能夠輕鬆且標準化地創建形式為「在鏈 Z 上向我發送 X 個 Y 類型的代」的消息。 這主要有兩個應用場景:(i)無論是人與人之間的支付還是人與商戶服務之間的支付;(ii)DApp 請求資金。
3、跨鏈兌換和 Gas 支付:應有一個標準化的開放協定來表達跨鏈操作,如「我將向在 Arbitrum 上向我發送 0.9999 個乙太幣的人發送 1 個乙太幣(在 Optimism 上)」,以及「我將向在 Arbitrum 上包含此交易的人發送 0.0001 個乙太幣(在 Optimism 上)」。 ERC-7683 是對前者的嘗試,而 RIP-7755 是對後者的嘗試,儘管這兩者的應用範圍都比這些特定用例更廣。
4、輕用戶端:用戶應能夠實際驗證他們正在交互的鏈,而不僅僅是信任 RPC 供應商。 a16z crypto 的 Helios 可以做到這一點(針對乙太坊本身),但我們需要將這種去信任性擴展到 L2 上。 ERC-3668(CCIP-read)是實現這一目標的一種策略。
輕用戶端如何更新其 Ethereum header chain 的檢視。 擁有 header chain 後,可以使用 Merkle 證明來驗證任何狀態物件。 一旦你有了正確的 L1 狀態物件,就可以使用 Merkle 證明(如果你想檢查預確認,還可以使用簽名)來驗證 L2 上的任何狀態物件。 Helios 已經做到了前者。 擴展到後者是一項標準化挑戰。
1、Keystore 錢包:如今,如果你想更新控制你的智慧合約錢包的密鑰,你必須在該錢包存在的所有 N 條鏈上都進行更新。 Keystore 錢包是一種技術,它允許密鑰只存在於一個地方(要麼在 L1 上,要麼以後可能在 L2 上),然後任何擁有錢包副本的 L2 都可以從中讀取密鑰。 這意味著更新只需進行一次。 為了提高效率,Keystore 錢包要求 L2 具有一種標準化的方式來無成本地讀取 L1 上的資訊; 對此有兩個提案,分別是 L1SLOAD 和 REMOTESTATICCALL。
2、更激進的「共用代幣橋」理念:想像一下,在一個所有 L2 都是有效性證明 Rollup 且每個 slot 都向乙太坊提交的世界。 即使在這樣的世界中,要在原生狀態下將一個 L2 的資產轉移到另一個 L2,仍然需要提現和存款,這需要支付大量的 L1 Gas 費。 解決這一問題的一種方法是創建一個共用的極簡 Rollup,它的唯一功能就是維護每種類型的代幣由哪個 L2 擁有以及各擁有多少餘額,並允許這些餘額通過任何 L2 發起的一系列跨 L2 發送操作進行批量更新。 這將使得跨 L2 轉帳無需每次轉帳都支付 L1 燃氣費,也無需使用如 ERC-7683 等基於流動性提供者的技術。
3、同步組合性:允許在特定 L2 與 L1 之間或多個 L2 之間發生同步調用。 這有助於提高 DeFi 協議的財務效率。 前者可以在沒有任何跨 L2 協調的情況下實現; 後者則需要共用排序。 基於 Rollup 的技術自動適用於所有這些技術。
有哪些與現有研究的連結?
鏈特定位址:ERC-3770:https://eips.ethereum.org/EIPS/eip-3770
ERC-7683:https://eips.ethereum.org/EIPS/eip-7683
RIP-7755: https://github.com/wilsoncusack/RIPs/blob/cross-l2-call-standard/RIPS/rip-7755.md
Scroll keystore 錢包設計式樣: https://hackmd.io/@haichen/keystore
Helios: https://github.com/a16z/helios
ERC-3668(有時稱為 CCIP 讀取):https://eips.ethereum.org/EIPS/eip-3668
Justin Drake 提出的「基於(共用)預先確認」提案:https://ethresear.ch/t/based-preconfirmations/17353
L1SLOAD(RIP-7728):https://ethereum-magicians.org/t/rip-7728-l1sload-precompile/20388
REMOTESTATIC https://github.com/ethereum-optimism/ecosystem-contributions/issues/76 調用
AggLayer,其中包括共用代幣橋的想法:https://github.com/AggLayer
還需做什麼? 有哪些權衡?
上面的許多示例都面臨著何時標準化以及標準化哪些層的標準困境。 如果標準化過早,可能會使一個較差的解決方案根深蒂固。 如果標準化過晚,則可能會造成不必要的碎片化。 在某些情況下,既存在一種屬性較弱但更容易實施的短期解決方案,也存在一種「最終正確」但需要數年時間才能實現的長期解決方案。
這些任務不僅僅是技術問題,它們也是(甚至可能主要是)社會問題,需要 L2 和錢包以及 L1 合作。
如何與路線圖的其他部分交互?
這些提案中的大多數都是「更高層」結構,因此對 L1 層面的考慮影響不大。 一個例外是共用排序,它對最大可提取價值(MEV)有著重大影響。
在 L1 上擴展執行
我們正在解決什麼問題?
如果 L2 變得非常可擴展和成功,但 L1 仍然只能處理非常少量的交易量,那麼乙太坊可能會出現許多風險:
1、ETH 資產的經濟狀況將變得更加不穩定,這反過來又會影響網路的長期安全性。
2、許多 L2 受益於與 L1 上高度發達的金融生態系統的緊密聯繫,如果這個生態系統大大削弱,那麼成為 L2(而不是成為獨立的 L1)的激勵就會減弱。
3、L2 要達到與 L1 完全相同的安全保障還需要很長時間。
4、如果 L2 失敗(例如,由於運營商的惡意行為或消失),使用者仍然需要通過 L1 來恢復他們的資產。 因此,L1 需要足夠強大,至少能夠偶爾實際處理 L2 高度複雜且混亂的收尾工作。
出於這些原因,繼續擴展 L1 本身,並確保它能夠繼續容納越來越多的用例,這是非常有價值的。
它是什麼? 如何工作?
最簡單的擴展方式是直接增加 Gas 上限。 然而,這可能會使 L1 趨於中心化,從而削弱乙太坊 L1 如此強大的另一個重要特性:作為穩健基礎層的可信度。 關於簡單增加 Gas 上限到何種程度是可持續的,目前仍存在爭議,而這也會因實施哪些其他技術來使更大區塊的驗證變得更容易(例如,歷史過期、無狀態、L1 EVM 有效性證明)而有所不同。 另一件需要持續改進的重要事情是以太坊客戶端軟體的效率,如今的效率遠比五年前要高得多。 有效的 L1 Gas 上限增加策略將涉及加速這些驗證技術的發展。
- EOF:一種新的 EVM 位元組碼格式,對靜態分析更友好,可實現更快的實現。 考慮到這些效率提升,EOF 位元組碼可以獲得更低的 gas 費用。
- 多維 Gas 定價:為計算、數據和存儲分別設定不同的基本費用和限制,可以在不增加最大容量的情況下提高乙太坊 L1 的平均容量(從而避免產生新的安全風險)。
- 降低特定操作碼和預編譯的 Gas 成本 - 從歷史上看,為了避免拒絕服務攻擊,我們曾多次增加某些定價過低的操作的 Gas 成本。 可以做得更多的一點是,降低定價過高的操作碼的 Gas 費用。 例如,加法比乘法便宜得多,但目前 ADD 和 MUL 操作碼的費用卻相同。 我們可以降低 ADD 的費用,甚至讓 PUSH 等更簡單的操作碼的費用更低。 EOF 整體上在這方面更為優化。
- EVM-MAX 和 SIMD:EVM-MAX 是一項提案,允許更高效的原生大數模數學作為 EVM 的單獨模組。 除非有意匯出,否則 EVM-MAX 計算計算的值只能由其他 EVM-MAX 操作碼訪問。 這允許有更大的空間以優化格式存儲這些值。 SIMD(single instruction multiple data)是一種允許對值陣列有效執行相同指令的提案。 兩者一起可以在 EVM 旁邊創建一個強大的協處理器,可用於更高效地實現加密操作。 這對於隱私協定和 L2 防護系統特別有用,因此它將有助於 L1 和 L2 擴展。
這些改進將在以後的 Splurge 文章中更詳細地討論。
最後,第三種策略是原生 Rollups(或 enshrined rollups):本質上,創建許多並行運行的 EVM 副本,從而產生一個等同於 Rollup 可以提供的模型,但更多地原生集成到協定中。
有哪些與現有研究的連結?
- Polynya 的乙太坊 L1 擴展路線圖:https://polynya.mirror.xyz/epju72rsymfB-JK52_uYI7HuhJ-W_zM735NdP7alkAQ
- 多維 Gas 定價:https://vitalik.eth.limo/general/2024/05/09/multidim.html
- EIP-7706: https://eips.ethereum.org/EIPS/eip-7706
- EOF: https://evmobjectformat.org/
- EVM-MAX: https://ethereum-magicians.org/t/eip-6601-evm-modular-arithmetic-extensions-evmmax/13168
- SIMD: https://eips.ethereum.org/EIPS/eip-616
- Native rollups: https://mirror.xyz/ohotties.eth/P1qSCcwj2FZ9cqo3_6kYI4S2chW5K5tmEgogk6io1GE
- Max Resnick 採訪中關於擴展 L1 的價值:https://x.com/BanklessHQ/status/1831319419739361321
- Justin Drake 談使用 SNARK 和原生 Rollups 進行擴展:https://www.reddit.com/r/ethereum/comments/1f81ntr/comment/llmfi28/
還需做什麼,有哪些權衡?
L1 擴展有三種策略,可以單獨或並行進行:
- 改進技術(例如用戶端代碼、無狀態客戶端、歷史過期)以使 L1 更易於驗證,然後提高 Gas 限制。
- 降低特定操作的成本,在不增加最壞情況風險的情況下增加平均容量;
- 原生 Rollups(即,創建 EVM 的 N 個並行副本)。
瞭解了這些不同的技術,我們會發現各有不同的權衡取捨。 例如,原生 Rollups 在組合性方面存在許多與普通 Rollups 相同的弱點:你不能發送一個單一交易來跨多個 Rollup 同步執行操作,就像你可以在同一個 L1(或 L2)上的合約中做的那樣。 提高 Gas 上限會削弱通過簡化 L1 驗證可以實現的其他好處,比如增加運行驗證節點的使用者比例,以及增加 solo 質押者數量。 根據實現方式的不同,使 EVM(乙太坊虛擬機)中的特定操作更便宜可能會增加 EVM 的整體複雜性。
任何 L1 擴容路線圖都需要回答的一個重大問題是:L1 和 L2 的最終願景分別是什麼? 顯然,把所有內容都放在 L1 上是荒謬的:潛在的應用場景可能涉及每秒數十萬筆交易,這將使 L1 完全無法進行驗證(除非我們採用原生 Rollup 的方式)。 但我們確實需要一些指導原則,以確保我們不會陷入這樣一種境地:Gas 上限提高 10 倍,嚴重損害乙太坊 L1 的去中心化。
如何與路線圖的其他部分交互?
將更多使用者引入 L1 不僅意味著要提升擴展,還意味著要改善 L1 的其他方面。 這意味著更多的 MEV 將留在 L1 上(而不是僅僅成為 L2 的問題),因此,明確處理 MEV 的需求將變得更加迫切。 這將極大地提升 L1 上快速 slot 時間的價值。 同時,這也極大地依賴於 L1(the Verge)驗證的順利進行。
免責聲明:作為區塊鏈資訊平臺,本站所發佈文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。 文章內的資訊僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。