EIP-4844的潜在影响:究竟能在多大程度上提高可扩展性和降低交易费用?
原文作者:0x fan,Smarti Lab
原文编译:Peng SUN,Foresight News
TL;DR:
1.我们通过两种计算方法来评估实施 EIP-4844 后可能会减少的 Gas 费、TPS(每秒交易量)和容纳 Rollups 的能力。
2. 据估算,在 Calldata 大小分别为 10 KB 和 2 KB 的情况下,EIP-4844 可能会容纳更多的 Calldata,从 38 倍到 192 倍不等。由于能在同一区块内容纳更多 Calldata,每单位 Calldata 的成本也会相应降低。
3. 假设每个 Rollup 的 Calldata 大小统一为 2 KB,则 EIP-4844 最多只能容纳 384 个 Rollup。
4. 在正常情况下(即区块达到目标大小时),以太坊将通过 EIP-4844 达到 175 TPS,最高可达 350 。
5. 与普遍看法相反,仅仅依靠 EIP-4844 还不足以让以太坊显著提高可扩展性。
6. 利用替代的 DA 层(如 Celestia)或 DAC(如 zkPorter),提高 L2 交易数据的压缩率以及增加 zk Rollups 的比例都会对进一步提高以太坊可扩展性产生重要影响。
Proto-danksharding(也就是 EIP-4844)提议实现 Danksharding 未来可能使用的大部分逻辑和规则。目前,由于 L1 上的存储成本较高,导致 L2 的过渡费也比较高。为了解决这个问题,EIP-4844 引入了一种新的数据类型 Blob,它比 calldata 更便宜、更大,为 rollup 数据存储提供了另一种方式。
随着 EIP-4844 即将推出,L2 定序器或许会获得更高的利润。这是因为定序器负责将交易批量导入 L1 并支付数据费用,而定序器支付的 L1 数据费用将大幅降低。低交易费有可能通过增加 L2 上订单数产生更多的 MEV。
坎昆升级将包含 EIP-4844 ,但目前还没有确切的升级时间。以太坊基金会研究团队表示,坎昆升级可能会在 10 月底上线。不过,更有可能是在 2024 年第一季度前后上线。
那么,EIP-4844 究竟能在多大程度上降低交易费用? 目前,L2 交易费主要由两部分组成:
-
Rollup 成本: 将交易打包、提交并存储在以太坊上的成本。
-
执行(Execution)成本: 在 L2 上运行交易的成本
L2 Transaction Fee = Rollup Costs + Execution Costs
= [ L1 Gas Price * (Calldata + Fixed Overhead) ] + [ L2 Gas Price * L2 Gas Used ]
以 Optimism 为例,目前,总交易费的近 80% 来自于 L1 的存储成本(即 Calldata 成本)。我们暂时忽略其他费用的影响,并提出两种方法来估算 EIP-4844 后 L2 交易费用可能会降低多少。
在 EIP-4844 中,提案实施后,每个 Blob 的大小为 128 KB,每个 Blob 消耗 131, 072 Gas。因此,平均每个 Blob 数据字节将消耗 128 * 1024 / 131, 072 = 1 Gas。相比之下,目前存储单个 Calldata 字节需要消耗 16 Gas。这表明,L2 交易的存储成本将降低 16 倍。
不过,这种方法只比较了每个字节的存储成本,并未考虑区块的总 Gas 容量。由于 EIP-4844 之后单个区块可携带的 Gas 总量可能会发生变化,因此 L2 交易存储成本可能降低不止 16 倍。
第二种方法会考虑区块大小,并检查当前 Calldata 在不同区块大小下的容纳次数。根据当前参数,在目标区块大小的场景下,一个区块可容纳 3 个 Blob(0.375 MB),最多可容纳 6 个 Blob(0.75 MB)。考虑到当前每个区块的 Calldata 占用约 2-10 KB,在 EIP-4844 之后,最多可容纳 0.75 * 1024 / 2 = 384 倍的 Calldata。
但是,随着区块大小从目标值增至最大值,Gas 价格呈指数增长。因此,在更常见的情况下(即区块达到目标大小时),EIP-4844 可容纳的 Calldata 分别是 10 KB 和 2 KB Calldata 的 38 - 192 倍。 由于区块内 Calldata 的容量增加,Calldata 的存储成本也会相应降低。因此,L2 交易的成本也会相应降低。
此外,假设每个 Rollup 的 Calldata 大小统一为 2 KB,那么 EIP-4844 最多只能容纳 384 个 Rollup。这并没有达到很多人设想的数千个 Rollup。
据此,我们还可以得出以太坊在 EIP-4844 之后可以实现的 TPS 数量级。目前,平均一笔 L2 交易在 L1 上需要花费大约 3000 Gas 的 Calldata。考虑到 Calldata 每个字节的 Gas 成本为 16 ,这表明 L1 上每笔 L2 交易约为 187 字节。
EIP-4844 之后,目标区块大小为 0.375 MB,以太坊每 12 秒生成一个区块。因此,每秒可用空间为 0.375 / 12 * 1024 = 32 KB,可容纳 32 * 1024 / 187 = 175 笔交易。因此,在正常情况下(即区块达到目标大小时),以太坊在 EIP-4844 升级之后的 TPS 应为 175 ,最高可达 350 。
虽然更高的 TPS 可以提高效率,但值得注意的是,即使实施了 EIP-4844 ,以太坊依然比不上 Visa,后者目前的 TPS 高达 1700 。这种差距仍可能会导致 L1 和 L2 网络拥堵,尤其是在高需求场景下。
因此,仅仅依靠 EIP-4844 还不足以让以太坊实现更大的可扩展性。 我们仍然需要一个更具成本效益和效率的数据可用性解决方案来存储更多 Calldata(譬如 Celestia 等 DA 层或 zkPorter 等 DAC),它们对于实现可扩展性仍然至关重要。
最后,L2 交易的压缩率会直接影响存储在 L1 中的 Calldata 大小。压缩率越高,所需的 L1 费用就越低。随着 zkRollup 不断发展,需要存储在 L1 上的数据量会越来越少,也更有利于提高以太坊的可扩展性。因为 zkRollup 与 Optimistic Rollup 不同,zkRollup 只需要存储状态变化而不是整个交易。
结论
在本文中,我们使用两种不同得计算方法来评估实施 EIP-4844 后可能减少的 Gas 费、TPS(每秒交易量)和容纳 Rollup 的能力。结果表明,假设每个 Rollup 的 Calldata 大小统一为 2 KB,EIP-4844 最多只能支持不到 400 个 Rollup。这与许多人预期的数千个 Rollup 的需求相差甚远。利用替代的 DA 层或 DAC、提高 L2 交易数据的压缩率以及增加 zk Rollups 的比例都会对进一步提高以太坊可扩展性产生重要影响。