Blob共享对Rollup的潜在影响 - Layer 2

本文探讨了在以太坊EIP-4844实施后,小型Rollup面临的数据可用性(DA)成本和效率问题。提出了一种名为“Blob共享”的解决方案,通过将多个Rollup的数据合并到一个Blob中,提高Blob的利用率,从而显著降低DA成本。模拟结果表明,Blob共享可以为Rollup节省至少85%的DA成本,并提高DA服务质量。

作者: Suhyeon - Tokamak Network

TL;DR (太长不看)

  • 小型 Rollup 面临一个困境,由于其较低的 L2 数据吞吐量:blob 使用效率低下或 blob 延迟过长。
  • 解决这个问题的一个方案是 blob 共享,即将多个 Rollup 的数据放入一个 blob 中。
  • 我们的研究模拟了 26 个 Rollup 使用近 6 个月的数据进行 blob 共享。
  • 模拟结果表明,所有 Rollup(不仅仅是小型 Rollup)在 DA 方面至少可以节省 85% 的成本。
  • 我们发现这是因为主动的 blob 共享减少了 blob 的数量,并平滑了没有峰值的 blob 基础费用。

Introduction (介绍)

Rollup 是以太坊的一个关键可扩展性解决方案,它在链下处理交易,并将压缩数据提交回主网络。在 EIP-4844 之前,Rollup 面临着高昂的数据可用性(DA)成本,因为所有交易数据(calldata)都必须包含在链上,这非常昂贵。

EIP-4844 引入了 blob,这是一种新型的交易数据,与 calldata 相比,它在链上包含的成本更低。Blob 的大小固定为 128 KB,并存储约 18 天。此升级旨在显著降低 Rollup 的 DA 成本。

The Small Rollup’s Dilemma (小型 Rollup 的困境)

虽然 blob 降低了成本,但其固定大小对数据吞吐量低的小型 Rollup 提出了挑战。这些 Rollup 通常无法填满整个 128 KB 的 blob,导致效率低下。它们面临着两个选择:

  • Use blob space inefficiently (低效地使用 blob 空间): 即使他们不需要所有空间,也要为完整的 blob 付费。
  • DA submissions with long delay (具有长延迟的 DA 提交): 等待直到他们积累了足够的数据来填充一个 blob,这可能会降低他们的 DA 服务质量。

为了说明这个问题,我们分析了从区块编号 19,426,589 到 20,611,514 期间各种 Rollup 的 blob 利用率和性能。结果总结在表 1 中。

Defining DA Service Quality (定义 DA 服务质量)

在这里,为了定量衡量数据可用性服务质量,我们使用一个由以下公式定义的新指标:

\text{DA_Quality} = \frac{1}{\ln(\text{Average_Block_Gap}) + 1}

该公式为更频繁提交 blob 的 Rollup 分配更高的 DA 质量分数(即,blob 提交之间的平均区块间隔更小)。这是一个对数函数,用于处理较大的区块间隔,确保不同 Rollup 之间的有意义的比较。

Table 1: Rollup Blob Utilization and Performance (Blocks 19,426,589 to 20,611,514) (表 1:Rollup Blob 利用率和性能(区块 19,426,589 到 20,611,514))

Rollup Blob Count (Blob 数量) Average Size (KB) (平均大小 (KB)) Total Size (GB) (总大小 (GB)) DA Quality (DA 质量)
Base 690,356 126.51 (98.84%) 83.293 0.309
Arbitrum 375,014 127.52 (99.63%) 45.607 0.288
Taiko 328,805 30.70 (23.99%) 9.628 0.592
OP Mainnet 265,469 126.71 (98.99%) 32.080 0.239
Scroll 139,199 105.35 (82.30%) 13.985 0.332
Blast 106,033 115.03 (89.87%) 11.632 0.255
Linea 93,604 117.64 (91.90%) 10.501 0.237
StarkNet 62,361 127.98 (99.98%) 7.611 0.242
zkSync Era 62,149 128.00 (99.99%) 7.586 0.215
Paradex 44,300 127.99 (99.99%) 5.407 0.234
Metal 31,382 0.18 (0.14%) 0.005 0.220
Zircuit 27,821 6.04 (4.72%) 0.160 0.275
Kroma 24,193 59.65 (46.60%) 1.376 0.208
Zora 23,592 126.58 (98.89%) 2.848 0.161
Mode 22,585 126.56 (98.88%) 2.726 0.159
Rari 19,583 31.08 (24.28%) 0.581 0.214
Optopia 7,851 16.19 (12.65%) 0.121 0.179
Boba Network 6,236 3.29 (2.57%) 0.020 0.166
Debank Chain 3,358 113.84 (88.94%) 0.365 0.162
Camp Network 3,292 98.39 (76.87%) 0.309 0.136
Nal 2,998 0.21 (0.17%) 0.001 0.168
Mint 2,515 90.89 (71.01%) 0.218 0.140
Lambda 2,336 103.80 (81.09%) 0.231 0.143
Lumio 1,390 0.43 (0.33%) 0.001 0.137
Parallel 1,348 119.29 (93.20%) 0.153 0.113
XGA 1,031 98.20 (76.72%) 0.097 0.142
Lisk 811 8.04 (6.28%) 0.006 0.126
Kinto 204 13.20 (10.31%) 0.003 0.124

如表 1 所示,较小的 Rollup 通常具有较低的 blob 利用率百分比,表明它们没有有效地使用 blob 空间。这导致每个数据单元的成本更高,或者 DA 提交的潜在延迟。

Blob Sharing and Simulation (Blob 共享和模拟)

Blob 共享是一种策略,允许多个 Rollup 将其数据组合成一个 blob。这种方法最大限度地利用了 blob 空间,并降低了所有参与 Rollup 的成本。我们想知道如果 Rollup 合作,可以节省多少 DA 成本。

为了评估 blob 共享的有效性,我们使用 EIP-4844 实施后近六个月内收集的真实数据(区块编号 19,426,589 到 24,848,485)进行了模拟。以下是我们遵循的关键假设和流程:

  • Constant Data Rate (恒定数据速率): 我们假设每个 Rollup 在 blob 提交之间以一致的速率生成数据。
  • Blob Sharing Structure (Blob 共享结构): 在我们的模拟中,blob 通过在一个 blob 中包含多个 Rollup 的数据来共享,每个数据前面都有一个签名和数据长度,以便正确识别。
  • Uniform Gas Consumption (统一 Gas 消耗): 我们假设数据可用性事务具有统一的 gas 成本,重点关注 Type-3 事务所需的最小 gas。
  • No Impact on Ethereum Base Fee and Priority Fee (对以太坊基础费用和优先费用没有影响): 我们假设由于 blob 共享导致事务减少不会影响以太坊基础费用或事务支付的优先费用。

模拟涉及以下步骤:

  1. Data Preprocessing (数据预处理): 我们根据每个 Rollup 的实际 blob 大小和提交间隔,计算出每个 Rollup 在每个区块中产生的数据量。
  2. Blob Reconstruction (Blob 重建): 累积 Rollup 数据,直到达到 128 KB,此时将其打包到共享 blob 中进行提交。
  3. Handling Excess Data/Blob (处理多余数据/Blob): 如果 Rollup 的数据超过 128 KB,则将剩余数据包含在一个新的 blob 中。多余的 blob 被推迟到下一个区块。
  4. Inclusion of Unlabeled Blobs (包含未标记的 Blob): 我们考虑了数据中现有的未标记 blob,确保它们适当地包含在事务中。

Findings (发现)

我们的模拟结果表明,blob 共享可以显著降低所有 Rollup 的 DA 成本,对于大多数 Rollup 来说,成本节省超过 85%。此外,由于 blob 共享实现了更频繁的数据提交,DA 服务质量也得到了提高。

USD Cost Difference between Real and Simulated Blob Sharing\ USD Cost Difference between Real and Simulated Blob Sharing1425×852 63.6 KB

如图 1 所示,在具有 blob 共享的模拟中,Rollup 的总成本显著降低。DA 服务质量(由我们的新指标衡量)也得到了改善(你可以在我们的预印本中看到更多数据)。

Understanding the Fee Mechanism (理解费用机制)

导致成本大幅降低的一个关键因素是以太坊 blob 费用机制。当区块包含超过三个 blob 时,blob 基础费用呈指数增长。通过共享减少 blob 的总数,我们可以防止 blob 基础费用急剧增加,从而实现显著的成本节省。

blob 的定价遵循基于区块中 blob 数量的指数函数,由以下等式定义:

\text{new_base_fee} = \max \left( B, B \times \exp \left( \frac{\text{excess_blob_gas}}{F} \right) \right)

\text{excess_blob_gas}_i = \max \left( 0, \text{excess_blob_gas}_{i-1} + \left( \text{blob_count}_i \times G - T \right) \right)

这里,B 是每个 blob gas 单位的最低基础费用,F 是更新分数常数,excess_blob_gasi 表示区块 i 的多余 blob gas。通过共享最大限度地减少每个区块的 blob 数量,我们可以随着时间的推移平滑 blob 基础费用。

Blob Counts per 100,000 Blocks\ Blob Counts per 100,000 Blocks1665×709 81.1 KB

图 2 显示了由于 blob 共享导致每个区块的 blob 数量的减少。blob 的总数变化约为 20%。但是,超过三个 blob 的区块数量急剧减少。由于每个区块的 blob 数量较少,blob 基础费用保持较低且更稳定。

Blob Base Fee and Difference\ Blob Base Fee and Difference1723×473 95.5 KB

在结果中,图 3 显示了与没有共享时观察到的剧烈波动相比,blob 共享如何导致更平滑和更低的 blob 基础费用。它在图 1 中消除了许多 Rollup 中超过 99% 的 blob 成本。

Conclusion (结论)

Blob 共享为小型 Rollup 在 EIP-4844 实施后面临的效率低下问题提供了一个实用的解决方案。通过协作和共享 blob,Rollup 可以降低成本,提高数据可用性服务质量,并为更高效的以太坊网络做出贡献。

展望未来,我们谨慎地预测,实施 blob 共享将需要引入一个 Proxy DA 合约,并升级每个 Rollup 的 DA 合约,以促进与该代理的通信。虽然对 blob 数据的直接访问仍然受到限制,从而最大限度地减少了安全问题,但建立这种互连和集成的数据结构将需要 Rollup 之间的积极协作。

我们相信,这些发现对以太坊社区具有重大意义,特别是对于寻求可持续运营的(较小的)Rollup。我们欢迎对我们研究的任何反馈、评论或问题。

有关更多详细信息,请参阅我们的完整论文,该论文可在 https://arxiv.org/abs/2410.04111 上获得。

Acknowledgements (致谢)

特别感谢来自 Tokamak Network 的 Boo-Hyung Lee,感谢他对 Rollup 结构的讨论;以及来自 Offchain Labs 的 Akaki Mamageishvili,感谢他对 blob 共享的讨论,以及鼓励我在此处发帖。

  • 原文链接: ethresear.ch/t/potential...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
以太坊中文
以太坊中文
以太坊中文, 用中文传播以太坊的最新进展