以太坊跨链迎来新解法:EEZ 如何打破 L2 流动性孤岛?

CN
43分钟前
打破链间壁垒,共享以太坊主网流动性。

作者:0xJaehaerys

编译:白话区块链

每个人都对流动性碎片化问题耳熟能详。以太坊生态系统的流动性分散在 L1 和数十个 L2 上。

在 Rollup 上,你无法在一笔交易中完成以下操作:在主网 Aave 上借出 USDC,在 Uniswap 上将其兑换为 ETH,然后将其作为保证金存入永续合约 DEX。你必须打开跨链桥、跨链转移、在这里授权、发送到那里、再次跨链、最后存款。

以太坊经济区(EEZ)将这一切变成了一笔交易。EEZ 中的 Rollup 可以像处于同一条链上一样,使用以太坊以及其他 EEZ Rollup 上的所有资源(同步可组合性)。

什么是 EEZ

EEZ 由以太坊上的合约以及将各条链连接到这些合约的规则组成。它不是一条新链,也不是一套新堆栈。一条已连接的链可以在一笔交易中使用以太坊或任何其他已连接链上的资源。这个想法源于执行分片(execution sharding,一个古老的以太坊扩容计划),而实时证明(real-time proving)使其成为现实。

EEZ 的出发点是:L1 周围的链数量不会减少。即使推向极限,L1 也无法承载全球经济,它没有足够的带宽。而且并非所有人都适合待在 L1 上——L1 上没有人会帮你纠正错误,而银行或交易平台需要不同的规则。各个链将各不相同,涵盖 EVM 和非 EVM、公有、私有或许可链,而我们的任务就是让它们像一个整体一样协同工作。

区域内的每条链仍然按照自己喜欢的虚拟机(VM)和顺序运行交易。它也自行决定允许谁加入以及信任哪些证明。区域内所有链共享的是以太坊区块。它们中的每一条都可以在同一个区块中使用 L1 上的流动性、合约和密钥。“经济区”这个名字正是源于此——一个拥有共享市场、但每条链都有各自独立规则的区域。

要加入 EEZ,一条链必须至少满足两个条件:在一个 slot 内证明其状态,以及在以太坊发生重组(reorg)时与之一起回滚。第二个条件是为了防止重组发生后,某条链上留下一笔交易,而该交易在以太坊上的另一半却消失了。EEZ 合约看不到链内部发生了什么,它只需要该链的证明和状态根(承诺该链整个状态的哈希值)。链可以拥有任何 VM 和任何准入规则,且不强制要求特定的证明器。现有的 L2 都可以加入。

从技术上讲,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 秒内完成。

同步调用如何运作

理解这一过程最简单的方式,是看一笔从以太坊到 Rollup 的单次调用(两条 Rollup 之间的调用路径相同)。

  • 代理(Proxy)

    对另一条链的调用通过代理进行。Rollup 上的每个合约在以太坊上都有一个预先可知的代理地址,反之亦然。该地址通过 CREATE2,根据 EEZ 合约地址、原始合约地址以及 EEZ 注册表中的链 ID 计算得出。任何人都可以将该代理部署到该地址。在调用方合约看来,代理就像任何其他本地合约一样。跨链调用在代码中写起来就像普通调用一样,无需借助消息传递协议。

  • 组合器与执行表(Composer and the execution table)

    组合器在交易涉及的每条链上运行该交易,并将每次跨链调用写入执行表——一张预计算答案的表格。每个条目(执行条目)包含调用的答案、调用前后 Rollup 的状态根、Rollup 将回调至以太坊的调用列表,以及这些调用及其结果的滚动哈希(rolling hash)。一份证明即可覆盖整张表。

组合器向构建者发送一个交易包(bundle),构建者要么按顺序完整包含这组交易,要么完全不包含。交易包中的第一笔是 postAndVerifyBatch 交易,其中包含 Rollup 的批次、执行表和证明;用户的交易紧随其后。Rollup 上的跨链部分在一个同步区块(Sync block)中执行,Rollup 为每个以太坊区块生成一个同步区块并与之绑定。如果交易包错过了该区块,同步区块就会回滚。

  • 验证批次与代理的答复

    postAndVerifyBatch 交易会验证批次的证明。信任哪种证明系统(ZK、TEE、多签或它们的组合)以及每个批次需要多少个证明,均由 Rollup 的所有者决定,EEZ 不为这些系统背书。批次中的每一份证明都必须通过验证。之后,EEZ 合约会存储执行表的条目以及状态根转换,当调用到达时,代理将检查并应用这些数据。

接下来执行用户的交易。当它调用代理时,代理会在 EEZ 合约中查找该调用的条目,且仅在满足以下条件时才从中给出答复:该调用与组合器模拟的完全一致、该条目随同一区块的批次一同到达,且 Rollup 回调以太坊所产生的滚动哈希相匹配。

  • 回调至以太坊

    Rollup 回调至以太坊的调用由以太坊直接执行,而 Rollup 则从组合器的模拟中获取这些调用的答案。调用可以嵌套——通过这种方式被调用的以太坊合约,可以通过代理再次调用 Rollup 上的合约,而该嵌套调用的答案早已存在于执行表中。

  • 开篇的那笔交易

    这笔交易的方向相反,是从 Rollup 到以太坊。在出块前,组合器在两条链上执行该交易,并将你钱包将收回的所有内容写入执行表。构建者将带有执行表和证明的批次放入以太坊区块,EEZ 合约进行验证,随后该交易在 Rollup 的同步区块中执行。对 Aave 和 Uniswap 的调用由组合器在同一交易包中的交易在以太坊上执行,而你通过向组合器支付更高的打赏(tip)来承担这笔 L1 Gas 费。

  1. 钱包在 Rollup 上调用 Aave 的代理并借出 USDC。Aave 会将你在以太坊上的钱包代理视为借款人(抵押品必须事先存放在该地址)。

  2. 钱包通过 Uniswap 的代理将 USDC 兑换为 ETH,并从执行表中读取答案。

  3. 跨链桥在 Rollup 上记入这笔 ETH。

  4. 钱包将该 ETH 作为保证金存入交易平台。

如果组合器在模拟中发现任何失败步骤,就不会发送该交易包。如果以太坊上的实际执行结果与模拟不符,以太坊和 Rollup 上的所有操作都会全部回滚。

这带来了什么改变

上述交易仅仅展示了其中一种可能性。调用可以在所有方向上进行:L1 → L2、L2 → L1 或 L2 → L2。

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

EEZ 中的新链无需通过Token激励来冷启动流动性,它可以直接使用 L1 上已有的流动性和应用。在 EEZ 位于主网的测试 Rollup RollupX 上,有人从以太坊的 Uniswap 池中购买了 CRV。当时 Rollup 上根本不存在 CRV,跨链桥在同一笔兑换交易中直接铸造了封装版 CRV(tx)。

当每条 EEZ 链都这样做时,交易量都会汇入同一个 L1 资金池,而不会在各条链之间碎片化。以太坊上的其他协议也不需要在每条链上重复部署。这些调用的 Gas 在 L1 上支付,EEZ 链上的活动越多,意味着对以太坊区块空间的需求就越大。

应用推出 Rollup 是为了控制交易排序并保留 MEV,交易平台也希望拥有定制的撮合引擎。过去的代价是牺牲与以太坊的可组合性,因为 L1 的合约和流动性对 Rollup 而言只能异步使用。在 EEZ 中,交易平台可以用自己的引擎撮合订单,而订单簿无法成交的部分,则会在同步区块中直接针对以太坊上的资金池执行。

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 的一笔付款。只要新的密码学和新的虚拟机存在于经济区内的链上,以太坊就能直接使用它们。

局限性

EEZ 中的链无法同时兼得快速出块、与以太坊的同步调用以及去中心化排序器——它必须三选二(Gnosis 论坛)。例如,一条拥有 200 毫秒出块速度的快速链,需要中心化排序器才能实现与以太坊的同步调用。每 60 个区块中只有 1 个是同步区块,该链上的应用每 12 秒才能触达以太坊一次。不过这条链依然正常可用,只是跨链部分以 L1 的速度运行并依赖于 L1 的区块空间。

每一次跨链调用都要经过组合器。它必须在出块前看到未加密的交易,因此组合器和构建者将优先获得其中的 MEV。

目前有 7% 的以太坊区块由验证者自行构建,不经过外部构建者。在这些 slot 中不会发生同步调用。

在上线首月,每一个 EEZ 批次都落入了外部 MEV-Boost 构建者的区块中。其中 56% 的批次进入了 Titan 构建的区块(而 Titan 平常的出块占比为 48%)。有意思的是,Titan 现在也能捕获跨链 MEV 了。

借助 EEZ,Rollup 不再需要在“运行独立链”和“留在以太坊上”之间二选一。它既保留了对交易排序和规则的控制权,又能在同一个区块内无缝使用以太坊的流动性与应用。

本文链接:https://www.hellobtc.com/kp/du/11/6498.html

来源:https://x.com/0xJaehaerys/status/2120505244690120808

免责声明:本文章仅代表作者个人观点,不代表本平台的立场和观点。本文章仅供信息分享,不构成对任何人的任何投资建议。用户与作者之间的任何争议,与本平台无关。如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到[email protected],本平台相关工作人员将会进行核查。

分享至:
APP下载

X

Telegram

Facebook

Reddit

复制链接