以太坊跨鏈迎來新解法:EEZ 如何打破 L2 流動性孤島?

  • 以太坊經濟區(EEZ)稱能讓已連接的 Rollup 在一筆交易內同步使用以太坊及其他 EEZ 鏈的資源,打破 L2 流動性孤島。
  • 代價是每次跨鏈調用都須經組合器、須在 12 秒 slot 內完成實時證明;驗證者自行構建的約 7% 以太坊區塊無法發生同步調用。
總結

撰文:0xJaehaerys

編譯:白話區塊鏈

每個人都對流動性碎片化問題耳熟能詳。以太坊生態系統的流動性分散在 L1 和數十個 L2 上。

在 Rollup 上,你無法在一筆交易中完成以下操作:在主網 Aave 上借出 USDC,在 Uniswap 上將其兌換為 ETH,然後將其作為保證金存入永續合約 DEX。你必須打開跨鏈橋、跨鏈轉移、在這裡授權、發送到那裡、再次跨鏈、最後存入。

IMG_257

以太坊經濟區(EEZ)將這一切變成了一筆交易。EEZ 中的 Rollup 可以像處於同一條鏈上一樣,使用以太坊以及其他 EEZ Rollup 上的所有資源(同步可組合性)。

IMG_258

什麼是 EEZ

EEZ 由以太坊上的合約以及將各條鏈連接到這些合約的規則組成。它不是一條新鏈,也不是一套新堆疊。一條已連接的鏈可以在一筆交易中使用以太坊或任何其他已連接鏈上的資源。這個想法源於執行分片(execution sharding,一個古老的以太坊擴容計畫),而即時證明(real-time proving)使其成為現實。

EEZ 的出發點是:L1 周圍的鏈數量不會減少。即使推向極限,L1 也無法承載全球經濟,它沒有足夠的頻寬。而且並非所有人都適合待在 L1 上——L1 上沒有人會幫你糾正錯誤,而銀行或交易平台需要不同的規則。各條鏈將各不相同,涵蓋 EVM 和非 EVM、公有、私有或許可鏈,而我們的任務就是讓它們像一個整體一樣協同工作。

IMG_259

區域內的每條鏈仍然按照自己喜歡的虛擬機(VM)和順序執行交易。它也自行決定允許誰加入以及信任哪些證明。區域內所有鏈共享的是以太坊區塊。它們中的每一條都可以在同一個區塊中使用 L1 上的流動性、合約和密鑰。「經濟區」這個名字正是源於此——一個擁有共享市場、但每條鏈都有各自獨立規則的區域。

要加入 EEZ,一條鏈必須至少滿足兩個條件:在一個 slot 內證明其狀態,以及在以太坊發生重組(reorg)時與之一起回滾。第二個條件是為了防止重組發生後,某條鏈上留下一筆交易,而該交易在以太坊上的另一半卻消失了。EEZ 合約看不到鏈內部發生了什麼,它只需要該鏈的證明和狀態根(承諾該鏈整個狀態的雜湊值)。鏈可以擁有任何 VM 和任何准入規則,且不強制要求特定的證明器。現有的 L2 都可以加入。

IMG_260

從技術上講,EEZ 依託於三個核心組件:

  • 即時證明(Real-time proving)。鏈在一個以太坊 slot 內證明其新狀態。
  • 組合器(Composer)。一個在出塊前在交易涉及的每條鏈上預先執行該交易的操作員,用於準備跨鏈呼叫的答案。
  • 代理(Proxy)。一條鏈上用來代表另一條鏈上合約的合約。

什麼是即時證明

有效性證明(validity proof)用於表明一條鏈遵循其規則達到了新狀態。以太坊上的合約無需重新執行該鏈的區塊即可驗證它。即時證明意味著證明在一個以太坊 slot 內——即 12 秒內——準備就緒。

一年前,即時證明曾引起巨大轟動。當時 ZisK 需要 24 張 RTX 5090 顯卡,而今天只需要 4 張就夠了(Ethproofs)。

EEZ 需要它,因為以太坊不執行 Rollup 的程式碼,它只在附帶證明的情況下接受 Rollup 的答覆。過去生成證明需要幾分鐘甚至幾小時,答覆無法在發起呼叫的同一個區塊內到達;而在一個 slot 內完成的證明讓這一切成為可能。

在 EEZ 的設計中,Rollup 對跨鏈呼叫的答覆是在出塊前準備好的。組合器計算出結果,證明器證明該結果,建構者(builder)將證明連同需要該答覆的交易一起打包進以太坊區塊——所有這些操作必須在同一個 12 秒內完成。

IMG_261

同步呼叫如何運作

理解這一過程最簡單的方式,是看一筆從以太坊到 Rollup 的單次呼叫(兩條 Rollup 之間的呼叫路徑相同)。

代理(Proxy)

對另一條鏈的呼叫透過代理進行。Rollup 上的每個合約在以太坊上都有一個預先可知的代理地址,反之亦然。該地址透過 CREATE2,根據 EEZ 合約地址、原始合約地址以及 EEZ 註冊表中的鏈 ID 計算得出。任何人都可以將該代理部署到該地址。在呼叫方合約看來,代理就像任何其他本地合約一樣。跨鏈呼叫在程式碼中寫起來就像普通呼叫一樣,無需藉助訊息傳遞協議。

IMG_262

組合器與執行表(Composer and the execution table)

組合器在交易涉及的每條鏈上執行該交易,並將每次跨鏈呼叫寫入執行表——一張預先計算答案的表格。每個條目(執行條目)包含呼叫的答案、呼叫前後 Rollup 的狀態根、Rollup 將回調至以太坊的呼叫列表,以及這些呼叫及其結果的滾動雜湊(rolling hash)。一份證明即可涵蓋整張表。

IMG_263

組合器向建構者發送一個交易包(bundle),建構者要麼按順序完整包含這組交易,要麼完全不包含。交易包中的第一筆是 postAndVerifyBatch 交易,其中包含 Rollup 的批次、執行表和證明;用戶的交易緊隨其後。Rollup 上的跨鏈部分在一個同步區塊(Sync block)中執行,Rollup 為每個以太坊區塊生成一個同步區塊並與之綁定。如果交易包錯過了該區塊,同步區塊就會回滾。

IMG_264

驗證批次與代理的答覆

postAndVerifyBatch 交易會驗證批次的證明。信任哪種證明系統(ZK、TEE、多簽或它們的組合)以及每個批次需要多少個證明,均由 Rollup 的擁有者決定,EEZ 不為這些系統背書。批次中的每一份證明都必須通過驗證。之後,EEZ 合約會儲存執行表的條目以及狀態根轉換,當呼叫到達時,代理將檢查並套用這些資料。

IMG_265

接下來執行用戶的交易。當它呼叫代理時,代理會在 EEZ 合約中查找該呼叫的條目,且僅在滿足以下條件時才從中給出答覆:該呼叫與組合器模擬的完全一致、該條目隨同一區塊的批次一同到達,且 Rollup 回調以太坊所產生的滾動雜湊相匹配。

IMG_266

回調至以太坊

Rollup 回調至以太坊的呼叫由以太坊直接執行,而 Rollup 則從組合器的模擬中獲取這些呼叫的答案。呼叫可以巢狀——透過這種方式被呼叫的以太坊合約,可以透過代理再次呼叫 Rollup 上的合約,而該巢狀呼叫的答案早已存在於執行表中。

IMG_267

開篇的那筆交易

這筆交易的方向相反,是從 Rollup 到以太坊。在出塊前,組合器在兩條鏈上執行該交易,並將你的錢包會收回的所有內容寫入執行表。建構者將帶有執行表和證明的批次放入以太坊區塊,EEZ 合約進行驗證,隨後該交易在 Rollup 的同步區塊中執行。對 Aave 和 Uniswap 的呼叫由組合器在同一交易包中的交易在以太坊上執行,而你透過向組合器支付更高的打賞(tip)來承擔這筆 L1 Gas 費。

  1. 錢包在 Rollup 上呼叫 Aave 的代理並借出 USDC。Aave 會將你在以太坊上的錢包代理視為借款人(抵押品必須事先存放在該地址)。
  2. 錢包透過 Uniswap 的代理將 USDC 兌換為 ETH,並從執行表中讀取答案。
  3. 跨鏈橋在 Rollup 上記入這筆 ETH。
  4. 錢包將該 ETH 作為保證金存入交易平台。

如果組合器在模擬中發現任何失敗步驟,就不會發送該交易包。如果以太坊上的實際執行結果與模擬不符,以太坊和 Rollup 上的所有操作都會全部回滾。

IMG_268

這帶來了什麼改變

上述交易僅僅展示了其中一種可能性。呼叫可以在所有方向上進行:L1 → L2、L2 → L1 或 L2 → L2。

任何 Rollup 都能共享以太坊的流動性

EEZ 中的新鏈無需透過 Token 激勵來冷啟動流動性,它可以直接使用 L1 上已有的流動性和應用。在 EEZ 位於主網的測試 Rollup RollupX 上,有人從以太坊的 Uniswap 池中購買了 CRV。當時 Rollup 上根本不存在 CRV,跨鏈橋在同一筆兌換交易中直接鑄造了封裝版 CRV(tx)。

當每條 EEZ 鏈都這樣做時,交易量都會匯入同一個 L1 資金池,而不會在各條鏈之間碎片化。以太坊上的其他協議也不需要在每條鏈上重複部署。這些呼叫的 Gas 在 L1 上支付,EEZ 鏈上的活動越多,意味著對以太坊區塊空間的需求就越大。

IMG_270

應用推出 Rollup 是為了控制交易排序並保留 MEV,交易平台也希望擁有客製化的撮合引擎。過去的代價是犧牲與以太坊的可組合性,因為 L1 的合約和流動性對 Rollup 而言只能非同步使用。在 EEZ 中,交易平台可以用自己的引擎撮合訂單,而訂單簿無法成交的部分,則會在同步區塊中直接針對以太坊上的資金池執行。

IMG_271

L1 上的密鑰管理

密鑰和權限可以留在 L1 上,因為 Rollup 上的合約可以在同一筆交易中讀取以太坊的狀態。多簽錢包 Safe 已經在 RollupX 上以這種方式運作。Rollup 上的 Safe 不儲存擁有者列表,而是在每筆交易中從以太坊上的 Safe 讀取該列表。你只需在 L1 上變更一次擁有者或撤銷一次密鑰,從下一筆交易開始,它就會在所有從 L1 讀取擁有者的鏈上生效。代價是該 Safe 的每筆交易都需要發起一次跨鏈呼叫並等待下一個同步區塊。以太坊上的 Safe 和 Rollup 上的 Safe 可以共同管理一個金庫——它們共享同一筆預算,且雙方只需一個簽名即可完成支付。

許可鏈與私有鏈

EEZ 中的鏈不必是公有鏈。像 Aztec 這樣的隱私鏈,或者由政府運作的許可鏈,都可以加入 EEZ 並使用 L1 流動性。目前運作中最接近的實例是 RollupX 上的隱私池 Bermuda Bay——它隱藏了交易者的身分,同時兌換操作在同一筆交易中於 L1 的 Uniswap V3 上執行(tx)。

Rollup 作為協處理器

Rollup 可以充當以太坊的協處理器。對 L1 而言計算成本過高的任務可以在 Rollup 上執行,而以太坊上的合約在同一區塊內根據其結果採取行動。在以太坊上驗證一個抗量子的 Falcon 簽名需要消耗 550 萬 Gas;而在 EEZ 的演示中,該簽名在 Rollup 上完成驗證,其結果無需任何預編譯合約或硬分叉,便直接授權了 L1 上 Safe 的一筆付款。只要新的密碼學和新的虛擬機存在於經濟區內的鏈上,以太坊就能直接使用它們。

IMG_272

局限性

EEZ 中的鏈無法同時兼得快速出塊、與以太坊的同步呼叫以及去中心化排序器——它必須三選二(Gnosis 論壇)。例如,一條擁有 200 毫秒出塊速度的快速鏈,需要中心化排序器才能實現與以太坊的同步呼叫。每 60 個區塊中只有 1 個是同步區塊,該鏈上的應用每 12 秒才能觸達以太坊一次。不過這條鏈依然正常可用,只是跨鏈部分以 L1 的速度運行並依賴於 L1 的區塊空間。

每一次跨鏈呼叫都要經過組合器。它必須在出塊前看到未加密的交易,因此組合器和建構者將優先獲得其中的 MEV。

目前有 7% 的以太坊區塊由驗證者自行建構,不經過外部建構者。在這些 slot 中不會發生同步呼叫。

在上線首月,每一個 EEZ 批次都落入了外部 MEV-Boost 建構者的區塊中。其中 56% 的批次進入了 Titan 建構的區塊(而 Titan 平常的出塊占比為 48%)。有意思的是,Titan 現在也能捕獲跨鏈 MEV 了。

藉助 EEZ,Rollup 不再需要在「運行獨立鏈」和「留在以太坊上」之間二選一。它既保留了對交易排序和規則的控制權,又能在同一個區塊內無縫使用以太坊的流動性與應用。

分享至:

作者:白话区块链

本文為PANews入駐專欄作者的觀點,不代表PANews立場,不承擔法律責任。

文章及觀點也不構成投資意見

圖片來源:白话区块链如有侵權,請聯絡作者刪除。

關注PANews官方賬號,一起穿越牛熊
PANews APP
Cloudflare 開源為 AI 智能體打造的瀏覽器 Kitesurf,消耗資源低於 Chromium
PANews 快訊