作者:Vitalik Buterin
編輯:Karen,Foresight News
特別鳴謝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 為中心的路線圖,該路線圖今天仍然是以太坊的擴展策略。
The Surge,2023 路線圖版
以Rollup 為中心的路線圖提出了一個簡單的分工:以太坊L1 專注於成為一個強大且去中心化的基礎層,而L2 則承擔幫助生態系統擴展的任務。這種模式在社會上無所不在:法院系統(L1)的存在不是為了追求超高速和高效,而是為了保護合約和財產權,而創業者(L2)則要在這穩固的基礎層之上進行建設,帶領人類走向(無論是字面上還是比喻意義上的)火星。
今年,以Rollup 為中心的路線圖取得了重要成果:隨著EIP-4844 blobs 的推出,以太坊L1 的資料頻寬大幅增加,多個以太坊虛擬機(EVM)Rollup 已進入第一階段。每個L2 都以具有自身內部規則和邏輯的「分片」存在,分片實現方式的多樣性和多元化如今已成為現實。但正如我們所見,走這條路也面臨一些獨特的挑戰。因此,我們現在的任務是完成以Rollup 為中心的路線圖,並解決這些問題,同時保持以太坊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,犧牲採樣頻寬效率,為了簡單性和穩健性而接受較低的資料上限
- 放棄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 Cashflow: https://hackmd.io/DgzmJIRjSzCYvl4lUjZXNQ?view#🚪-Exit
- Intmax (2023): https://eprint.iacr.org/2023/1082
還需做什麼?有哪些權衡?
剩下的主要任務是將Plasma 系統投入實際生產應用。如上所述Plasma 與Validium」並非非此即彼的選擇:任何Validium 都可以透過在其退出機制中融入Plasma 特性來至少在一定程度上提升其安全屬性。研究的重點在於為EVM 獲得最佳屬性(從信任需求、最壞情況下的L1 Gas 成本以及抵禦DoS 攻擊的能力等方面考慮),以及替代的特定應用結構。透過研究和建立更好的通用框架來直接解決。
使用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)。如果證明系統同意,安全委員會就沒有權力;如果他們不同意,安全委員會只能在其中一個之間做出選擇,它不能單方面強加自己的答案。
多證明者的程式化圖,結合了一個optimistic 證明系統、一個有效性證明系統和一個安全委員會。
有哪些與現有研究的連結?
- 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。
Keystore 錢包運作原理
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
REMOTESTATICCALL in Optimism: 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 和L2 分工的一種觀點
如何與路線圖的其他部分互動?
將更多用戶引入L1 不僅意味著要提升擴展,還意味著要改善L1 的其他方面。這意味著更多的MEV 將留在L1 上(而不是僅僅成為L2 的問題),因此,明確處理MEV 的需求將變得更加迫切。這將大大提升L1 上快速slot 時間的價值。同時,這也大大依賴L1(the Verge)驗證的順利進行。
推薦閱讀:《Vitalik 新文:以太坊可能的未來,the Merge》