menu-icon
anue logo
熱門時事鉅亨號鉅亨買幣
search icon

區塊鏈

Vitalik關於以太坊協議可能的未來(三):The Surge

BlockBeats 律動財經 2024-10-23 17:30

cover image of news article
律動財經圖片

起初,以太坊的路線圖中有兩種擴展策略。其一(可參見 2015 年的早期論述)是「分片」(sharding):每個節點只需驗證和儲存鏈上的一小部分交易,而不是所有交易。任何其他點對點網路(如 BitTorrent)都是這樣運作的,因此我們肯定也能讓區塊鏈以同樣的方式運作。另一種方法是 Layer 2 協議,即在以太坊之上建立網絡,使其能夠充分受益於以太坊的安全性,同時將大部分數據和計算放到主鏈之外。 「Layer 2 協定」從 2015 年的狀態通道(state channels),到 2017 年的 Plasma,最後在 2019 年發展為 Rollups。 Rollups 比前兩者更強大,但也需要大量鏈上資料頻寬。幸運的是,到 2019 年,分片研究已經解決了大規模驗證「資料可用性」的問題。因此,這兩條道路交匯在了一起,我們有了以 Rollup 為中心的路線圖,這也是以太坊今天的擴展策略。

The Surge,2023 年路線圖版本



以太坊L1 專注於成為一個強大的去中心化基礎層,而L2 則承擔起幫助生態擴展的任務。這種模式在社會中隨處可見,例如法院系統(L1)並不是為了超高的案件處理效率而存在的,它是為了保護合約和產權,而企業家們(L2)則是為了在這個堅固的基礎層之上,將人類帶上火星。

今年,以太坊以Rollup 為中心的路線圖取得了重大成功:以太坊L1 資料頻寬隨著EIP-4844 blobs 的使用而大大增加,多個EVM Rollups 現在處於第一階段。此外,分片的異質和多元化實現已經成為現實,每個 L2 都可作為一個「分片」,有自己的內部規則和邏輯。但是,正如我們所看到的,走這條路本身也有一些獨特的挑戰。因此,我們目前的任務是完成以 Rollup 為中心的路線圖,並解決這些問題,同時保持以太坊 L1 的穩健性和去中心化特性。

The Surge 的主要目標:

· 在L1+L2 上實現10 萬+ TPS

· 保留L1 的去中心化和穩健性

· 至少有一些L2 完全繼承以太坊的核心屬性(去信任、開放、抗審查)

· L2 之間最大程度的互通性。以太坊應該是生態系統,而不是34 條不同的區塊鏈

不可能三角

區塊鏈「不可能三角」是我在2017 年提出的觀點,認為區塊鏈的三個特性之間存在矛盾,包括去中心化(以低成本運行節點)、可擴展性(處理的交易數量多)和安全性(攻擊者需要破壞整個網路中的大部分節點,才能使單筆交易失敗)。

值得注意的是,不可能三角並不是一個定理,介紹該困境的貼文也沒有附帶數學證明。它確實給出了一個啟發式的數學論證:如果一個對去中心化友好的節點(如消費者的筆記型電腦)每秒可以驗證N 筆交易,而你有一條每秒處理k*N 筆交易的鏈,那麼要么每筆交易只被1/k 個節點看到,意味著攻擊者只需要破壞幾個節點就能將一筆糟糕的交易推送出去,要么節點就會變得很強大,而鏈就丟失了去中心化這項特性。當時的貼文並不是要說明打破不可能三角是不可能的;相反,我想說明的是,打破該困境是很難的,需要以某種方式跳出論證所暗示的框框。

多年來,一些高性能鏈通常會稱自己無需在基本架構層面做任何提升(通常是通過使用軟體工程技巧來優化節點),就能解決不可能三角問題。這種說法往往具有誤導性,在這種鏈上運行節點的難度其實比在以太坊上大得多。 這篇文章深入探討了為什麼會出現這種情況的許多微妙之處,同時也解釋了為什麼僅靠L1 客戶端軟體工程無法擴展以太坊本身。

不過,資料可用性採樣和 SNARKs 的結合確實解決了這個困境。透過兩者的結合,客戶端可以驗證一定數量的數據是否可用,以及一定數量的計算步驟是否正確執行,同時只下載其中一小部分數據,並運行小得多的計算量。 SNARK 是去信任的,而資料可用性取樣則有一個細微的few-of-N 信任模型,但它保留了不可擴展鏈所具有的基本特性,即即使是51% 的攻擊也無法迫使網路接受有害區塊。

解決不可能三角的另一種方法是Plasma 架構,這種架構使用巧妙的技術,以一種激勵兼容的方式將觀察資料可用性的責任推給用戶。早在2017-2019 年,當我們只能透過詐欺證明來擴展運算規模時,Plasma 能安全完成的工作非常有限,但SNARKs 的主流化使得Plasma 架構在更廣泛的用例中比以前更可行資料可用性採樣的進一步進展。

資料可用性採樣的進一步進展

我們要解決什麼問題?

截至2024 年3 月13 日,即Dencun 升級上線之時,以太坊在每12 秒slot 中有三個約125 kB 大小的「blob」 ,即每個slot 約有375 kB 的資料可用性頻寬。假設交易資料是直接在鏈上發布的,ERC20 的傳輸量約為180 位元組,因此以太坊上Rollups 的最大TPS 為:375000/12/180 = 173.6 TPS

如果我們加上以太坊的calldata(理論上最大值為:每slot 3000 萬gas/每位元組16 gas = 每slot 187.5 萬位元組),這就變成了607 TPS。對於 PeerDAS,我們的計劃是將 blob 計數目標提高到 8-16,這將為我們提供 463-926 TPS 的 calldata。

這比以太坊 L1 有了很大的提升,但還不夠。我們想要更高的可擴展性。我們的中期目標是每 slot 16 MB,如果結合 Rollup 資料壓縮的改進,我們將獲得約 58,000 個 TPS。

PeerDAS 是什麼,如何運作?

PeerDAS 是「1D sampling」的一種相對簡單的實作方式。以太坊中的每個 blob 都是 253 位元素數域上的一個 4096 度多項式。我們廣播多項式的「份額」(shares),每個份額由相鄰 16 個坐標的 16 個估算組成,這些坐標取自總共 8192 個坐標。 8192 次評估中的任意 4096 次估算(使用目前建議的參數:128 個可能樣本中的任意 64 個)都可以恢復 blob。

PeerDAS 的運作原理是讓每個客戶端監聽少數幾個子網,其中第i個子網路廣播任何blob 的第i 個樣本,並透過向全球p2p 網路中的同行(監聽不同子網路的同行)詢問它所需的其他子網路上的blob。一個更保守的版本是 SubnetDAS,它只使用子網路機制,而沒有詢問同行的附加層。目前的建議是,參與權益證明的節點使用 SubnetDAS,其他節點使用 PeerDAS。

從理論上講,我們可以將 1D sampling 擴展到相當大的範圍。如果我們將blob 計數最大值提高到256(因此,目標值為128),那麼我們就能達到16 MB 的目標值,而資料可用性採樣只需耗費每slot 1 MB(每個節點16 個樣本* 128個blob * 每個blob 每個樣本512 位元組)的資料頻寬即可。然而,這只勉強在我們的承受範圍之內。我們可以做到,但這意味著頻寬受限的客戶端無法採樣。我們可以透過減少 blob 數量和增加 blob 大小來進行最佳化,但這又會使重構成本提高。

因此,我們希望更進一步,進行 2D sampling,即不僅在 blob 內,而且在 blob 之間進行隨機採樣。我們利用 KZG 承諾的線性特性,透過冗餘編碼相同資訊的新「虛擬 blobs」列表來「擴展」區塊中的 blobs 集。

2D sampling;來源:a16z crypto

最重要的是,計算承諾的擴展並不需要擁有blobs,因此該方案從根本上有利於分散式區塊建構。實際建構區塊的節點只需擁有 blob KZG 承諾,就可以依靠 DAS 來驗證 blob 的可用性。 1D DAS 在本質上也有利於分散式區塊建置。

現有的相關研究

· 介紹資料可用性的原帖(2018 年) :https://github.com/ethereum/research/wiki/A-note-on-data-availability-and-erasure-coding

· 後續論文:https://arxiv.org/abs/1809.09044

· Paradigm 關於DAS 的解釋性貼文: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 sampling 中可恢復性的細微差別:https://ethresear.ch/t/nuances-of-data-recoverability-in-data-availability-sampling/16256

還有哪些工作要做,如何權衡?

當務之急是完成 PeerDAS 的實施與推廣。我們需要逐步增加 PeerDAS 上的 blob 數量,同時仔細觀察網路並改進軟體,以確保安全。同時,我們希望進行更多的學術工作,使 PeerDAS 和其他版本的 DAS 及其與分叉選擇規則安全等問題的交互正規化。

未來,我們還需要做更多的工作,找出理想版本的 2D DAS 並證明其安全屬性。我們也希望最終從 KZG 遷移到抗量子、無可信任設定的替代方案。目前,我們還不知道有哪些候選方案對分散式區塊建置友好。即使使用費用極高的「暴力」技術,即使用遞歸STARK 產生有效性證明來重建行和列也是不夠的,因為從技術上講,一個STARK 的大小(使用STIR)是O(log(n) * log(log(n)) 雜湊值,但實際上一個STARK 幾乎和整個blob 一樣大。

從長遠來看,我認為最現實的途徑是:

· 實現理想的2D DAS

· 堅持1D DAS,犧牲採樣頻寬效率並接受較低的資料上限,以求簡單和穩健

· (硬支點)放棄DA,完全採用Plasma 作為我們關注的主要layer 2 架構

我們可以根據下圖來權衡這些問題:

請注意,即使我們決定直接在L1 上擴展執行,這種選擇也是存在的。因為,如果L1 要處理大量的TPS,那麼L1 區塊就會變得非常大,而客戶端需要一種有效的方式來驗證它們是否正確,因此我們必須在L1 上使用與Rollup(ZK-EVM 和DAS)相同的技術。

對路線圖的其他部分有何影響?

如果實現了資料壓縮(見下文),那麼對2D DAS 的需求就會有所減少,或至少會有所延遲;如果Plasma 得到廣泛應用,那麼對它的需求就會進一步減少。 DAS 也對分散式區塊建構協議和機制提出了挑戰:雖然 DAS 在理論上對分散式重構是友善的,但在實踐中需要與包含清單建議及其周圍的分叉選擇機制相結合。

資料壓縮

我們要解決什麼問題?

Rollup 中的每筆交易都會佔用鏈上大量的資料空間:ERC20 的傳輸大約需要 180 個位元組。即使有理想的資料可用性採樣,也會對 Layer 2 協定的可擴展性造成限制。每個slot 16 MB,我們可以得到:16000000/12/180 = 7407 TPS

如果除了解決分子的問題,我們還能解決分母的問題,讓Rollup 中的每筆交易在鏈上佔用更少的字節,那會怎麼樣?

如何進行資料壓縮?

在我看來,兩年前的這張圖就是最好的解釋:

最簡單的增益就是零位元組壓縮:用代表零位元組數量的兩個位元組取代每個長的零位元組序列。為更進一步,我們利用了交易的特殊屬性:

· 簽章聚合:我們將 ECDSA 簽章轉換為 BLS 簽章。 BLS 簽名的功能是,許多簽名可以合併為一個簽名,證明所有原始簽名的有效性。這種方法在 L1 中沒有被應用,因為即使使用聚合的方式,驗證的計算成本也會更高,但在像 L2 這樣資料稀缺的環境中,可以說這是合理的。 ERC-4337 的聚合功能提供了一種實現途徑。

· 用pointer 取代位址:如果一個位址以前使用過,我們可以用一個指向歷史位置的4 位元組pointer 取代20 位元組的位址。要獲得最大收益,就必須這樣做,不過實施起來需要付出努力,因為這需要(至少一部分)區塊鏈歷史有效地成為狀態的一部分。

· 交易值的自訂序列化:大多數交易值的數字很少,例如 0.25 ETH 表示為 250,000,000,000,000,000 wei。 Gas max-basefees 和優先費用的工作原理類似。因此,我們可以使用自訂的十進制浮點格式,甚至是特別常用值的歸集來簡潔地表示大多數幣值。

現有的相關研究

· 來自sequence.xyz 的探索:https:/ /sequence.xyz/blog/compressing-calldata

· 來自ScopeLift 的針對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

還有哪些工作要做,如何權衡?

剩下要做的主要是實際實施上述計劃。主要的權衡是:

· 改用 BLS 簽章需要耗費大量精力,而且會降低與可提高安全性的可信任硬體晶片的兼容性。可以使用其他簽章方案的 ZK-SNARK wrapper 來替代。

· 動態壓縮(如用 pointers 取代位址)會使客戶端程式碼複雜化。

· 將狀態差異發佈到鏈上而不是交易上會降低可審計性,並使許多軟體(如區塊瀏覽器)無法運作。

對路線圖的其他部分有何影響?

採用 ERC-4337 並最終將其部分內容納入 L2 EVM,可大幅加快聚合技術的部署。將 ERC-4337 的部分內容納入 L1 可以加快其在 L2 上的部署。

Plasma

我們要解決什麼問題?

即使使用16 MB blobs 和資料壓縮技術,58000 TPS 不一定足以完全接管消費支付、去中心化社交或其他高頻寬領域,如果我們開始考慮隱私問題,情況會變得特別明顯,可能會使可擴展性下降3-8 倍。對於高流量、低價值的應用,目前的一種選擇是validium,它將資料保存在鏈外,並有一個有趣的安全模型,即運營商無法竊取用戶的資金,但他們可以消失,並暫時或永久凍結所有用戶的資金。然而,我們可以做得更好。

Plasma 是什麼,如何運作?

Plasma 是一種擴展解決方案,涉及運營商在鏈外發布區塊,並將這些區塊的Merkle 根放到鏈上(與Rollup不同,Rollup 是將整個區塊放到鏈上)。對於每個區塊,營運商都會向每個用戶發送 Merkle 分支,證明該用戶的資產發生了什麼或沒有發生什麼。使用者可以透過提供 Merkle 分支來提取資產。重要的是,該分支不必植根於最新狀態。因此,即使資料可用性失效,使用者仍可透過提取其可用的最新狀態來恢復資產。如果使用者提交了一個無效的分支(例如,撤回已經發送給他人的資產,或者經營者自己憑空創建了一個資產),鏈上質疑機制可以裁定資產的合法歸屬。

Plasma Cash chain 示意圖

Plasma 的早期版本只能處理支付用例,無法有效地進一步推廣。然而,如果我們要求每個根都要經過 SNARK 驗證,Plasma 就會變得更強大。每個挑戰都可以大大簡化,因為我們消除了業者作弊的大部分可能途徑。我們也開闢了新的途徑,使 Plasma 技術可以擴展到更廣泛的資產類別。最後,在經營者沒有作弊的情況下,用戶可以立即提取資金,而無需等待一周的挑戰期。

打造EVM plasma chain 的方法(並非唯一方法):使用ZK-SNARK 建立一個平行的UTXO 樹,反映了EVM 所做的平衡變化,並定義了歷史上不同時刻「相同幣」的獨特映射。然後在此基礎上建構 Plasma 結構。

要注意的是,Plasma 系統並不需要完美無缺。即使你只能保護資產的子集,你也已經大大改善了超可擴展 EVM 的現狀,這就是有效的。

另一類結構是混合 Plasma 和 Rollup,如 Intmax。這些結構將每個用戶的極少量資料(例如5 位元組)放在鏈上,從而獲得了介於Plasma 和Rollup 之間的特性:在Intmax 中,你可以獲得極高的可擴展性和隱私性,不過即使在16 MB 的世界裡,理論上容量上限也只有大約16,000,000 / 12 / 5 = 266,667 TPS。

現有的相關研究

· Plasma: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#

· Intmax (2023):https://eprint.iacr.org/2023/1082

還有哪些工作要做,如何權衡?

剩下的主要任務是將 Plasma 系統投入生產。如上所述,Plasma 與 validium 並不是二元對立的:任何 validium 都可以透過在退出機制中加入 Plasma 特性,至少可在一定程度上提高其安全性能。研究工作的重點在於為 EVM 取得最佳特性(在信任要求、最壞情況下的 L1 gas 成本和 DoS 脆弱性方面),以及其他特定應用結構。此外,相對於 Rollup,Plasma 的概念複雜性更高,這需要透過研究和建立更好的通用框架來直接解決。

使用Plasma 設計的主要代價是,它們更依賴於運營者,並且更難實現通用,儘管Plasma 和Rollup 的混合設計通常可以避免這一弱點。

對路線圖的其他部分有何影響?

Plasma 解決方案越有效,L1 擁有高效能資料可用性功能的壓力就越小。將活動轉移到 L2 還能減少 L1 的 MEV 壓力。

成熟的 L2 證明系統

我們要解決什麼問題?

如今,大多數 Rollup 其實不是去信任的;安全委員會有能力推翻(optimistic 或 validity)證明系統的行為。在某些情況下,證明系統甚至根本不存在,即使存在,也只有「諮詢」功能。目前走得最遠的是一些針對特定應用的Rollup,如Fuel,它是去信任的;其次,截至本文撰寫時,Optimism 和Arbitrum,這兩全EVM Rollup 已經達到了部分去信任的里程碑,也就是我們所稱的「stage 1」。 Rollup 沒有進一步實現去信任的原因是擔心程式碼中的錯誤。我們需要去信任的升級,因此我們需要正面解決這個問題。

如何實現去信任的升級?

首先,讓我們回顧一下最初介紹的「stage」系統,大致情況如下:

· Stage 0:使用者必須能夠運行節點並同步鏈。如果驗證是完全可信的/中心化的,就沒問題。

· Stage 1:必須有一個(去信任的)證明系統,確保只有有效的交易才能被接受。允許安全委員會推翻證明系統,但必須達到 75% 的投票門檻。此外,委員會中法定人數限制的部分(26% 以上)必須在 Rollup 建構者之外。允許使用功能較弱的升級機制(如 DAO),但必須有足夠長的延遲時間,如果批准惡意升級,用戶可以在升級上線前退出資金。

· Stage 2:必須有一個(去信任的)證明系統,確保只有有效的交易才能被接受。只有在程式碼中出現可證明的錯誤時,例如兩個冗餘的證明系統相互不同意,或一個證明系統接受了同一區塊的兩個不同的後狀態根(或在足夠長的時間內(如一週)不接受任何東西),安全委員會才被允許幹預。升級機制是允許的,但必須有很長的延遲時間。

我們的目標是達到 Stage 2。主要的挑戰是獲得足夠的信心,證明系統確實夠可信。要做到這一點,主要有兩種方法:

· 形式驗證:我們可以使用現代數學和計算技術來證明(optimistic 或validity)證明系統只接受透過EVM 規範的區塊。這些技術已經存在了幾十年,但最新的進展(如 Lean 4)使其更加實用。此外,人工智慧輔助證明的進步有可能進一步加快這一趨勢。

· 多重驗證系統:製作多個驗證系統,並將資金投入這些驗證系統與安全委員會(和/或其他具有信任假設的小工具,如TEE)之間的2-of-3(或更大)多驗證器中。如果證明系統同意,安全委員會就沒有權力;如果證明系統不同意,安全委員會只能選擇其中之一,不能單方面強加自己的答案。

結合optimistic 證明系統、 validity 證明系統和安全委員會的多重驗證器樣式圖

現有的相關研究

· EVM K Semantics(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 的實作(並正式證明其與其他EVM 規範的等價性)。

對於多重驗證器來說,剩下的重點包括兩個部分。首先,我們需要對至少兩個不同的證明系統有足夠的信心,既要相信它們各自都是相當安全的,又要相信如果它們發生故障,故障的原因是不同的、互不相關的(因此它們不會同時發生故障)。其次,我們需要在合併證明系統的底層邏輯中獲得極高的保證。這是一段小得多的程式碼,有一些方法(只需將資金儲存在一個Safe 多簽合約中,其簽名者代表各個證明系統的合約)可以讓它變得非常小,但這樣做的代價是高昂的鏈上gas 成本。我們需要在效率和安全之間找到某種平衡。

對路線圖的其他部分有何影響?

將活動轉移到 L2 可以減少 L1 的 MEV 壓力。

改進跨 L2 的互通性

我們要解決什麼問題?

目前,L2 生態面臨的一個主要挑戰是使用者難以跨L2 進行互通,而最簡單的方法往往會重新引入信任假設,包括中心化跨鏈橋、RPC 客戶端等。如果我們認真看待「L2 是以太坊一部分」的理念,我們就需要讓使用 L2 生態的感覺就像使用統一的以太坊生態一樣。

跨L2 使用者體驗極差的例子(我個人就因為鏈選擇錯誤損失了100 美元):雖然這不是Polymarket 的錯,但跨L2 互通性應該是錢包和
以太坊
標準(ERC)社區的責任。在一個運作良好的
以太坊
生態中,從 L1 向 L2 或從一個 L2 向另一個 L2 發送代幣,應該感覺就像在同一個 L1 中發送代幣一樣。

跨 L2 的互通性如何改善?

跨 L2 的互通性改進有很多方法。一般來說,只要意識到從理論上講,以Rollup 為中心的以太坊與L1 執行分片是一回事,然後觀察當前的各以太坊L2 在實踐中與這一理想有哪些差距,就可以得出結論。以下是一些例子:

· 特定鏈位址:鏈(L1、Optimism、Arbitrum......)可以是位址的一部分。一旦實現了這一點,只需將位址放入「send」字段,就能實現跨 L2 發送流程,此時錢包就能在後台找出發送方法(包括使用跨鏈協議)。

· 特定鏈的付款請求:「向我發送 Z 鏈上 Y 類型的 X 代幣」這一訊息應該是簡單而標準化的。這有兩種主要用例:首先是支付,無論是個人對個人還是個人對商家服務;其次是要求資金的 Dapp,例如上面的 Polymarket。

· 跨鏈兌換和gas 支付:應該有一個標準化的開放協議來表達跨鏈操作,例如“我在Optimism 上向Arbitrum 上向我發送0.9999 ETH 的人發送1 ETH”,以及“我在Optimism 上向Arbitrum 上包含此交易的人發送0.0001 ETH”。 ERC-7683 是對前者的一種嘗試,而 RIP-7755 則是對後者的一種嘗試,儘管兩者都比這些特定用例更通用。

· 輕客戶端:使用者應能實際驗證與之互動的鏈,而不僅僅是信任 RPC 提供者。 A16z crypto 的輕客戶端 Helios 幫以太坊做到了這一點,但我們需要將這種去信任擴展到 L2。 ERC-3668(CCIP-read)是實現這一目標的策略之一。

輕客戶端如何更新
以太坊
header chain:一旦擁有了header chain ,就可以使用Merkle 證明來驗證任何狀態物件。一旦有了正確的 L1 狀態對象,就可以使用 Merkle 證明(如果你想檢查預先確認,還可以使用簽名)來驗證 L2 上的任何狀態對象。 Helios 已經實現了前者,擴展至後者則是標準化的挑戰。

金鑰儲存錢包:如今,如果要更新控制智慧合約錢包的金鑰,必須在該錢包所在的所有 N 個鏈上進行更新。密鑰儲存錢包是一種技術,允許密鑰存在於一個地方(或在 L1 上,或以後可能在 L2 上),然後可以從任何擁有錢包副本的 L2 上讀取。這意味著更新只需進行一次。為了提高效率,金鑰儲存錢包要求 L2 有一種標準化的方式來低成本地讀取 L1;有兩個關於這方面的提議:L1SLOAD 和 REMOTESTATICCALL。

密鑰儲存錢包工作原理示意圖

更激進的「共享代幣橋」方案:想像一下這樣一種情況,即所有的L2 都是有效性證明Rollup,每個slot 都會提交到以太坊上,那麼將資產「原生得」從一個L2 轉移到另一個L2 也需要提款和存款,需要支付大量的L1 gas。解決這個問題的一種方法是創建一個共享的最小Rollup,其唯一的功能是維護哪個L2 擁有多少代幣的餘額,並允許透過任何一個L2 發起的一系列跨L2 發送操作來大規模更新這些餘額。這將允許跨 L2 傳輸,而無需為每次傳輸支付 L1 gas,也無需使用基於流動性提供者的技術(如 ERC-7683)。

同步可合成性:允許在特定 L2 和 L1 之間或多個 L2 之間進行同步呼叫。這有助於提高 DeFi 協議的財務效率。前者可以在沒有任何跨 L2 協調的情況下完成;後者則需要共享排序。 Based Rollups 自動適用於所有這些技術。

現有的相關研究

· 特定鏈結位址(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 金鑰儲存錢包設計:https://hackmd.io/@haichen/keystore

· Helios:https://github.com/a16z/helios

· ERC-3668(有時稱為CCIP-read):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

· Optimism 的REMOTESTATICCALL: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 本身的規模並確保它能繼續支援越來越多的用例是非常有價值的。

如何擴展 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(單指令多資料)允許在數值數組上有效率地執行相同指令。這兩者結合在一起,可以在 EVM 旁邊創建一個強大的協處理器,用於更有效率地執行加密操作。這對隱私協議和 L2 證明系統尤其有用,因此對 L1 和 L2 擴展都有幫助。

這些改進將在未來 Splurge 的文章中詳細討論。

最後,第三種策略是原生Rollup 或「enshrined Rollups」:本質上講,就是創建許多並行運行的EVM 副本,從而產生與Rollup 所能提供的等效的模型,但更原生地整合在協議中。

現有的相關研究

· Polynya 的以太坊L1 擴展路線圖:https ://polynya.mirror.xyz/epju72rsymfB-JK52_uYI7HuhJ-W_zM735NdP7alkAQ

· 多維gas 定價:https://vitalik.eth.limo/general/2024/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

· 原生Rollup:https://mirror.xyz/ohotties.eth/P1qSCcwj2FZ9cqo3_6kYI4S2chW5K5tmEgogk6io1GE

· Bankless 與Max Resnick 就擴展L1 的價值訪談:https://x. com/BanklessHQ/status/1831319419739361321

· Justin Drake 關於使用SNARKs 和原生Rollup 擴展的思考:https://www.reddit.com/r/ ethereum/comments/1f81ntr/comment/llmfi28/

還有哪些工作要做,如何權衡?

擴展L1 有三種策略,可單獨或同時進行:

· 改進技術(如客戶端程式碼、無狀態客戶端、歷史過期),使L1 更容易驗證,然後提高gas 上限

· 降低特定操作的成本,在不增加最壞情況風險的情況下提高平均容量

· 原生Rollup,即「創建EVM 的N 個並行副本」,但保留允許開發人員在部署副本參數上有很大靈活性的可能

值得注意的是,這些技術各不相同,各有利弊。例如,原生 Rollup 在可組合性方面有許多與普通 Rollup 相同的弱點。提高 gas 限制會影響其他好處,而這些好處可以透過讓 L1 更容易驗證來實現,例如增加運行驗證節點的使用者比例,以及增加單一質押者。降低 EVM 中特定操作的成本(取決於如何操作)會增加 EVM 的總複雜度。

L1 延伸路線圖需要回答的一個大問題是:什麼應歸屬於 L1,什麼應歸屬於 L2?顯然,將所有東西都放在 L1 上是荒謬的。高達每秒數十萬筆交易的潛在用例,將使 L1 完全無法驗證(除非我們走原生 Rollup 路線)。我們確實需要一些指導原則,這樣才能確保我們不會造成這樣一種情況,即我們將gas 限制提高了10 倍,嚴重破壞了以太坊L1 的去中心化,卻發現我們只是實現了90% 的活動都在L2 上,而不是99%,除了不可逆轉地喪失了以太坊L1 的大部分特色之外,其他結果看起來幾乎是一樣的。

有觀點認為L1 與L2 之間存在「分工」;資料來源:@0xBreadguy

對路線圖的其他部分有何影響?

讓更多用戶使用 L1 意味著不僅規模將得到改善,還可以改善 L1 的其他方面。這意味著更多的 MEV 將留在 L1 上(而不是僅僅成為 L2 的問題),因此明確處理 MEV 的需求將更加迫切。這將大大提高 L1 快速 slot 時間的價值。而這也很大程度取決於 L1 驗證(the Verge)是否順利。

原文連結

暢行幣圈交易全攻略,專家駐群實戰交流

▌立即加入鉅亨買幣實戰交流 LINE 社群(點此入群
不管是新手發問,還是老手交流,只要你想參與虛擬貨幣現貨交易、合約跟單、合約網格、量化交易、理財產品的投資,都歡迎入群討論學習!

前往鉅亨買幣找交易所優惠

文章標籤


Empty