本文深入探讨了以太坊通过 EIP-4844 引入 blob 后,rollup 面临的新型攻击面,并分析了相应的经济防御机制。
Hazeflow 是一家区块链研究公司。我们正在撰写关于区块链行业独特视角和观点的文章,并发布教育研究材料。
感谢 zkSecurity 团队的论文 “ Unaligned Incentives: Pricing Attacks Against Blockchain Rollups”,该论文为理解 DA 定价错误奠定了基础,并激发了本文探讨的许多想法。
以太坊在 2024 年 3 月通过 EIP-4844 引入 blob 时,悄然解决了 rollup 面临的最大问题之一:将其数据放在以太坊上的成本。
在 blob 之前,每个 rollup,Arbitrum、Optimism、Base、Scroll、zkSync 以及许多其他 rollup,都必须将它们的交易数据作为 calldata 发布在以太坊的主链上。这非常昂贵。事实上,rollup 90% 的成本都花在了这个数据发布步骤上。
Blob 改变了这一点。以太坊没有将 rollup 数据挤进用于智能合约的昂贵空间中,而是专门为数据创建了一个单独的通道,这个通道更便宜、更大,并且仍然完全由以太坊的验证者保护。这大大降低了成本,并使 rollup 能够向用户提供更便宜的交易。
随后在 2025 年 5 月出现了 Pectra,它使 blob 容量翻了一番,将目标从每个区块 3 个 blob 增加到 6 个,并将最大值提高到 9 个。
通过 EIP-4844 引入 blob 不仅降低了 rollup 的成本;它还在以太坊内部创建了一个新的费用市场。
要理解这是如何运作的,将 rollup 发布其数据时涉及的两个层分开来看是有帮助的:共识层和执行层。
可以将其视为以太坊的数据存储层。当 rollup 发布其数据时,数据会被打包到“blob”中。每个 blob 都是 128 KB 的压缩 rollup 数据块。这些 blob 由以太坊的共识节点存储 18 天。
通过保持数据对所有人可用,以太坊使任何人都可以独立验证 rollup 的状态。
使用该层的成本由 blob 基础费用设定,这是 EIP-4844 引入的一种特殊费用。此费用会自动调整,具体取决于 blob 空间的占用情况,就像以太坊的基础 gas 费用根据区块使用情况进行调整一样。当使用量超过目标时,blob 基础费用会上涨;当使用量低于目标时,blob 基础费用会下降。
发布 blob 不是直接完成的。相反,rollup 向执行层发送一个 type-3 交易。此交易本身不携带 blob 数据,它更像是一个引用存储在 CL 中的一个或多个 blob 的包装器。这些交易的定价方式与任何普通的以太坊交易一样。
共识层计算正在发布的 blob(数据块)的数量。
执行层计算为发布这些 blob 而发送的交易数量。
这就是为什么你会看到两者之间存在差距:到目前为止,大约 1170 万个 blob 已发布到 CL,但只有 490 万个 blob 交易通过了 EL。平均而言,每个 blob 交易携带约 2.4 个 blob,因为 rollup 将多个 blob 打包到一个交易中以节省 gas。
来源: Galaxy Research - EIP 4844 Blobs
一旦引入 blob 并将数据发布分散到共识层和执行层,rollup 的经济学原理就会发生根本性的变化。
在以太坊 L1 上,有一个单一的 gas 价格,反映了执行和存储交易涉及的所有成本。但对于 rollup 而言,成本分布在多个层和资源上,每个层和资源都有其自身的定价动态。这使得费用设计更加复杂,有时甚至可以被利用。
对于每笔交易,rollup 必须收回三种不同类型的成本:
L2 执行成本 – 这些是在 rollup 内部运行交易花费的资源。它们涵盖计算、存储和带宽。对于 ZK rollup 而言,它们还包括生成密码学证明的成本。
L1 数据可用性成本 – 这是 rollup 为将批次的压缩交易数据作为 blob 发布到以太坊而支付的费用。它确保以后任何人都可以验证 rollup 的状态。
L1 结算和验证成本 – 这是在链上提交批次所需的 gas,对于 ZK rollup 而言,还需要在以太坊上验证有效性证明。
一个典型的排序器向用户收取交易费用,该费用涵盖所有这三种成本类别,同时保留一定的利润空间以保持盈利。
大多数 rollup 在 L2 级别使用第一价格拍卖:用户设置一个 L2 gas 价格,排序器首先包含出价最高的交易来填充区块。这很简单,但并非总是经济高效。
总交易费用通常使用一个简单的公式计算:
Total Transaction Fee = L2 Fee + L1 Fee
支付链下执行、带宽、存储和证明生成(对于 ZK rollup)的费用。
支付将数据发布到以太坊 blob 和交易在批次提交和验证成本中所占的份额的费用。
L1 DA Fee = L1 blob base fee × blob scalar × data bytes
L1 blob 基础费用: 以太坊使用 EIP-1559 风格的机制进行 blob 定价。目标:每个区块 6 个 blob(Pectra 之后)。
Blob scalar: 根据数据的压缩程度调整 blob 成本。如果数据压缩效率高,则 blob 成本较低;如果数据难以压缩(如垃圾邮件),则 blob 成本较高。
Data bytes: rollup 需要为该批次或交易发布的数据字节数。
这种由三部分组成的费用模型在理论上是可行的,但在实践中,各个部分并不能完美地同步。这里存在一个根本性的不匹配。
以下是攻击者如何利用这一点:
由此产生了 3 种可能的攻击向量。
攻击者垄断了 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(受到限制),并且可以无限期地DoS。
成本保持在较低水平,因为 blob 价格下限使数据几乎免费,没有反映 DA 拥塞的 L2 反馈循环,并且 rollup 不频繁地同步 blob 价格。最终,blob 使用率超过以太坊的 6 个 blob 目标会触发每个区块 1.15 倍的价格上涨,但到那时损害已经造成。
现实世界的影响: 誠实用户必须竞相超越攻击者,这违背了 rollup 的“便宜费用”价值主张。即使是短暂的中断也会为套利干扰、预言机操纵和延迟清算创造机会。对于保护数十亿美元 TVL 的链来说,这会造成巨大的声誉损害。
通过用垃圾邮件 Flood L2 而不是直接攻击以太坊,攻击者可以将交易最终确认的时间延迟 1.45 倍–2.73 倍。
为什么这可行: 以太坊可以处理每个区块 9 个 blob,但大多数 rollup 一次只发布 1-3 个 blob。当攻击者阻塞了这些少量的 blob 插槽时,他们会造成巨大的瓶颈。
这样想:rollup 可能会每 2 秒生成一个新区块,但它只能每 12 秒发布到以太坊一次。这意味着每个 L1 插槽有 6 个 L2 区块在等待。阻塞一个 blob,你就延迟了 6 个 L2 区块的交易。不断这样做,积压就会迅速增加。
后果非常严重:桥与卡在 Limbo 中的跨链消息失去同步,CEX 提款延迟,因为交易所等待 L1 最终确认,跨 rollup DeFi 策略中断,用户被困在 L2 上“执行”的交易,但在 L1 上几个小时都无法最终确认。
直接经济损失攻击 利用了 rollup 向用户收费的时间和他们实际支付 L1 blob 费用的时间之间的延迟。
在 2024 年底,Conduit 工程师在 OP Stack rollup(由 Optimism、Base 和其他rollup使用)中发现了一个关键的 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 相关的攻击,饱和攻击、放大的最终性延迟攻击和直接经济损失攻击,都源于同一个问题:rollup 将其 DA 价格与以太坊的 blob 基础费用Hook,blob 基础费用更新缓慢并且通常保持在接近于零的水平。这为攻击者创造了一个廉价的、可预测的扼流点。解决方案是将短期反应性防御措施与结构性价格变动结合起来。
这些是 rollup 可以立即实施的快速反应措施,以限制垃圾邮件:
这些策略很容易部署,特别是对于单排序器 rollup,但攻击者可以适应它们。它们争取时间,但不能解决核心定价滞后问题。
持久的解决方案是在 rollup 级别使 DA 定价具有响应性。每个 rollup 都应维护其自己的本地 blob 基础费用,该费用根据本地使用情况每 L2 区块更新一次。
如果 blob 使用率上升,则本地费用会立即增加;如果使用率下降,则本地费用会降低,这与以太坊的 EIP-1559 机制类似,但以亚秒级的速度进行。
等于以太坊 blob 基础费用的下限确保 rollup 在 L1 拥塞期间永远不会低估价格。
这弥补了攻击者利用的延迟反馈循环,迫使他们实时支付上涨的费用,而不是滥用 5-64 个区块的低估价值的容量。
我的想法:在深入研究 blob 经济学和攻击之后,我开始寻找提供长期弹性的设计。我遇到了两个即将到来的以太坊升级,它们从不同的角度解决了这个问题,一个专注于更灵活地扩展 blob 容量,另一个防止 blob 费用崩盘至接近于零的水平。除此之外,Luban 引入了一个全新的想法:blob 期货市场,让 rollup 提前锁定数据容量,而不是当场竞争。
缓解措施可以修补当前的漏洞,但长期弹性需要重新思考 rollup 如何设计其费用机制以及如何与以太坊的数据层交互。这涉及探索更广阔的设计空间
EIP-7892 引入了一种轻量级的硬分叉,该硬分叉仅更改以太坊的 blob 容量设置,而不触及协议的其他部分。具体来说,它允许核心开发人员更频繁、更轻松地更新三个关键的 blob 参数:
这些值存在于执行层和共识层都遵循的共享“blob 计划”中,从而保持网络对齐。到目前为止,对 blob 容量的更改只能在主要的网络升级(大型硬分叉)期间发生,这些升级通常每年发生一到两次。但是,rollup 对数据的需求增长速度远快于此。有了 EIP-7892,以太坊可以:
以太坊通过 EIP-4844 引入了 blob 交易,为 rollup 创建了更便宜的数据通道。Blob 费用遵循 EIP-1559 风格的机制:当使用率较低时,blob 基础费用可能会降至每个字节 1 wei。这在平静时期是有效的,但它引入了一个关键的弱点,blob 费用可能会变得非常便宜,以至于它们停止充当真正的价格信号。当需求再次飙升时,费用需要很多区块才能恢复。与此同时,rollup 恢复为优先 Gas 拍卖 (PGA),从而导致拥塞、不可预测的费用以及攻击者可利用的定价窗口。
EIP-7918 引入了一个动态费用下限,该下限将最低 blob 费用与执行基础费用联系起来。这设置了一个储备价格,低于该价格 blob 费用不能下降:
Reserve Price = BLOB_BASE_COST × execution_base_fee
如果 blob 费用降至此储备价格以下,则协议会停止降低它们,同时仍然允许费用在需求增加时正常上涨。这确保即使在 blob 使用率较低的时期内,blob 费用在经济上仍然有意义。
这意味着每个 blob 的最低 blob 费用始终是每个 blob 的执行 gas 成本的 1/16,从而确保定价与网络状况保持一致。
假设执行基础费用为 16 gwei:
Floor = 8,192 × 16 gwei = 131,072 gwei ≈ 0.000131072 ETH per blob
即使 blob 使用率崩溃,blob 费用也不会低于此值。
该图显示了动态下限如何设置下限(虚线),从而防止 blob 基础费用在需求较低时崩盘。
通过防止 blob 费用崩盘至接近于零的水平,EIP-7918 提高了垃圾邮件 blob 空间的基准成本,使 DA 饱和攻击更昂贵且更难以预测。攻击者不再能够利用超便宜的 blob 定价的较长时间来 Flood rollup - 储备价格充当内置的经济防御。
Blob 为 rollup 提供了以太坊上更便宜的数据通道,但现货 blob 市场波动很大。Rollup 必须实时购买 blob 空间,与 Base 或 Taiko 等更大的公司竞争纳入资格。
Luban 通过引入 blob 期货来改变这种情况,blob 期货是一种以固定价格预先购买有保证的未来区块 blob 容量的方式,就像提前预订带宽一样。
在 Taiyi(建立在 EigenLayer 和 Symbiotic 等再质押层上)的支持下,验证者或承销商承诺未来的 blob 空间。Rollup 可以锁定即将到来的插槽的价格,即使 gas 稍后飙升,也可以确保纳入资格。
这创造了一种新的 DA 市场动态:
高吞吐量 OP Stack rollup Rise Chain 使用 Luban 期货来确保稳定的 blob 容量、平滑吞吐量并避免费用飙升 - 即使使用轮换排序器也是如此。
展望未来,Luban 的目标是预结算,让 rollup 在最终结算之前提交状态更新,从而使Based Rollup 的结算速度更快、更具可组合性并且在经济上与以太坊保持一致。
完整 Danksharding 是以太坊的长期计划,通过将每个区块的 blob 数量增加几个数量级来大规模扩展数据可用性。与引入少量固定 blob 容量的 proto-danksharding (EIP-4844) 不同,完整 danksharding 将启用每个区块数十个甚至数百个 blob。
这是通过数据可用性采样 (DAS) 实现的,它让节点仅验证 blob 数据的少量随机部分,而不是下载所有内容,即使总容量激增,也能保持验证的轻量级。
通过使 blob 空间变得丰富且便宜,完整 danksharding 使攻击者更难以使用固定预算垄断数据可用性,同时为 rollup 提供了一个巨大的、低成本的通道来发布其数据。这种转变将 blob 空间从稀缺资源转变为整个 rollup 生态系统的高吞吐量 DA 层,为以太坊支持数千个 rollup 奠定了基础,而不会使网络不堪重负。
以太坊的 DA 层正在进入一个新阶段,这个阶段不仅由更便宜的数据定义,而且由更智能的定价、协议敏捷性和市场创新定义。从费用下限到 blob 期货,设计空间正在扩大,以使 DA 在经济上既稳健又为 rollup 规模的增长做好准备。
Hazeflow 是一家专注于底层技术、产品方法和区块链产品功能的区块链和加密研究公司。
由 Ishita Rastogi 撰写,由 Pavel Paramonov 编辑。
以前
- 原文链接: research.hazeflow.xyz/p/...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!