EIP-4844和Dencun将在以太坊主网上线,引入了Blob数据系统以降低Layer 2成本。Blob数据的定价、Rollups的使用策略、规模重要性、合作优势、成本分担机制等方面进行了详细讨论。关键是EIP-4844的实施可能为以太坊用户带来更便宜、更高效的交易,尤其是那些使用Layer 2解决方案的用户。技术复杂性将不断增加,但结果应该对用户更有利。
截至目前,EIP-4844 和 Dencun 升级的其余部分计划于 3 月 13 日在以太坊主网上线。
Dencun,下一个以太坊硬分叉,目前正在测试网上,并将很快进入主网。对于 L2 用户来说,Dencun 是一个重大消息,因为它带来了 EIP-4844,这是一个新的数据可用性系统,承诺可能大幅降低 L2 成本。如果您使用像 Arbitrum 这样的 L2,这对您有什么影响?让我们来探讨一下。
在开始之前,特别感谢我的研究合作者,以太坊基金会的 Davide Crapis 和 Offchain Labs 的 Akaki Mamageishvili,因为这篇文章的基础研究。
Rollups 花费了很多精力确保它们的交易数据对所有节点和验证者都可用。大多数 Rollups 通过将它们的数据写入以太坊作为 calldata 来实现这一点。按照当前价格,这将花费大约 1000 美元每兆字节。优秀的 Rollups 通过使用先进的数据压缩,将这一成本降低到每兆字节 300 美元。然而,数据发布成本占据了 L2 交易费用的最大部分。
为什么以太坊的 calldata 如此昂贵?因为以太坊需求量很高,而 Rollups 必须超过其他想要使用以太坊资源的方。
EIP-4844 向以太坊添加了一种新类型的数据可用性,称为blob 数据。Blob 缺少 calldata 的一些功能 —— 它们对以太坊合约不可用,并且仅存储 18 天 —— 但它们满足了 Rollups 的数据可用性需求,因此为 Rollups 提供了一种新的、希望更便宜的记录数据的方式。
更便宜多少?这是一个关键问题。
一个 4844 数据 blob 包含大约 125 千字节的数据。每个以太坊块可以包含多达 6 个 blob,目标是每个块 3 个 blob。blob 的价格会随时间波动 —— 如果一个以太坊块有超过 3 个 blob,blob 的价格会上涨;如果少于 3 个 blob,blob 的价格会下降。
这种价格调整器的工作原理类似于恒温器。如果您的家太冷,恒温器会调高加热器的温度,使房间变暖;如果您的家太热,恒温器会调低加热器的温度。结果是一个平衡,使温度保持在所需的水平。
Blob 定价类似,但不是寻求恒定温度,而是寻求恒定的 blob 使用率。如果 Rollups 使用的 blob 太多,价格会上涨,以便 Rollups 减少使用。如果 Rollups 使用的 blob 少于目标数量,价格会下降,以鼓励更多使用。结果应该是一个平衡,其中 Rollups 每个以太坊块使用约 3 个 blob,价格设置得恰到好处以维持这一点。
当然,条件会随时间变化,因此平衡价格可能会随条件变化而变化,但平均每个块使用 3 个 blob 的情况将保持不变 —— 就像恒温器在外部天气变化时保持您的家在正确的温度,当外部温度较低时更多使用加热器。
这暗示了找到平衡价格的方法。我们可以问自己:如果 blob 价格是 10 美分,Rollups 会使用多少 blob?如果价格是 1 美元呢?如果是 10 美元呢?等等。平衡价格将是 Rollups 每个以太坊块使用恰好三个 blob 的价格。
因此让我们思考一下...
一个好的 Rollup 将以最符合 Rollup 用户利益的方式使用 blob。用户希望从 Rollup 的数据发布者那里得到两个主要的东西:低成本和快速发布。
这两个目标存在紧张关系。使用 blob 的最低成本方式是等到 Rollup 有足够的数据填满一个 blob,然后购买一个 blob 并发布数据。但是,如果 Rollup 不等待那么长时间,而是更频繁地发布部分填满的 blob,发布速度会更快。这更昂贵,因为即使您没有使用完整的 blob,也必须支付整个 blob 的费用,因此频繁发布策略将购买更多的 blob。
如何平衡这些因素取决于 blob 的价格。如果 blob 非常昂贵,您希望尽可能少地使用它们,因此值得等待更长时间并发布完整的 blob。另一方面,如果 blob 非常便宜,那么您可以非常快速地发布,发布几乎为空的 blob,几乎没有成本。blob 价格越低,您应该发布的频率就越高,您的 blob 将越空。
研究论文通过将等待发布的时间分配一个虚拟美元成本,然后找到最小化 blob 成本加等待成本总和的 blob 使用量,使这种权衡变得精确。正如上面所建议的那样,结果是 Rollups 的 blob 使用量与 blob 价格呈反比:价格高时,它们使用更少的 blob,价格低时,它们使用更多的 blob,而这些 blob 更不完整。
研究中一个令人惊讶的结论是,繁忙的 Rollup(具有更多交易)比不太忙的 Rollup 表现更好。对于一个繁忙的 Rollup,成本和最终性时间之间的权衡较小,因为繁忙的 Rollup 将更快地累积一整个 blob 的数据。如果繁忙的 Rollup 做出明智的决策,它可以比不太忙的竞争对手在成本和更快的发布时间方面都更好。
例如,如果 Rollup A 的流量是 Rollup B 的两倍,那么如果两个 Rollups 在成本-延迟权衡中都做出最佳决策,Rollup A 的数据成本每笔交易约低 41% 并且 将其交易发布速度提高约 41%。
在某些情况下,一个小的 Rollup 可能更喜欢使用以太坊 calldata 而不是 blob。这是因为当您使用 blob 时,您必须支付整个 blob 的费用,而不管您是否使用它,但是使用 calldata 时,您只需支付您使用的字节数。因此,低流量的 Rollup 可能会发现等待积累大批量数据对其用户造成了太大的延迟,而决定使用小批量数据时,发布这小批量数据的最便宜方式是购买少量以太坊 calldata 而不是整个 blob。
总的来说,较小的 Rollup 面临比较大的 Rollup 更糟糕的权衡。那么较小的 Rollup 可以做些什么呢?
较小的 Rollup 的最佳策略是联合起来并共享 blob。举个例子,假设现在,Rollup C 想要发布一个填充了 70%的 blob,而 Rollup D 想要发布一个填充了 30%的 blob。如果它们联合起来,它们可以发布一个包含两者数据的单个 blob。现在,他们不再需要各自购买一个 blob,而是可以分担单个 blob 的成本。这是双赢。
但为什么止步于此?如果这两个 Rollup 组成联盟并始终一起发布,它们可以获得比分开发布更低的成本和更好的延迟。这是长期的双赢。
即使是最繁忙的 Rollup 有时也可以从联合起来中受益。与其等待足够的交易填满一个 blob,繁忙的 Rollup 可能会积累足够的自己的交易填满一个 blob 的 90%,然后将剩余的 10%空间出售给一个不太繁忙的 Rollup。根据情况,这对两者可能是双赢,也可能不是。
当 Rollups 共享一个 blob 时,它们会节省费用。他们应该如何分担节省的费用?或者等效地,他们应该如何分担发布共享 blob 的成本?
一个明显的方法是按照他们使用数据的比例支付。在上面的 70/30 组合中,Rollup A 将支付 70%,因为它提供了 70%的数据,而 Rollup B 将支付 30%,因为它提供了 30%的数据。这是一种方法。另一种方法是认为,如果由于合作而导致 Rollup A 的成本减少了 X%,那么 Rollup B 也应该获得相同的 X% 的减少。这表明它们应该各自支付共享 blob 的一半。如果它们没有合作,Rollup A 将会购买整个 blob,因此支付共享 blob 的一半是节省了 50%。同样,如果它们没有合作,Rollup B 将会购买整个 blob,因此支付一半也是节省了 50%。根据这一论点,队友们应该始终支付共享 blob 相等份额的费用,而不管每个人贡献了多少数据。
你可以支持其中任何一种分配方式,或者也许你会说两种都有一定的优点,因此最好的答案在两者之间。研究论文讨论了一种称为“纳什讨价还价”的规则,它具有一些不错的技术特性,并且事实证明它介于按比例分配和平均分配规则之间。
事实是,没有人能确切地说出 EIP-4844 推出后会发生什么。我们可以确信 Rollup 交易将变得更便宜。但我们无法确定它们会便宜多少。
我们还知道另一件事。尽管 4844 是一个重要的步骤,以太坊将继续发展并改进其数据可用性支持,而 Rollups 将继续发展它们的使用策略。我们将看到可用内容和 Rollups 如何使用它方面的技术复杂性不断增加,结果将是对用户更有利的交易。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!