Blobonomics 与新的攻击面:以太坊如何加强其 DA 层

  • Hazeflow
  • 发布于 8小时前
  • 阅读 46

文章深入探讨了以太坊通过 EIP-4844 引入 blob 后,其数据可用性层(DA)的经济学原理和潜在攻击面。分析了 rollup 在使用 blob 时面临的定价挑战,以及由此产生的女巫攻击、拒绝服务攻击等风险,并提出了相应的缓解措施,包括短期防御手段和结构性定价调整,最后展望了未来以太坊通过 EIP-7892、EIP-7918 和 Luban 等项目提高 DA 层弹性的设计方向。

Image

Blobonomics & 新的攻击面:以太坊如何强化其 DA 层

主要内容

  • 当以太坊在 2024 年 3 月通过 EIP-4844 引入 blob 时,它悄然解决了 rollup 面临的最大问题之一:将其数据放在以太坊上的成本。

  • 在 blob 出现之前,Arbitrum、Optimism、Base、Scroll、zkSync 和许多其他项目必须将其交易数据作为 calldata 发布在以太坊的主链上。这非常昂贵。事实上,rollup 90% 的成本都用于这一数据发布步骤。

  • blob 改变了这一点。以太坊没有将 rollup 数据挤进用于智能合约的昂贵空间,而是专门为数据创建了一个单独的通道,该通道更便宜、更大,并且仍然完全由以太坊的验证者保护。这大大降低了成本,并使 rollup 能够为用户提供更便宜的交易成为可能。

  • 随后在 2025 年 5 月出现了 Pectra,它使 blob 容量翻倍,将目标从每个区块 3 个 blob 增加到 6 个,并将最大值提高到 9 个。

Image

通过 EIP-4844 引入 blob 不仅降低了 rollup 的成本,还在以太坊内部创建了一个新的费用市场。

以太坊数据可用性层背后的经济学原理

为了理解这是如何运作的,将 rollup 发布其数据时涉及的两个层分开理解会有所帮助:共识层和执行层。

1. 共识层 (CL)

可以将此视为以太坊的数据存储层。当 rollup 发布其数据时,它会被打包到“blob”中。每个 blob 都是 128 KB 的压缩 rollup 数据块。这些 blob 由以太坊的共识节点存储 18 天。

通过保持数据对所有人可用,以太坊使任何人都可以独立验证 rollup 的状态。

使用该层的成本由 blob 基础费用设定,这是 EIP-4844 引入的特殊费用。此费用会自动调整,具体取决于 blob 空间的占用程度,就像以太坊的基础 gas 费用根据区块使用情况进行调整一样。当使用量高于目标时,blob 基础费用会上涨;当使用量低于目标时,它会下降。

2. 执行层 (EL)

发布 blob 不是直接完成的。相反,rollup 向执行层发送一个 type-3 交易。此交易不携带 blob 数据本身,它更像是一个包装器,引用存储在 CL 中的一个或多个 blob。这些交易的定价与任何普通的以太坊交易一样。

关键区别

  • 共识层计算正在发布的 blob(数据块)的数量。

  • 执行层计算为发布这些 blob 发送的交易数量。

这就是为什么你会看到两者之间存在差距:到目前为止,大约有 1170 万个 blob 已发布到 CL,但只有 490 万个 blob 交易已通过 EL。平均而言,每个 blob 交易携带约 2.4 个 blob,因为 rollup 将多个 blob 捆绑在一个交易中以节省 gas。

Image

来源:Galaxy Research - EIP 4844 Blob

为什么 Rollup 费用机制更复杂

一旦引入 blob 并将数据发布分散到共识层和执行层,rollup 的经济学原理就会发生根本性的变化。

在以太坊 L1 上,有一个单一的 gas 价格,反映了执行和存储交易涉及的所有成本。但是对于 rollup 来说,成本分布在多个层和资源上,每个层和资源都有自己的定价动态。这使得费用设计更加复杂,有时甚至可以被利用。

多维模型

对于每笔交易,rollup 必须收回 3 种不同类型的成本:

  1. L2 执行成本 – 这些是在 rollup 内部运行交易所花费的资源。它们涵盖计算、存储和带宽。对于 ZK rollup,它们还包括生成加密证明的成本。

  2. L1 数据可用性成本 – 这是 rollup 为将批处理的压缩交易数据作为 blob 发布到以太坊而支付的费用。它确保任何人以后都可以验证 rollup 的状态。

  3. L1 结算和验证成本 – 这是在链上提交批处理所需的 gas,对于 ZK rollup,还需要在以太坊上验证有效性证明。

典型的排序器向用户收取交易费用,该费用涵盖所有这三个成本类别,同时保留一定的利润空间。

大多数 rollup 在 L2 级别使用第一价格拍卖:用户设置 L2 gas 价格,排序器通过首先包含出价最高的交易来填充区块。这很简单,但并非总是具有经济效率。

总交易费用通常使用一个简单的公式计算:

总交易费用 = L2 费用 + L1 费用

  • L2 费用 = (L2 基础费用 + 优先级费用) × L2 gas 使用量。用于支付链下执行、带宽、存储和证明生成(对于 ZK rollup)。

  • L1 费用 = (L1 blob 基础费用 × blob scalar × data bytes) + 提交成本 + 证明验证成本。用于支付将数据发布到以太坊 blob 的费用,以及交易分摊的批处理提交和验证成本。

所以,另一件事是:

L1 DA 费用 = L1 blob 基础费用 × blob scalar × data bytes

  • L1 blob 基础费用:以太坊为 blob 定价使用 EIP-1559 样式的机制。目标:每个区块 6 个 blob(Pectra 之后)。如果发布的 blob 超过 6 个,则 blob 费用每个区块会略有增加(呈指数增长,类似于基础 gas 费用)。如果发布的 blob 少于 6 个,则 blob 费用会随着时间的推移而降低

  • Blob scalar:根据数据的压缩程度调整 blob 成本,如果数据压缩效率高,则降低成本,如果难以压缩(如垃圾邮件),则提高成本。

  • Data bytes:rollup 需要为该批次或交易发布的数据字节数。

Image

定价错误发生的地方

这种三部分组成的费用模型在理论上是可行的,但在实践中,各个部分并不能完美地同步。这里存在一个根本上的不匹配。

L2 区块每 1-3 秒生成一次,但 L1 blob 价格在以太坊上每 12 秒更新一次。大多数 rollup 仅每 5-64 个 L1 区块刷新其内部 blob 定价,以避免使用未最终确定的数据。

但这里存在更深层次的问题:Rollup DA 定价与 L1 blob Hook,而不是与 L2 需求Hook。当 L2 拥塞时,没有立即的价格信号,因为 DA 成本由 L1 的外部 blob 市场设定,而 L2 区块的发生速度比 L1 的反应速度快得多。L2 gas 费用跟踪执行,而不是数据使用情况。

这创建了一个窗口,攻击者可以在经济学原理赶上之前淹没系统。

以下是攻击者如何利用这一点:

  • 他们制作数据密集但计算量轻的交易。配方很简单:仅执行 STOP 操作码(最小计算量,约 21,000 gas),使用 128 KB 的随机、不可压缩的 calldata 打包交易,并使用约 510 万 gas 来填充一个完整的 blob。总数保持在典型的 15M gas 的 L2 区块限制之下。

  • 为什么这可行:L2 gas 消耗量保持在较低水平,因此基础费用不会飙升,而 L1 blob 费用是外部定价的,并且更新缓慢。仅包含约 3% 零的随机数据压缩效果较差,从而最大限度地提高了 blob 的使用率。填充 3 个 blob 仅需约 1530 万 gas - 在正常限制范围内,并且远低于触发有意义的费用增加的水平。

由此产生 3 种可能的攻击向量。

攻击 1. DA 饱和:Rollup 级别的拒绝服务

攻击者垄断了 rollup 有限的 blob 容量,阻止诚实的交易被包含在发布到以太坊的批次中。

每个 rollup 批次都有一个严格的 DA 限制 - 通常为 1-6 个 blob,具体取决于配置。以太坊在 Pectra 之后的目标是每个区块 6 个 blob(最多 9 个),但大多数 rollup 每个批次仅使用 1-3 个 blob 来管理成本。攻击者通过竞标优先级费用来比诚实用户更快地填充此配额。

为什么它非常便宜:当 blob 使用量低于以太坊的目标时(Pectra 之后很常见),blob 基础费用可能会降至每字节 1 wei,基本上是免费的。该论文显示,在大多数 rollup 上,30 分钟的周期性 DoS 成本低于 2 ETH。但持续的 DoS 甚至更便宜:Linea 上每小时 0.87 ETH,Optimism 上每小时 0.8 ETH(受到限制),Base 上每小时 2.7 ETH(受到限制),并且是无限期的。

Image

成本保持在较低水平,因为 blob 价格下限使数据几乎免费,没有反映 DA 拥塞的 L2 反馈回路,并且 rollup 不经常同步 blob 价格。最终,blob 使用量超过以太坊的 6 个 blob 目标会触发每个区块 1.15 倍的价格上涨,但到那时损害已经造成。

实际影响:诚实用户必须竞标超过攻击者,这违背了 rollup 的“廉价费用”价值主张。即使是短暂的中断也会为套利干扰、预言机操纵和延迟清算创造机会。对于保护数十亿美元 TVL 的链来说,这会造成巨大的声誉损害。

攻击 2. 放大最终性延迟攻击

通过用垃圾邮件淹没 L2 而不是直接攻击以太坊,攻击者可以将交易最终确定的时间延迟 1.45 倍–2.73 倍。

为什么这可行:以太坊可以处理每个区块 9 个 blob,但大多数 rollup 一次仅发布 1-3 个 blob。当攻击者阻塞这些少量的 blob 插槽时,他们会造成巨大的瓶颈。

Image

可以这样理解:rollup 可能会每 2 秒生成一个新的区块,但它只能每 12 秒发布到以太坊一次。这意味着 6 个 L2 区块正在等待每个 L1 插槽。阻止一个 blob,你就延迟了相当于 6 个 L2 区块的交易。继续这样做,积压会迅速增加。

以下是 10 ETH 预算的一些实际影响:

Image

后果很严重:桥在跨链消息滞留在 limbo 中时会脱节,CEX 提款会延迟,因为交易所会等待 L1 最终确定,跨 rollup DeFi 的策略会失效,并且用户的交易被困在 L2 上“执行”,但几个小时后未在 L1 上最终确定。

攻击 3. 直接经济损害攻击

直接经济损害攻击利用了 rollup 向用户收费和实际支付 L1 blob 费用之间的时间差。

  1. 锁定廉价价格:攻击者在 blob 价格较低时发送 DA 密集型交易。Rollup 用户被收取此过时的低费率。

  2. 费用飙升:然后以太坊 blob 费用迅速增加。但是 rollup 的定价机制仅定期更新(例如,每个 L1 区块),因此它会继续向用户收取过时的更便宜的费用。

  3. Rollup 支付差额:当 rollup 稍后将其批处理发布到 L1 时,它必须支付更高的实际 blob 价格,但仅从用户那里收取了较低的价格。Rollup,而不是攻击者,承担了这个差额。

OP Stack DA DoS 向量

在 2024 年末,@conduitxyz 的工程师发现了 OP Stack rollup(由 Optimism、Base 等使用)中的一个关键的 DA 垃圾邮件漏洞。在测试 Base Sepolia Layer-3 网络时,他们发现攻击者可以重复发送大量、数据密集的交易来填充 rollup 有限的 blob 容量。

通过在多个以太坊 L1 区块上执行此操作,攻击者可以延迟批处理的发布,从而通过 OP Stack 的内置安全逻辑触发链重组。

这种延迟打开了一条严重的漏洞利用路径。攻击者可以将资金桥接到 rollup 中,向 DA 管道发送垃圾邮件以强制重组,然后在延迟窗口期间使用快速桥接提取相同的资金。

当 rollup 重组时,原始存款在恢复的链上恢复,而快速桥接提取已执行,从而有效地创建了双重支付。Conduit 向 OP Labs 和 Base 报告了此问题,从而导致 op-stack v1.9.5 中的 DA 限制和 OP Batcher v1.15.0 中的完整修复。

针对 DA 攻击的缓解措施

所有三种与 DA 相关的攻击,饱和、放大的最终性延迟和直接经济损害,都源于同一个问题:rollup 将其 DA 价格与以太坊的 blob 基础费用Hook,该费用更新缓慢且通常保持在接近于零的水平。这为攻击者创建了一个廉价、可预测的阻塞点。解决方案是将短期反应性防御与结构性定价变更相结合。

短期防御:过滤器和乘数

这些是rollup可以立即实施的快速、反应性措施,以限制垃圾邮件:

  • 交易大小上限:限制单个交易可以消耗多少 blob 数据。超大交易将被丢弃或延迟,从而防止一个攻击者垄断 blob 空间。

  • 动态费用乘数:随着交易填充更多的 blob,收取逐渐更高的费用。这会阻止依赖少量大型交易的廉价、大容量垃圾邮件。

  • 过滤低效率流量:识别并取消优先级处理压缩率差或模式可疑的交易,阻止抗压缩垃圾数据。

这些策略易于部署,尤其是对于单排序器 rollup,但攻击者可以适应它们。它们争取时间,但不能解决核心定价滞后问题。

结构性修复:本地 Blob 费用市场

持久的解决方案是在 rollup 级别使 DA 定价具有响应性。每个 rollup 都应维护自己的本地 blob 基础费用,该费用根据本地使用情况每 L2 区块更新一次。

  • 如果 blob 使用量增加,本地费用会立即增加;如果使用量下降,它会降低,从而以亚秒级的节奏反映以太坊的 EIP-1559 机制。

  • 等于以太坊的 blob 基础费用的下限可确保 rollup 在 L1 拥塞期间永远不会低估价格。

这关闭了攻击者利用的延迟反馈回路,迫使他们实时支付上涨的费用,而不是滥用 5-64 个区块的低估容量。

我的想法:在深入研究 blob 经济学和攻击之后,我开始寻找提供长期弹性的设计。我遇到了两项即将推出的以太坊升级,它们从不同的角度解决了这个问题,一项侧重于更灵活地扩展 blob 容量,另一项则防止 blob 费用崩溃到接近零。除了这些之外,Luban 还引入了一个全新的想法:blob 期货市场,允许 rollup 提前锁定数据容量,而不是当场竞争。

探索长期弹性的设计空间

缓解措施可以修补当前的漏洞,但长期的弹性需要重新思考 rollup 如何设计其费用机制以及如何与以太坊的数据层进行交互。这涉及探索更广阔的设计空间。

EIP-7892:仅 Blob 参数的硬分叉

EIP-7892 引入了一种轻量级硬分叉类型,该硬分叉仅更改以太坊的 blob 容量设置,而不触及协议的其他部分。具体来说,它允许核心开发人员更频繁、更轻松地更新三个关键的 blob 参数:

  • 目标 – 以太坊每个区块的目标 blob 数量。

  • 最大值 – 每个区块的 blob 绝对上限。

  • 基础费用更新分数 – 每个区块 blob 价格调整的速度。

这些值存在于执行层和共识层都遵循的共享“blob 计划”中,从而保持网络对齐。到目前为止,对 blob 容量的更改只能在主要的网络升级(大型硬分叉)期间发生,而大型硬分叉通常每年发生一到两次。但是 rollup 对数据的需求增长速度远快于此。借助 EIP-7892,以太坊可以:

  • 仅发布较小的、有针对性的分叉来更新 blob 参数

  • 更快地响应真实的 网络需求

  • 从保守的 blob 限制开始,观察主网性能,然后逐步扩大

EIP-7918:引入动态 Blob 费用下限

以太坊通过 EIP-4844 引入了 blob 交易,为 rollup 创建了一个更便宜的数据通道。Blob 费用遵循 EIP-1559 样式的机制:当使用率较低时,blob 基础费用可能会降至每字节 1 wei。

这在平静时期是高效的,但它引入了一个关键的弱点,blob 费用可能会变得非常便宜,以至于它们停止充当真实的价格信号。当需求再次飙升时,费用需要花费很多区块才能恢复。

与此同时,rollup 会恢复为优先级 Gas 拍卖 (PGA),从而导致拥塞、不可预测的费用以及攻击者可以利用的定价窗口。

优先级 Gas 拍卖机制

EIP-7918 引入了一个动态费用下限,该下限将最低 blob 费用与执行基础费用联系起来。这设置了一个储备价格,低于该价格 blob 费用不能下降:

储备价格 = BLOB_BASE_COST × execution_base_fee

如果 blob 费用低于此储备价格,则协议会停止降低它们,同时仍然允许费用在需求增加时正常上涨。这确保了即使在 blob 使用量较低的时段,blob 费用在经济上仍然有意义。

关键参数:

  • GAS_PER_BLOB = 131,072(每个 blob 128 KB)

  • BLOB_BASE_COST = 8,192,正好是 GAS_PER_BLOB 的 1/16

这意味着每个 blob 的最小 blob 费用始终是每个 blob 的执行 gas 成本的 1/16,从而确保定价始终根据网络状况进行锚定。

示例:假设执行基础费用为 16 gwei。在这里,我们有:

下限 = 8,192 × 16 gwei = 131,072 gwei ≈ 每个 blob 0.000131072 ETH

即使 blob 使用量崩溃,blob 费用也不会低于此值。

Image

该图显示了动态下限如何设置下限(虚线),从而防止 blob 基础费用在需求较低时崩溃。

通过防止 blob 费用降至接近零,EIP-7918 提高了垃圾邮件 blob 空间的基准成本,从而使 DA 饱和攻击更加昂贵且更不可预测。攻击者无法再利用超廉价 blob 定价的漫长时间来淹没 rollup - 储备价格充当内置的经济防御。

Luban:在以太坊上引入 Blob 期货

Blob 为 rollup 提供了一个更便宜的以太坊数据通道,但现货 blob 市场波动很大。Rollup 必须实时购买 blob 空间,与其他更大的参与者(如 Base 或 Taiko)竞争。@luban 通过引入 blob 期货来改变这一点,blob 期货是一种以固定价格预先购买有保证的未来区块 blob 容量的方式,就像提前预订带宽一样。

验证者或承销商承诺未来的 blob 空间。Rollup 可以锁定即将到来的插槽的价格,即使 gas 稍后飙升,也可以确保包含在内。

这创造了一种新的 DA 市场动态:

  • Rollup 获得可预测的成本和有保证的包含

  • 验证者通过出售 blob 期货来解锁新的收益

  • 承销商进行 blob 容量的市场交易,承担波动风险

高吞吐量 OP Stack rollup @rise_chain 使用 Luban 期货来获得稳定的 blob 容量,平滑吞吐量并避免费用飙升 - 即使使用轮换排序器也是如此。

展望未来,Luban 的目标是预结算,允许 rollup 在最终结算之前提交状态更新,从而使Based Rollup 的速度更快、更可组合,并且在经济上与以太坊保持一致。

未来的升级

完整的 Danksharding 是以太坊的长期计划,旨在通过将每个区块的 blob 数量增加几个数量级来大规模扩展数据可用性。与引入小型、固定 blob 容量的原型 danksharding (EIP-4844) 不同,完整的 danksharding 将允许每个区块数十个甚至数百个 blob。

这可以通过数据可用性采样 (DAS) 来实现,该技术使节点仅验证 blob 数据的少量随机部分,而不是下载所有内容,从而即使在总容量爆炸式增长时也能保持验证的轻量级。

通过使 blob 空间充足且廉价,完整的 danksharding 使攻击者更难使用固定预算来垄断数据可用性,同时为 rollup 提供了一个巨大的、低成本的通道来发布其数据。

这种转变将 blob 空间从一种稀缺资源转变为整个 rollup 生态系统的高吞吐量 DA 层,为以太坊支持数千个 rollup 而不会使网络不堪重负奠定了基础。

以太坊的 DA 层正在进入一个新阶段,这个阶段不仅以更便宜的数据为特征,而且以更智能的定价、协议敏捷性和市场创新为特征。从费用下限到 blob 期货,设计空间正在扩展,以使 DA 在经济上强大且为 rollup 规模的增长做好准备。

  • Hazeflow 是一家专注于消除区块链复杂性的区块链和加密研究公司。

  • @Ishita_30 撰写,由 @paramonoww 编辑。

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

0 条评论

请先 登录 后评论
Hazeflow
Hazeflow
A blockchain research firm.