为什么可变有效载荷截止时间只能带来约 6% 的帮助?
简而言之:可变有效载荷截止时间理论上可以提高约 6% 的 gas 限制余裕,而且这还是假设我们以压缩后的区块大小为基准。实际上,此方案以未压缩的区块大小为基准,再加上区块大小分布严重右偏,线性内插实际上无法有效缩短传播时间。我们最终的传播时间甚至可能比现在更短。
根据EIP-7732 ,建构者提交有效载荷,该有效载荷在网路中传播,PTC 对可用性进行投票,验证者在下一个时隙之前执行该有效载荷。
可变有效载荷截止时间方案旨在给予较大的资料区块更长的传播时间,而较小的资料区块则更早到达并获得更多的执行时间。理论上,这听起来合情合理。但实际上,收益微乎其微,而且该方法存在根本性问题。
背景:EIP-7976 和通话资料定价
根据EIP-7976 ,呼叫资料以位元组收费,每位元组 64 gas。标准定价对零位元组收取 4 gas,对非零位元组收取 16 gas。差额(最高 60 gas/位元组)是交易「免费」获得的执行 gas。
EIP-7976 是对EIP-7623 的迭代,后者已在 Pectra 中发布,并将零位元组和非零位元组的呼叫资料成本分别设为 10/40。 EIP-7976 更进一步,统一了零位元组和非零位元组的成本,因为在处理最坏情况下的资料块大小时,这种区别无关紧要。
两个最坏情况模组
在讨论资料大小时,我们通常关注的是 Snappy 压缩后的资料大小。由于该协定没有指定特定的压缩演算法,因此必须处理未压缩的资料大小。这一点很重要,因为这会大大增加问题的复杂性。
设定气体限制时,所有可能的方块都必须容纳在一个插槽内。有两种极端情况:
- 纯计算块:无调用数据,所有 gas 都用于执行。无需传播时间,但执行时间最长。
- 最大调用数据块:填充调用数据,触发底部限制。需要最大传播时间,但也会获得 93.75% 的 gas 作为「预留」执行。
关键观察结果:最大呼叫资料区块的执行开销几乎与纯计算区块一样大。每收取 64 点 gas,只有 4 点用于实际的呼叫资料开销,剩余的 60 点被「预留」用于执行。因此,该资料区块的执行开销是计算区块的 93.75%。有关原因的详细信息,请参阅EIP-7623 的分析。
EIP-7623 方法有效地保持了大多数交易的向后相容性,同时限制了最坏情况下的区块大小。它与 ePBS 也配合良好,因为它即使在最坏情况下的区块中,也会在有效载荷观察截止时间 (PTC) 之后「预留」执行时间。但正是这种「预留执行时间」限制了可变截止时间的有效性。
请参阅此页面,以了解目前与 EIP-7976 之后最坏情况下的压缩区块大小:在 60M gas 的情况下,目前为 2.24 MB,而 7976 之后为 938 KB。最坏情况下的区块大小与 gas 限制呈线性关系。
固定期限与可变期限
在固定截止时间下,所有资料区块都必须由同一个截止时间处理。它既要为最大的资料块预留足够的传播时间,又要为计算量最大的资料块预留足够的执行时间。这些是不同的资料区块,但固定截止时间无法区分它们。它将两种最坏情况都考虑在内,即使没有一个资料块在两个维度上都是最糟糕的。
在可变截止时间下,每个资料区块都会被单独判断。资料量最大的资料区块会获得更多的传播时间。计算量最大的资料块会获得更多的执行时间。理论上是这样。
那么这样做有什么好处呢?
收益等于两个最坏情况模组之间的差异程度。如果它们差异很大,固定截止时间会因为将不相关的最坏情况相加而造成大量浪费。如果它们几乎相同,则几乎没有节省的空间。
使用 EIP-7976:
| 传播 | 执行 | |
|---|---|---|
| 纯计算区块 | 无(简化版) | 100% 气体 |
| 最大调用资料块 | 一些 | 93.75%的气体 |
这两个程式码区块的执行需求仅相差6.25% 。这 6.25% 就是固定截止时间预留的全部空间,而可变截止时间则刚好回收了这部分空间。
6.25% 是怎么来的?它是\frac{C}{4F} = \frac{4}{64} C 4 F = 4 64 :代表实际呼叫资料成本而非「预留」执行成本的最低费用比例。它是最大调用资料区块中实际用于支付调用资料的 gas 比例。
为了获得约 6% 的额外 gas 限制空间,可变截止时间或许仍然值得考虑。但这假设我们以压缩后的区块大小为基准。而我们并非如此。
为什么实际收益甚至更少
约 6% 的数字只是理论上的最大值。实际上,该方案是基于未压缩的资料块大小而非压缩后的资料块大小来制定的。这从根本上破坏了整个方案。
传播过程中真正重要的是资料块在网路上的传输大小,也就是资料块被压缩后的大小。两个资料块未压缩时可能都是 1 MB,但一个压缩后只有 100 KB,而另一个则完全不压缩。尽管传播方式截然不同,但它们的截止时间却相同:
更糟的是,块大小的分布严重右偏:
透过在该分布范围内对 3.6 秒到 9 秒之间进行线性内插,大多数资料区块的截止时间仅略高于最小值。这样一来,我们实际上无需调整传播时间,甚至最终的传播时间可能比现在还要短。
如果以目前的 PR 来看,有效载荷观测截止时间会集中在认证截止时间附近,从而损失了 ePBS 最初提供的大部分传播时间:
即使假设 PR 已更新为使用基于 gas 限制和 EIP-7976 定价的动态最大区块大小,情况也不会有太大改善:
需要明确的是,这并不意味著资料区块的截止时间必须与有效载荷的截止时间相同。它们可以保持分离,但可变的有效载荷截止时间需要与压缩后的大小挂钩才有意义。
我们能否提高理论增益?
为了获得更大的理论增益,两个最坏情况区块之间的差异需要更大。这意味著要降低「保留」执行比例a = 1 - \frac{C}{4F} a = 1 − C 4 F其中C C是标准代币成本, 4F 4 F是每位元组的最低成本。
有两个显而易见的杠杆,但两者都存在严重的利弊权衡。
降低最低成本(例如 64/64 → 32/32)。这将比例缩小至 87.5%,使可变截止时间收益翻倍至 12.5%。标准定价保持在 4/16,以保持向后相容性。但降低最低成本意味著最大区块大小更大:在 1.5 亿 gas 的情况下,最大区块大小从约 2.25 MiB 翻倍至约 4.5 MiB。如果我们想要提高 gas 上限,这将适得其反。
提高标准费用(例如,从 4/16 提高到 8/32)。这将直接降低比例至 87.5%,并将收益翻倍至 12.5%。但这会破坏向后相容性:所有交易(而不仅仅是资料密集型交易)都需要支付更高的通话资料费用。 EIP-7976 的设计目标是使约 98% 的交易保持当前的 4/16 定价。提高标准费用会破坏这个目标。
矛盾之处在于:较高的下限限制了区块大小(EIP-7623 的主要目标),但最大程度地提高了「自由」执行时间。较低的标准成本既能保持向后相容性,也能最大程度地提高「自由」执行时间。这两个目标都使得预留执行比例接近 100%,几乎没有剩余时间可供可变截止时间回收。
现在还值得考虑吗?
尽管如此,可变有效载荷截止时间也有一些优点:
- 实现复杂度低。这只是对诚实验证器规范的一个相对简单的改动,只会影响 PTC。至少理论上来说,这不需要硬分叉。
- 平均情况下的边际收益。平均区块大小远小于最坏情况,因此动态截止时间在典型条件下可以带来微小的效率提升,但考虑到未压缩大小的锚定机制,该协议是否真的能够利用这些提升还值得怀疑。
- 降低建商的资讯优势。如今,中标的建筑商是唯一能够及早完全了解专案最终成果的一方。可变工期可以略微降低这种资讯不对称性。
这些好处确实存在,但幅度不大。鉴于该方法是基于错误的指标(未压缩档案大小),实际收益仅为原本就很小的 6% 的一小部分,而且我们还可能面临传播速度比现在更慢的风险,因此很难令人信服。
真正的解决方案
尽管难度较大,但最佳方案是将资料单独作为一个成本维度来考虑。 EIP -7999提出了多维费用市场。这会破坏向后相容性,但可以让我们精确定义愿意接受的最坏情况成本,从而彻底解耦资料和计算,而不是试图用动态截止时间来掩盖它们之间的纠缠。









