在最初,以太坊的路線圖中有兩種擴容策略。一種(例如,參見2015年的這篇早期論文)是”分片”:每個節點只需要驗證和存儲一小部分交易,而不是驗證和存儲鏈上的所有交易。這也是其他點對點網路(如BitTorrent)的工作方式,所以我們自然可以讓區塊鏈以同樣的方式工作。另一種是二層協議:這些網路位於以太坊之上,能夠充分受益於以太坊的安全性,同時將大部分數據和計算保持在主鏈之外。”二層協議”在2015年指的是狀態通道,在2017年指的是Plasma,然後在2019年指的是rollups。Rollups比狀態通道或Plasma更強大,但它們需要大量的鏈上數據帶寬。幸運的是,到2019年,分片研究已經解決了大規模驗證”數據可用性”的問題。因此,這兩條路徑匯合了,我們得到了以rollup爲中心的路線圖,這仍然是以太坊目前的擴容策略。
The Surge,2023 年路線圖版。
以rollup爲中心的路線圖提出了一個簡單的分工:以太坊L1專注於成爲一個強大和去中心化的基礎層,而L2則承擔幫助生態系統擴展的任務。這是一種在社會各處都能看到的模式:法院系統(L1)並不是爲了超快和高效而存在,它是爲了保護合同和財產權,而企業家(L2)則在這個堅實的基礎層之上建設,將人類帶到(比喻和字面意義上的)火星。
今年,以rollup爲中心的路線圖已經取得了重要成果:以太坊L1的數據帶寬通過EIP-4844 blobs大幅增加,多個EVM rollups現在已經處於第1階段。一種非常異構和多元化的分片實現已經成爲現實,每個L2都作爲一個”分片”運作,有自己的內部規則和邏輯。但正如我們所見,走這條路也帶來了一些獨特的挑戰。因此,我們現在的任務是完成以rollup爲中心的路線圖,解決這些問題,同時保持使以太坊L1特別的穩健性和去中心化。
可擴展性三難困境是2017年提出的一個概念,它指出區塊鏈的三個屬性之間存在矛盾:去中心化(具體來說:運行節點的低成本)、可擴展性(具體來說:高交易處理量)和安全性(具體來說:攻擊者需要破壞網路中大部分節點才能使單個交易失敗)。
值得注意的是,這個三難困境並非一個定理,介紹它的文章也沒有提供數學證明。但文章給出了一個啓發性的數學論證:如果一個支持去中心化的節點(如普通筆記本電腦)每秒可以驗證N筆交易,而你有一個每秒處理k*N筆交易的鏈,那麼要麼(i)每筆交易只被1/k的節點看到,這意味着攻擊者只需破壞少數節點就能推送一筆壞交易,要麼(ii)你的節點需要很強大,導致你的鏈不再去中心化。這篇文章的目的不是證明打破三難困境是不可能的,而是表明打破三難困境很難——它需要某種方式跳出論證所暗示的框框。
多年來,一些高性能鏈常常聲稱他們在不做任何基礎架構層面創新的情況下解決了三難困境,通常是通過使用軟件工程技巧來優化節點。這總是具有誤導性的,在這些鏈上運行節點最終總是比在以太坊上困難得多。這篇文章深入探討了爲什麼會這樣的諸多微妙之處(因此,爲什麼僅靠L1客戶端軟件工程無法擴展以太坊本身)。
然而,數據可用性採樣和SNARKs的結合確實解決了三難困境:它允許客戶端驗證某些數據的可用性,並正確執行一定數量的計算步驟,同時只下載少量數據並運行少量計算。SNARKs是無需信任的。數據可用性採樣有一個微妙的N中少數信任模型,但它保留了不可擴展鏈的基本屬性,即即使51%攻擊也無法強制網路接受壞區塊。
解決三難困境的另一種方式是 Plasma 架構,它使用巧妙的技術,以激勵兼容的方式將監視數據可用性的責任推給用戶。在2017-2019年,當我們只有欺詐證明來擴展計算時,Plasma在安全操作方面非常有限,但SNARKs的主流化使Plasma架構對更廣泛的用例變得更加可行。
自2024年3月13日Dencun升級上線以來,以太坊區塊鏈每12秒的 slot (時隙)中包含三個約125 kB的”數據塊”,即每個 slot 約375 kB的數據可用性帶寬。假設交易數據直接在鏈上發布,一筆ERC20轉帳約需180字節,那麼以太坊上rollups的最大每秒交易量(TPS)爲:
375000 / 12 / 180 = 173.6 TPS (每秒處理量)
如果我們加上以太坊的calldata(理論最大值:每個 slot 30百萬gas / 每字節16 gas = 每個slot 1,875,000字節),這個數字將達到607 TPS。通過PeerDAS,計劃是將數據塊數量目標增加到8-16個,這將使我們在calldata中達到463-926 TPS。
這相對於以太坊 L1 來說是一個重大的提升,但這還不夠。我們想要更多的可擴展性。 我們的中期目標是每個slot 16 MB,如果與匯總數據壓縮的改進相結合,將爲我們提供 〜58,000 TPS。
PeerDAS是”一維採樣”的一種相對簡單的實現。以太坊中的每個數據塊都是一個253位素數域上的4096度多項式。我們廣播多項式的”份額”,每個份額由16個相鄰坐標的16個評估組成,這些坐標從總共8192個坐標中選取。8192個評估中的任意4096個(根據當前提議的參數:128個可能樣本中的任意64個)都可以恢復整個數據塊。
PeerDAS的工作原理是讓每個客戶端監聽少量子網,其中第i個子網廣播任何數據塊的第i個樣本,並通過詢問全局p2p網路中的對等節點(它們會監聽不同的子網)來獲取它需要的其他子網上的數據塊。一個更保守的版本SubnetDAS只使用子網機制,沒有額外的詢問對等節點的層。目前的提議是讓參與權益證明的節點使用SubnetDAS,而其他節點(即”客戶端”)使用PeerDAS。
理論上,我們可以將一維採樣擴展得相當遠:如果我們將數據塊數量上限增加到256(目標爲128),那麼我們將達到16 MB的目標,同時數據可用性採樣對每個節點的成本僅爲每個時隙16個樣本 128個數據塊 每個樣本每個數據塊512字節 = 1 MB的數據帶寬。這剛好在我們的容忍範圍內:可以做到,但這意味着帶寬受限的客戶端無法進行採樣。我們可以通過減少數據塊數量並增加數據塊大小來優化這一點,但這會使重構更加昂貴。
因此,我們最終想要更進一步,實現二維採樣,這種方法不僅在數據塊內進行隨機採樣,還在數據塊之間進行採樣。KZG承諾的線性特性被用來”擴展”區塊中的數據塊集合,生成一系列新的”虛擬數據塊”,這些虛擬數據塊冗餘地編碼相同的信息。
二維採樣。 來源:a16z 加密貨幣
至關重要的是,計算承諾的擴展不需要擁有數據塊,因此該方案從根本上適合分布式區塊構建。實際構建區塊的節點只需要有數據塊的KZG承諾,並且可以自己依靠DAS來驗證數據塊的可用性。一維DAS也天生適合分布式區塊構建。
當前的首要任務是完成PeerDAS的實施和推廣。之後,我們需要逐步增加PeerDAS上的數據塊數量,同時密切關注網路狀況並改進軟件以確保安全性。與此同時,我們需要更多的學術工作來正式化PeerDAS和其他版本的DAS,並研究它們與分叉選擇規則安全性等問題的相互作用。
展望未來,我們需要更多的工作來確定2D DAS的理想版本並證明其安全性。我們還希望最終從KZG遷移到一個抗量子、無需可信設置的替代方案。目前,我們還沒有找到適合分布式區塊構建的候選方案。即使是使用遞歸STARK生成行列重構有效性證明的昂貴”暴力”技術也不夠,因爲雖然理論上STARK的大小是O(log(n) * log(log(n))個哈希(使用STIR),但實際上STARK幾乎和整個數據塊一樣大。
從長遠來看,我認爲現實的路徑是:
我們可以將這些選擇視爲一個權衡譜系:
需要注意的是,即使我們決定直接在L1上擴展執行,這個選擇仍然存在。這是因爲如果L1要處理大量的TPS,L1區塊會變得非常大,客戶端將需要一種高效的方法來驗證它們的正確性,所以我們將不得不在L1上使用與rollups相同的技術(ZK-EVM和DAS)。
如果實施了數據壓縮(見下文),2D DAS的需求會有所減少,或至少會推遲。如果Plasma被廣泛使用,這種需求會進一步減少。DAS還給分布式區塊構建協議和機制帶來了挑戰:雖然DAS在理論上有利於分布式重構,但在實踐中需要與包含列表提案及其周圍的分叉選擇機制相結合。
rollup中的每個交易都會在鏈上佔用相當大的數據空間:一個ERC20轉帳大約需要180字節。即使採用理想的數據可用性採樣,這也會限制二層協議的可擴展性。以每個 Slot 16 MB計算,我們得到:
16000000 / 12 / 180 = 7407 TPS
如果我們不僅處理分子,還能處理分母,使rollup中的每個交易在鏈上佔用更少的字節,會怎樣呢?
我認爲最好的解釋是兩年前的 這個圖:
最簡單的收益就是零字節壓縮:用兩個字節表示有多少個連續的零字節來替代長序列的零字節。爲了更進一步,我們利用交易的特定屬性:
剩下要做的主要工作就是將上述方案落到實處。主要的權衡是:
採用ERC-4337,並最終將其部分內容納入L2 EVM,可以大大加快聚合技術的部署。在L1上納入ERC-4337的部分內容可以加快其在L2上的部署。
即使有16 MB的數據塊和數據壓縮,58,000 TPS(每秒交易數)不一定足以完全接管消費者支付、去中心化社交或其他高帶寬領域。特別是當我們考慮隱私因素時,可擴展性可能會下降3-8倍。對於高交易量、低價值的應用,目前的一個選擇是validium,它將數據保存在鏈下,並有一個有趣的安全模型:運營者無法竊取用戶資金,但他們可能會消失並暫時或永久凍結所有用戶的資金。但我們可以做得更好。
Plasma是一種擴展解決方案,運營者在鏈下發布區塊,並將這些區塊的Merkle根放在鏈上(與rollups不同,rollups將完整的區塊放在鏈上)。對於每個區塊,運營者向每個用戶發送一個Merkle分支,證明該用戶資產發生或未發生的情況。用戶可以通過提供Merkle分支來提取他們的資產。重要的是,這個分支不必根植於最新狀態 - 因此,即使數據可用性失敗,用戶仍然可以通過提取他們所擁有的最新可用狀態來恢復他們的資產。如果用戶提交無效分支(例如,退出已經發送給他人的資產,或運營者憑空創造資產),鏈上挑戰機制可以裁定資產應該歸屬於誰。
Plasma Cash鏈的示意圖。花費硬幣i的交易被放在樹的第i個位置。在這個例子中,假設所有先前的樹都是有效的,我們知道Eve當前擁有硬幣1,David擁有硬幣4,George擁有硬幣6。
Plasma的早期版本只能處理支付用例,無法有效地進一步推廣。然而,如果我們要求每個根都通過SNARK驗證,Plasma就變得更加強大。每個挑戰遊戲可以大大簡化,因爲我們消除了運營者作弊的大多數可能路徑。新的路徑也開放了,允許Plasma技術擴展到更廣泛的資產類別。最後,如果運營者不作弊,用戶可以立即提取他們的資金,而不需要等待一周的挑戰期。
制作 EVM 等離子鏈的一種方法(不是唯一的方法)是:使用ZK-SNARK構建一個與EVM並行的UTXO樹,反映EVM中的餘額變化,並定義不同時間點上”相同硬幣”的唯一映射。然後可以在此基礎上構建等離子體系統。
一個關鍵的見解是,等離子體系統不需要完美無缺。即使你只能保護一部分資產(例如,僅保護過去一周內未移動的硬幣),你也已經大大改善了超可擴展EVM的現狀,即validium。
另一類構造是等離子體/rollup混合體,例如Intmax。這些構造在鏈上爲每個用戶存儲很少量的數據(例如5字節),從而獲得介於等離子體和rollup之間的特性:以Intmax爲例,你可以獲得非常高的可擴展性和隱私性,盡管即使在16 MB的世界中,理論容量上限也約爲16,000,000 / 12 / 5 = 266,667 TPS(每秒交易數)。
主要剩餘的任務是將Plasma系統投入生產。如上所述,”plasma vs validium”並非二元對立:任何validium都可以通過在退出機制中添加Plasma功能來至少略微改善其安全屬性。研究部分在於爲EVM獲得最佳屬性(在信任要求、最壞情況下的L1 gas成本和對DoS的脆弱性方面),以及替代的應用特定構造。此外,Plasma相對於rollups的更大概念復雜性需要直接解決,既通過研究,也通過構建更好的通用框架。
使用Plasma設計的主要權衡是它們更依賴於運營商,並且更難做到”基於“,盡管混合plasma/rollup設計通常可以避免這個弱點。
Plasma 解決方案越有效,L1 擁有高性能數據可用性功能的壓力就越小。將活動轉移到 L2 還可以減少 L1 上的 MEV 壓力。
如今,大多數匯總實際上還不是去信任的;有一個安全理事會有能力推翻(樂觀或有效性)的行爲 證明系統。在某些情況下,證明系統甚至根本不存在,或者即使存在也僅具有“諮詢”功能。最領先的是 (i) 一些特定於應用程序的匯總,例如 Fuel,它們是去信任的,以及 (ii) 截至撰寫本文時,Optimism 和 Arbitrum,這兩個完整的 EVM 匯總已經實現了部分去信任裏程碑稱爲“第一階段”。 Rollups 沒有進一步發展的原因是擔心代碼中的 bug。我們需要去信任的匯總,因此我們需要正面解決這個問題。
首先,讓我們回顧一下”階段”系統,這個概念最初是在這篇文章中提出的。雖然有更詳細的要求,但概括如下:
目標是達到第2階段。達到第2階段的主要挑戰是獲得足夠的信心,確保證明系統真的足夠可信。有兩種主要方法可以做到這一點:
多重證明者的示意圖,結合了一個樂觀證明系統、一個有效性證明系統和一個安全委員會。
對於形式驗證,還有很多工作要做。我們需要創建一個完整的EVM SNARK證明器的形式驗證版本。這是一個極其復雜的項目,盡管我們已經開始了。有一個技巧可以顯著簡化這個任務:我們可以爲一個最小化的虛擬機(如RISC-V或Cairo)創建一個經過形式驗證的SNARK證明器,然後在該最小化虛擬機中編寫EVM的實現(並正式證明其與其他EVM規範的等價性)。
對於多重證明者,還有兩個主要的待完成部分。首先,我們需要對至少兩個不同的證明系統建立足夠的信心,確保它們各自都是合理安全的,並且如果它們出現故障,會因不同且無關的原因而故障(因此不會同時失效)。其次,我們需要對合並證明系統的底層邏輯獲得非常高水平的保證。這是一個更小的代碼部分。有些方法可以使其變得非常小——只需將資金存儲在一個Safe多重籤名合約中,其籤名者是代表各個證明系統的合約——但這會帶來鏈上gas成本高的權衡。需要在效率和安全性之間找到平衡。
將活動轉移到二層網路可以減少一層網路上的MEV(最大可提取價值)壓力。
當前二層網路生態系統的一個主要挑戰是用戶難以導航。此外,最簡單的使用方式往往會重新引入信任假設:中心化橋接、RPC客戶端等。如果我們認真對待二層網路是以太坊一部分的想法,我們需要讓使用二層網路生態系統感覺就像使用一個統一的以太坊生態系統。
這裏有一個病態且危險的跨二層網路用戶體驗示例(我個人因鏈選擇錯誤在這裏損失了100美元)- 盡管這不是Polymarket的錯,跨二層網路互操作性應該是錢包和以太坊標準(ERC)社區的責任。在一個運作良好的以太坊生態系統中,從一層網路發送代幣到二層網路,或從一個二層網路發送到另一個,應該感覺就像在同一個一層網路內發送代幣一樣。
有許多類別的跨二層網路互操作性改進。通常,提出這些改進的方法是注意到理論上,以rollup爲中心的以太坊與一層執行分片是一回事,然後問當前以太坊二層網路生態系統在實踐中與這個理想有何不足。以下是一些例子:
輕客戶端如何更新其對以太坊頭鏈的視圖。一旦你有了頭鏈,你就可以使用默克爾證明來驗證任何狀態對象。一旦你有了正確的一層網路狀態對象,你就可以使用默克爾證明(如果你想檢查預確認,可能還需要籤名)來驗證二層網路上的任何狀態對象。Helios已經實現了前者。將其擴展到後者是一個標準化挑戰。
密鑰庫錢包如何工作的簡化圖示。
上述許多例子都面臨着何時標準化以及在哪些層面上標準化的常見困境。如果過早標準化,你可能會固化一個劣質解決方案。如果標準化太晚,你可能會造成不必要的碎片化。在某些情況下,既有短期解決方案(屬性較弱但易於實施),也有長期解決方案(”最終正確”但需要幾年時間才能實現)。
這一部分的獨特之處在於,這些任務不僅僅是技術問題:它們也是(甚至可能主要是!)社會問題。它們需要二層網路、錢包和一層網路的合作。我們能否成功處理這個問題,是對我們作爲一個社區團結一致能力的考驗。
這些提案大多是”高層”構造,因此不會對一層網路考慮產生重大影響。一個例外是共享排序,它對MEV(最大可提取價值)有重大影響。
如果 L2 變得非常可擴展且成功,但 L1 仍然只能處理非常少量的交易,那麼以太坊可能會出現許多風險:
出於這些原因,繼續擴展 L1 本身並確保它能夠繼續適應越來越多的用途是很有價值的。
擴展以太坊最簡單的方法是直接提高gas限制。然而,這可能會導致L1層中心化,從而削弱以太坊L1最強大的特性之一:作爲穩健基礎層的可信度。關於多大程度的gas限制提升是可持續的,目前仍存在爭議。這個問題還會隨着其他使大區塊更易驗證的技術(如歷史過期、無狀態性、L1 EVM有效性證明等)的實施而變化。另一個需要持續改進的重要方面是以太坊客戶端軟件的效率,現在的效率已經比五年前高得多。一個有效的L1 gas限制提升策略應該包括加速這些驗證技術的發展。
另一種擴展策略是識別特定功能和計算類型,在不損害網路去中心化或安全性的前提下降低其成本。例如:
這些改進將在以後關於 Splurge 的文章中更詳細地討論。
最後,第三個策略是 原生匯總 (或“enshrined rollups”):本質上,創建並行運行的 EVM 的許多副本,從而形成一個與 rollups 可以提供的模型等效的模型,但更原生地集成到協議中。
L1 擴展有三種策略,可以單獨或並行執行:
值得理解的是,這些是不同的技術,有不同的權衡。例如,原生rollups在可組合性方面有許多與普通rollups相同的弱點:你不能發送一個單一的交易在多個rollups之間同步執行操作,就像你可以在同一個L1(或L2)上的合約那樣。提高gas限制會減少通過使L1更容易驗證而可能獲得的其他好處,如增加運行驗證節點的用戶比例和增加單獨質押者。降低EVM中特定操作的成本,取決於具體實施方式,可能會增加EVM的總體復雜性。
任何 L1 擴展路線圖都需要回答的一個大問題是: L1 和 L2 的最終願景是什麼?顯然,這是荒謬的 一切 繼續 L1:潛在的用例每秒有數十萬個事務,這將使 L1 完全無法驗證(除非我們採用本機匯總路線)。但我們確實需要 一些 指導原則,這樣我們就可以確保我們不會造成這樣的情況:我們將 Gas 限制提高 10 倍,嚴重損害以太坊 L1 的去中心化,並發現我們只是進入了一個 99% 的活動都在在 L2 上,90% 的活動都在 L2 上,因此結果看起來幾乎相同,除了以太坊 L1 特殊之處的大部分不可逆轉的損失。
一種關於 L1 和 L2 之間“分工”的提議觀點, 來源。
將更多用戶帶到L1意味着不僅要改善規模,還要改善L1的其他方面。這意味着更多的MEV(最大可提取價值)將留在L1上(而不是僅成爲L2的問題),因此將更加迫切需要明確處理它。這大大增加了在L1上擁有快速時隙時間的價值。它也高度依賴於L1的驗證(”the Verge”)進展順利。
Mời người khác bỏ phiếu
在最初,以太坊的路線圖中有兩種擴容策略。一種(例如,參見2015年的這篇早期論文)是”分片”:每個節點只需要驗證和存儲一小部分交易,而不是驗證和存儲鏈上的所有交易。這也是其他點對點網路(如BitTorrent)的工作方式,所以我們自然可以讓區塊鏈以同樣的方式工作。另一種是二層協議:這些網路位於以太坊之上,能夠充分受益於以太坊的安全性,同時將大部分數據和計算保持在主鏈之外。”二層協議”在2015年指的是狀態通道,在2017年指的是Plasma,然後在2019年指的是rollups。Rollups比狀態通道或Plasma更強大,但它們需要大量的鏈上數據帶寬。幸運的是,到2019年,分片研究已經解決了大規模驗證”數據可用性”的問題。因此,這兩條路徑匯合了,我們得到了以rollup爲中心的路線圖,這仍然是以太坊目前的擴容策略。
The Surge,2023 年路線圖版。
以rollup爲中心的路線圖提出了一個簡單的分工:以太坊L1專注於成爲一個強大和去中心化的基礎層,而L2則承擔幫助生態系統擴展的任務。這是一種在社會各處都能看到的模式:法院系統(L1)並不是爲了超快和高效而存在,它是爲了保護合同和財產權,而企業家(L2)則在這個堅實的基礎層之上建設,將人類帶到(比喻和字面意義上的)火星。
今年,以rollup爲中心的路線圖已經取得了重要成果:以太坊L1的數據帶寬通過EIP-4844 blobs大幅增加,多個EVM rollups現在已經處於第1階段。一種非常異構和多元化的分片實現已經成爲現實,每個L2都作爲一個”分片”運作,有自己的內部規則和邏輯。但正如我們所見,走這條路也帶來了一些獨特的挑戰。因此,我們現在的任務是完成以rollup爲中心的路線圖,解決這些問題,同時保持使以太坊L1特別的穩健性和去中心化。
可擴展性三難困境是2017年提出的一個概念,它指出區塊鏈的三個屬性之間存在矛盾:去中心化(具體來說:運行節點的低成本)、可擴展性(具體來說:高交易處理量)和安全性(具體來說:攻擊者需要破壞網路中大部分節點才能使單個交易失敗)。
值得注意的是,這個三難困境並非一個定理,介紹它的文章也沒有提供數學證明。但文章給出了一個啓發性的數學論證:如果一個支持去中心化的節點(如普通筆記本電腦)每秒可以驗證N筆交易,而你有一個每秒處理k*N筆交易的鏈,那麼要麼(i)每筆交易只被1/k的節點看到,這意味着攻擊者只需破壞少數節點就能推送一筆壞交易,要麼(ii)你的節點需要很強大,導致你的鏈不再去中心化。這篇文章的目的不是證明打破三難困境是不可能的,而是表明打破三難困境很難——它需要某種方式跳出論證所暗示的框框。
多年來,一些高性能鏈常常聲稱他們在不做任何基礎架構層面創新的情況下解決了三難困境,通常是通過使用軟件工程技巧來優化節點。這總是具有誤導性的,在這些鏈上運行節點最終總是比在以太坊上困難得多。這篇文章深入探討了爲什麼會這樣的諸多微妙之處(因此,爲什麼僅靠L1客戶端軟件工程無法擴展以太坊本身)。
然而,數據可用性採樣和SNARKs的結合確實解決了三難困境:它允許客戶端驗證某些數據的可用性,並正確執行一定數量的計算步驟,同時只下載少量數據並運行少量計算。SNARKs是無需信任的。數據可用性採樣有一個微妙的N中少數信任模型,但它保留了不可擴展鏈的基本屬性,即即使51%攻擊也無法強制網路接受壞區塊。
解決三難困境的另一種方式是 Plasma 架構,它使用巧妙的技術,以激勵兼容的方式將監視數據可用性的責任推給用戶。在2017-2019年,當我們只有欺詐證明來擴展計算時,Plasma在安全操作方面非常有限,但SNARKs的主流化使Plasma架構對更廣泛的用例變得更加可行。
自2024年3月13日Dencun升級上線以來,以太坊區塊鏈每12秒的 slot (時隙)中包含三個約125 kB的”數據塊”,即每個 slot 約375 kB的數據可用性帶寬。假設交易數據直接在鏈上發布,一筆ERC20轉帳約需180字節,那麼以太坊上rollups的最大每秒交易量(TPS)爲:
375000 / 12 / 180 = 173.6 TPS (每秒處理量)
如果我們加上以太坊的calldata(理論最大值:每個 slot 30百萬gas / 每字節16 gas = 每個slot 1,875,000字節),這個數字將達到607 TPS。通過PeerDAS,計劃是將數據塊數量目標增加到8-16個,這將使我們在calldata中達到463-926 TPS。
這相對於以太坊 L1 來說是一個重大的提升,但這還不夠。我們想要更多的可擴展性。 我們的中期目標是每個slot 16 MB,如果與匯總數據壓縮的改進相結合,將爲我們提供 〜58,000 TPS。
PeerDAS是”一維採樣”的一種相對簡單的實現。以太坊中的每個數據塊都是一個253位素數域上的4096度多項式。我們廣播多項式的”份額”,每個份額由16個相鄰坐標的16個評估組成,這些坐標從總共8192個坐標中選取。8192個評估中的任意4096個(根據當前提議的參數:128個可能樣本中的任意64個)都可以恢復整個數據塊。
PeerDAS的工作原理是讓每個客戶端監聽少量子網,其中第i個子網廣播任何數據塊的第i個樣本,並通過詢問全局p2p網路中的對等節點(它們會監聽不同的子網)來獲取它需要的其他子網上的數據塊。一個更保守的版本SubnetDAS只使用子網機制,沒有額外的詢問對等節點的層。目前的提議是讓參與權益證明的節點使用SubnetDAS,而其他節點(即”客戶端”)使用PeerDAS。
理論上,我們可以將一維採樣擴展得相當遠:如果我們將數據塊數量上限增加到256(目標爲128),那麼我們將達到16 MB的目標,同時數據可用性採樣對每個節點的成本僅爲每個時隙16個樣本 128個數據塊 每個樣本每個數據塊512字節 = 1 MB的數據帶寬。這剛好在我們的容忍範圍內:可以做到,但這意味着帶寬受限的客戶端無法進行採樣。我們可以通過減少數據塊數量並增加數據塊大小來優化這一點,但這會使重構更加昂貴。
因此,我們最終想要更進一步,實現二維採樣,這種方法不僅在數據塊內進行隨機採樣,還在數據塊之間進行採樣。KZG承諾的線性特性被用來”擴展”區塊中的數據塊集合,生成一系列新的”虛擬數據塊”,這些虛擬數據塊冗餘地編碼相同的信息。
二維採樣。 來源:a16z 加密貨幣
至關重要的是,計算承諾的擴展不需要擁有數據塊,因此該方案從根本上適合分布式區塊構建。實際構建區塊的節點只需要有數據塊的KZG承諾,並且可以自己依靠DAS來驗證數據塊的可用性。一維DAS也天生適合分布式區塊構建。
當前的首要任務是完成PeerDAS的實施和推廣。之後,我們需要逐步增加PeerDAS上的數據塊數量,同時密切關注網路狀況並改進軟件以確保安全性。與此同時,我們需要更多的學術工作來正式化PeerDAS和其他版本的DAS,並研究它們與分叉選擇規則安全性等問題的相互作用。
展望未來,我們需要更多的工作來確定2D DAS的理想版本並證明其安全性。我們還希望最終從KZG遷移到一個抗量子、無需可信設置的替代方案。目前,我們還沒有找到適合分布式區塊構建的候選方案。即使是使用遞歸STARK生成行列重構有效性證明的昂貴”暴力”技術也不夠,因爲雖然理論上STARK的大小是O(log(n) * log(log(n))個哈希(使用STIR),但實際上STARK幾乎和整個數據塊一樣大。
從長遠來看,我認爲現實的路徑是:
我們可以將這些選擇視爲一個權衡譜系:
需要注意的是,即使我們決定直接在L1上擴展執行,這個選擇仍然存在。這是因爲如果L1要處理大量的TPS,L1區塊會變得非常大,客戶端將需要一種高效的方法來驗證它們的正確性,所以我們將不得不在L1上使用與rollups相同的技術(ZK-EVM和DAS)。
如果實施了數據壓縮(見下文),2D DAS的需求會有所減少,或至少會推遲。如果Plasma被廣泛使用,這種需求會進一步減少。DAS還給分布式區塊構建協議和機制帶來了挑戰:雖然DAS在理論上有利於分布式重構,但在實踐中需要與包含列表提案及其周圍的分叉選擇機制相結合。
rollup中的每個交易都會在鏈上佔用相當大的數據空間:一個ERC20轉帳大約需要180字節。即使採用理想的數據可用性採樣,這也會限制二層協議的可擴展性。以每個 Slot 16 MB計算,我們得到:
16000000 / 12 / 180 = 7407 TPS
如果我們不僅處理分子,還能處理分母,使rollup中的每個交易在鏈上佔用更少的字節,會怎樣呢?
我認爲最好的解釋是兩年前的 這個圖:
最簡單的收益就是零字節壓縮:用兩個字節表示有多少個連續的零字節來替代長序列的零字節。爲了更進一步,我們利用交易的特定屬性:
剩下要做的主要工作就是將上述方案落到實處。主要的權衡是:
採用ERC-4337,並最終將其部分內容納入L2 EVM,可以大大加快聚合技術的部署。在L1上納入ERC-4337的部分內容可以加快其在L2上的部署。
即使有16 MB的數據塊和數據壓縮,58,000 TPS(每秒交易數)不一定足以完全接管消費者支付、去中心化社交或其他高帶寬領域。特別是當我們考慮隱私因素時,可擴展性可能會下降3-8倍。對於高交易量、低價值的應用,目前的一個選擇是validium,它將數據保存在鏈下,並有一個有趣的安全模型:運營者無法竊取用戶資金,但他們可能會消失並暫時或永久凍結所有用戶的資金。但我們可以做得更好。
Plasma是一種擴展解決方案,運營者在鏈下發布區塊,並將這些區塊的Merkle根放在鏈上(與rollups不同,rollups將完整的區塊放在鏈上)。對於每個區塊,運營者向每個用戶發送一個Merkle分支,證明該用戶資產發生或未發生的情況。用戶可以通過提供Merkle分支來提取他們的資產。重要的是,這個分支不必根植於最新狀態 - 因此,即使數據可用性失敗,用戶仍然可以通過提取他們所擁有的最新可用狀態來恢復他們的資產。如果用戶提交無效分支(例如,退出已經發送給他人的資產,或運營者憑空創造資產),鏈上挑戰機制可以裁定資產應該歸屬於誰。
Plasma Cash鏈的示意圖。花費硬幣i的交易被放在樹的第i個位置。在這個例子中,假設所有先前的樹都是有效的,我們知道Eve當前擁有硬幣1,David擁有硬幣4,George擁有硬幣6。
Plasma的早期版本只能處理支付用例,無法有效地進一步推廣。然而,如果我們要求每個根都通過SNARK驗證,Plasma就變得更加強大。每個挑戰遊戲可以大大簡化,因爲我們消除了運營者作弊的大多數可能路徑。新的路徑也開放了,允許Plasma技術擴展到更廣泛的資產類別。最後,如果運營者不作弊,用戶可以立即提取他們的資金,而不需要等待一周的挑戰期。
制作 EVM 等離子鏈的一種方法(不是唯一的方法)是:使用ZK-SNARK構建一個與EVM並行的UTXO樹,反映EVM中的餘額變化,並定義不同時間點上”相同硬幣”的唯一映射。然後可以在此基礎上構建等離子體系統。
一個關鍵的見解是,等離子體系統不需要完美無缺。即使你只能保護一部分資產(例如,僅保護過去一周內未移動的硬幣),你也已經大大改善了超可擴展EVM的現狀,即validium。
另一類構造是等離子體/rollup混合體,例如Intmax。這些構造在鏈上爲每個用戶存儲很少量的數據(例如5字節),從而獲得介於等離子體和rollup之間的特性:以Intmax爲例,你可以獲得非常高的可擴展性和隱私性,盡管即使在16 MB的世界中,理論容量上限也約爲16,000,000 / 12 / 5 = 266,667 TPS(每秒交易數)。
主要剩餘的任務是將Plasma系統投入生產。如上所述,”plasma vs validium”並非二元對立:任何validium都可以通過在退出機制中添加Plasma功能來至少略微改善其安全屬性。研究部分在於爲EVM獲得最佳屬性(在信任要求、最壞情況下的L1 gas成本和對DoS的脆弱性方面),以及替代的應用特定構造。此外,Plasma相對於rollups的更大概念復雜性需要直接解決,既通過研究,也通過構建更好的通用框架。
使用Plasma設計的主要權衡是它們更依賴於運營商,並且更難做到”基於“,盡管混合plasma/rollup設計通常可以避免這個弱點。
Plasma 解決方案越有效,L1 擁有高性能數據可用性功能的壓力就越小。將活動轉移到 L2 還可以減少 L1 上的 MEV 壓力。
如今,大多數匯總實際上還不是去信任的;有一個安全理事會有能力推翻(樂觀或有效性)的行爲 證明系統。在某些情況下,證明系統甚至根本不存在,或者即使存在也僅具有“諮詢”功能。最領先的是 (i) 一些特定於應用程序的匯總,例如 Fuel,它們是去信任的,以及 (ii) 截至撰寫本文時,Optimism 和 Arbitrum,這兩個完整的 EVM 匯總已經實現了部分去信任裏程碑稱爲“第一階段”。 Rollups 沒有進一步發展的原因是擔心代碼中的 bug。我們需要去信任的匯總,因此我們需要正面解決這個問題。
首先,讓我們回顧一下”階段”系統,這個概念最初是在這篇文章中提出的。雖然有更詳細的要求,但概括如下:
目標是達到第2階段。達到第2階段的主要挑戰是獲得足夠的信心,確保證明系統真的足夠可信。有兩種主要方法可以做到這一點:
多重證明者的示意圖,結合了一個樂觀證明系統、一個有效性證明系統和一個安全委員會。
對於形式驗證,還有很多工作要做。我們需要創建一個完整的EVM SNARK證明器的形式驗證版本。這是一個極其復雜的項目,盡管我們已經開始了。有一個技巧可以顯著簡化這個任務:我們可以爲一個最小化的虛擬機(如RISC-V或Cairo)創建一個經過形式驗證的SNARK證明器,然後在該最小化虛擬機中編寫EVM的實現(並正式證明其與其他EVM規範的等價性)。
對於多重證明者,還有兩個主要的待完成部分。首先,我們需要對至少兩個不同的證明系統建立足夠的信心,確保它們各自都是合理安全的,並且如果它們出現故障,會因不同且無關的原因而故障(因此不會同時失效)。其次,我們需要對合並證明系統的底層邏輯獲得非常高水平的保證。這是一個更小的代碼部分。有些方法可以使其變得非常小——只需將資金存儲在一個Safe多重籤名合約中,其籤名者是代表各個證明系統的合約——但這會帶來鏈上gas成本高的權衡。需要在效率和安全性之間找到平衡。
將活動轉移到二層網路可以減少一層網路上的MEV(最大可提取價值)壓力。
當前二層網路生態系統的一個主要挑戰是用戶難以導航。此外,最簡單的使用方式往往會重新引入信任假設:中心化橋接、RPC客戶端等。如果我們認真對待二層網路是以太坊一部分的想法,我們需要讓使用二層網路生態系統感覺就像使用一個統一的以太坊生態系統。
這裏有一個病態且危險的跨二層網路用戶體驗示例(我個人因鏈選擇錯誤在這裏損失了100美元)- 盡管這不是Polymarket的錯,跨二層網路互操作性應該是錢包和以太坊標準(ERC)社區的責任。在一個運作良好的以太坊生態系統中,從一層網路發送代幣到二層網路,或從一個二層網路發送到另一個,應該感覺就像在同一個一層網路內發送代幣一樣。
有許多類別的跨二層網路互操作性改進。通常,提出這些改進的方法是注意到理論上,以rollup爲中心的以太坊與一層執行分片是一回事,然後問當前以太坊二層網路生態系統在實踐中與這個理想有何不足。以下是一些例子:
輕客戶端如何更新其對以太坊頭鏈的視圖。一旦你有了頭鏈,你就可以使用默克爾證明來驗證任何狀態對象。一旦你有了正確的一層網路狀態對象,你就可以使用默克爾證明(如果你想檢查預確認,可能還需要籤名)來驗證二層網路上的任何狀態對象。Helios已經實現了前者。將其擴展到後者是一個標準化挑戰。
密鑰庫錢包如何工作的簡化圖示。
上述許多例子都面臨着何時標準化以及在哪些層面上標準化的常見困境。如果過早標準化,你可能會固化一個劣質解決方案。如果標準化太晚,你可能會造成不必要的碎片化。在某些情況下,既有短期解決方案(屬性較弱但易於實施),也有長期解決方案(”最終正確”但需要幾年時間才能實現)。
這一部分的獨特之處在於,這些任務不僅僅是技術問題:它們也是(甚至可能主要是!)社會問題。它們需要二層網路、錢包和一層網路的合作。我們能否成功處理這個問題,是對我們作爲一個社區團結一致能力的考驗。
這些提案大多是”高層”構造,因此不會對一層網路考慮產生重大影響。一個例外是共享排序,它對MEV(最大可提取價值)有重大影響。
如果 L2 變得非常可擴展且成功,但 L1 仍然只能處理非常少量的交易,那麼以太坊可能會出現許多風險:
出於這些原因,繼續擴展 L1 本身並確保它能夠繼續適應越來越多的用途是很有價值的。
擴展以太坊最簡單的方法是直接提高gas限制。然而,這可能會導致L1層中心化,從而削弱以太坊L1最強大的特性之一:作爲穩健基礎層的可信度。關於多大程度的gas限制提升是可持續的,目前仍存在爭議。這個問題還會隨着其他使大區塊更易驗證的技術(如歷史過期、無狀態性、L1 EVM有效性證明等)的實施而變化。另一個需要持續改進的重要方面是以太坊客戶端軟件的效率,現在的效率已經比五年前高得多。一個有效的L1 gas限制提升策略應該包括加速這些驗證技術的發展。
另一種擴展策略是識別特定功能和計算類型,在不損害網路去中心化或安全性的前提下降低其成本。例如:
這些改進將在以後關於 Splurge 的文章中更詳細地討論。
最後,第三個策略是 原生匯總 (或“enshrined rollups”):本質上,創建並行運行的 EVM 的許多副本,從而形成一個與 rollups 可以提供的模型等效的模型,但更原生地集成到協議中。
L1 擴展有三種策略,可以單獨或並行執行:
值得理解的是,這些是不同的技術,有不同的權衡。例如,原生rollups在可組合性方面有許多與普通rollups相同的弱點:你不能發送一個單一的交易在多個rollups之間同步執行操作,就像你可以在同一個L1(或L2)上的合約那樣。提高gas限制會減少通過使L1更容易驗證而可能獲得的其他好處,如增加運行驗證節點的用戶比例和增加單獨質押者。降低EVM中特定操作的成本,取決於具體實施方式,可能會增加EVM的總體復雜性。
任何 L1 擴展路線圖都需要回答的一個大問題是: L1 和 L2 的最終願景是什麼?顯然,這是荒謬的 一切 繼續 L1:潛在的用例每秒有數十萬個事務,這將使 L1 完全無法驗證(除非我們採用本機匯總路線)。但我們確實需要 一些 指導原則,這樣我們就可以確保我們不會造成這樣的情況:我們將 Gas 限制提高 10 倍,嚴重損害以太坊 L1 的去中心化,並發現我們只是進入了一個 99% 的活動都在在 L2 上,90% 的活動都在 L2 上,因此結果看起來幾乎相同,除了以太坊 L1 特殊之處的大部分不可逆轉的損失。
一種關於 L1 和 L2 之間“分工”的提議觀點, 來源。
將更多用戶帶到L1意味着不僅要改善規模,還要改善L1的其他方面。這意味着更多的MEV(最大可提取價值)將留在L1上(而不是僅成爲L2的問題),因此將更加迫切需要明確處理它。這大大增加了在L1上擁有快速時隙時間的價值。它也高度依賴於L1的驗證(”the Verge”)進展順利。