本文源于 PKU Blockchain 研究部每周例会,写在 Optimism Bedrock 升级之后和以太坊 Dencun 升级之前。
以太坊 Dencun 升级的核心提案 EIP-4844 将引入 blob 数据结构以替代传统的 calldata 格式,可以大大降低现有 L2 Rollup 路线的 calldata gas。在 Optimism、Arbitrum、ZKSync era中,calldata gas/non calldata gas 的比值(70、5.5、0.45)递减。因此仅从 gas 的角度考虑,EIP-4844 的实施将最大程度地利好 Optimism。
L2 Rollup 是一种以太坊扩容方案,能够显著降低 gas、提高交易速度。Rollup 的本质是在以太坊 L1 之外的 L2 上执行交易,再将相关数据压缩、打包后再发布到以太坊 L1 上。
比如,OP Rollup 会向以太坊 L1 提交 ① 每个区块初始和结束的状态根,② 中间状态根,③ 压缩后交易数据;ZK Rollup 会向以太坊 L1 提交 ① 每个区块初始和结束的状态根,② ZK证明,③ 压缩后交易数据。
我们结合负债端和资产端的视角来理解 L2 Rollup 路线的 gas。
负债端包含 ① L2 Rollup 合约在以太坊 L1 上发布 calldata 数据的 gas,② 执行 L2 Rollup 合约 opcode 的 gas(如提交状态根、发布证明),③ 非合约 gas(如 OP Rollup 运营目前中心化 sequencer 的花费),④ 一笔以太坊交易固定需要的 21000 gas。对于 ①,在 EIP-4844 实施前,多笔 L2 交易打包的数据通过 calldata 格式发布在 一笔 L1 交易中,calldata gas 等于 data 字段值中非零字节数乘以 16,加上零字节数乘以 4。
资产端为 L2 Rollup 合约向其用户收取的手续费,名目上一般包含 L2 gas fee 和 L1 gas fee 两部分,其中 L1 gas fee 占据了绝大部分。L1 gas 一个通用的估算方式是 calldata gas 加上 non calldata gas,粗略对应着负债端的 ① 和 ②+④(③由所有 L2 用户分摊,可忽略)。
Optimism 在北京时间 6 月 7 日零时成功进行了 Bedrock 升级,显著降低了 gas 费用。负债端上,每笔 L2 交易向以太坊 L1 支付的 gas 从 5500 下降到 3000 左右,其中 non calldata gas 从 2300 左右下降到 40 左右,于是 calldata gas/non calldata gas 的值约为70、一笔 L2 交易消耗的绝大部分都是 calldata gas。相应的,在资产端,L2 用户为每笔 L2 交易支付的 L1 gas 从 7000 下降到 3500 左右。
Bedrock 升级前后, Op 的利润率保持在 30% 左右,calldata 压缩率(即 L1 calldata gas 和 L2 calldata gas 的比值)稳定在 62% 左右。
数据来源:https://dune.com/oplabspbc/optimism-bedrock-migration-impact-dashboard
同样沿着 OP Rollup 路线,Arbitrum 使用执行于链下的多轮欺诈证明,相比于 Optimism 的单轮欺诈证明效率更高。
负债端上,每笔 L2 交易向以太坊 L1 平均支付的 gas 在 2500-3000 之间浮动。根据笔者测算,Arbitrum 上 calldata gas/non calldata gas 的值约为 5.5。
Arbitrum 的利润率在 40% 上下浮动,略高于 Optimism,但是鉴于 Arbitrum 的 refund 机制,实际利润率会低于 40%。
数据来源:https://dune.com/queries/2656656
ZKSync era 采用了 ZK Rollup 路线,由于在以太坊 L1 上发布零知识证明需要消耗大量的 non calldata gas,ZK Rollup 的 calldata gas/non calldata gas 值相对于 OP Rollup 较低。
根据笔者测算,ZKSync era 上 calldata gas/non calldata gas 的值约为 0.45。
数据来源:https://dune.com/queries/2655634
作为以太坊 Dencun 升级的核心提案,EIP-4844 提案名称为 Proto-Danksharding,是完整版分片扩容 Danksharding 的前置方案。提案主要的内容是引入了 Blob 数据格式以代替 Calldata 格式,Blob 具有诸多特性,其与传统 L1 在一笔交易中的对比如下:
L1 ① 用户通过以太坊 JSON-RPC 应用程序接口发出请求,交易被提交至以太坊执行客户端验证其有效性(即是否拥有足够的费用)。若有效,执行客户端将这笔交易添加至本地内存池,并通过执行层广播网络将其广播到其他节点,其他节点将其添加到本地内存池。
Blob ① L2 Sequencer 确定交易,将交易的结果、证明和数据包(Blob)传到 L1 的交易池中。
L1 ② 当前的区块提议者的执行客户端将来自本地内存池的交易捆绑到 execution payload 中,并在本地执行以生成状态更改。此信息被传递到共识客户端,execution payload 被包装为信标区块的一部分(合并后的信标区块,执行层被包裹在共识层里)。
Blob ② L1 的提议者节点看到了交易,它会在新信标区块的 execution payload 里执行相关交易并进行广播;但在广播时,它会把 Blob 分离出来留在共识层中,而不会把它放进执行层的新区块。
L1 ③ 其他节点在共识层广播网络上接受新的信标区块,并将其传递给其执行客户端。交易在本地执行以确保提议状态有效,随后验证者证明该区块有效、添加到证明它的每个节点的本地数据库中。
Blob ③ 其它节点会收到了新的区块提议和交易结果。如果它们有需要成为 L2 验证者,可以去 Blob Sidecar 下载相关的数据。
**Blob 对传统 L2 Rollup 的改进在于关键两点。**第一, calldata 存在于 execution payload 中,而 blob 数据存储于共识层中、不能像 calldata 那样被 EVM 所读取。第二,Blob 有生命周期,在 30 天之后将被删除。虽然目前 Blob 设计的具体参数仍未确定,但是已经确定的是 Blob 将引入新的 gas fee 市场,并将大幅降低原先的 calldata gas。
对比 Optimism,Arbitrum,ZKSync era 三个 L2 Rollup 协议,calldata gas/non calldata gas 的值递减,因此可以认为 EIP-4844 引入的 Blob 交易将最大程度地利好 Optimism,其次是 Arbitrum,对于 ZKSync era 的利好比较有限。
以太坊 Dencun 升级时间暂定于今年年底,除了 EIP-4844 外,Dencun 升级还包含以下四个提案:
EIP-1153 引入了临时存储操作码,Optimism 团队曾表示,仅在 Uniswap 上该提案即可为用户节省预估高达 300 万美元的 gas 成本。
EIP-4788 将在以太坊虚拟机中公开信标链区块根,可改进跨链桥和权益池的设计。
EIP-5656 将为以太坊提供一个能够用于复制内存区域的高效 EVM 指令,以节省 gas。
EIP-6780 改变了 SELFDESTRUCT 操作码的功能。
Dencun 升级最大受益者无疑是 L2 项目,以太坊费率的下降、理论 TPS 的提升,叠加宏观环境的复苏,使得 L2 生态十分值得期待。但是,一方面是火热的扩容之争,另一方面 L2 的“鬼城”现象不可忽视。根据 L2 BEAT 的数据,虽然众多 L2 的理论 TPS 远高于以太坊主网,但其实际 TPS 并不比以太坊主网高(7 月 6 日数据),L2 的生态其实还没有营造完善、过剩的“产能”并没有足以匹配的需求。

