把所有资源都塞进 gas 按相同规则来计算会导致不合理的 gas 开销,为什么多维度 EIP-1559 能解决这个问题?
来源 | ethresear.ch
EVM 中的许多资源都具有这样的属性,它们的爆发容量 (我们能够在一个或几个区块中处理多少容量) 和持续容量 (我们在很长一段时间内可以接受多少容量) 有非常不同的上限。这样的例子包括:
我们现有的方案是把所有资源都合在一个单一的多维资源 (“gas”) 里,在处理这些差异方面做得很差。例如,平均来说,交易数据和 calldata 平均消耗一个区块里大约 3% 的 gas。因此,最坏的情况下的区块比平均情况下的区块包含多出大约 67 倍的数据。见证数据大小的情况是类似的:平均情况下的见证数据是几百 kB,但最坏情况下,即使有了 Verkle gas 改革也会有几 MB 的大小,也就是增加 10~20 倍。
把所有资源都塞进一个单一的虚拟资源 (gas) 迫使最坏的情况/平均情况比率是基于使用情况的,当基于使用情况的比率与我们知道客户端可以处理的爆发容量和持续容量上限之间的比率出现严重不一致的时候,会导致非常不理想的 gas 开销。
假如有 n 项资源,每项都有一个爆发容量上限 $b(i)$ 和一个持续容量目标 $s(i)$ (我们需要 $b(i)>> s(i))$。我们想要资源 i 在任何一个区块里数量都永远不会超过 $b(i)$,且长期对资源 i 的平均消耗会等于 $s(i)$。
这个解决方案很简单:我们让每项资源都有一个独立的 EIP-1559 目标方案!我们会有一个基本费用 $f(1)...f(n)$,其中$f(i)$代表一个单位资源 i 的基本费用。我们有一个硬性规定,每个区块不能消耗超过 $b(i)$ 单位的资源 i。$f(i)$ 会通过一个目标规则来调节 (我们将使用指数调整,因为我们现在知道它有更好的属性):$f(i,new) = f(i,old)exp(k\frac{u(i)-s(i)}{s_(i)})$
在以太坊上,只有一项资源 (gas) 是从父块调用传送到子块的,为了让上述方案行得通,我们仍然通过 gas 来对所有东西收费。
在过去,对多维度定价模型的主要反对意见是,它们会对区块构建者的优化问题带来困难:区块构建者将不能简单地按照从高到低的每 gas 费用来接受交易,他们必须在不同维度间做平衡,并解决一个多维度的背包问题。这会为专有且优化的矿工创造空间,使他们的表现明显优于现有的算法,从而导致中心化。
这个问题在两个关键方面远没有以前严重:
要想知道为什么第 2 点是对的,我们需要注意一个非常重要的事实:在多维度 EIP-1559 的设计里,每项资源的“松弛”参数 (目标最高值) 可以远远高于 2 倍 。这是因为今天这个 2 倍的松弛参数创造了一个爆发容量/持续容量之间的差距,这个差距来自不可预测的使用量,而在多维度 EIP-1559 的设计里,这个松弛参数代表整个爆发容量/持续容量之间的差距。例如,我们可以将 calldata 使用量的目标定为大约 256 kB (大约比今天多 8 倍), 在此基础上有一个 8 倍的松弛参数 $(\frac {b(i)}{s(i)})$,并且仍然有与现在相当的爆发容量上限。如果见证数据的 gas 开销不变,我们可以把见证数据大小的上限设置为另外的 2 MB,且见证数据大小有一个大约 6 倍的松弛参数。一个对最近 240 个区块的调查显示,甚至在 calldata 4 倍的松弛参数下,这些区块中也只有 1 个达到上限!
这显示了多维度 EIP-1559 有一个很好的副作用:它会使得需要优先费用竞拍的临界情况变得更加罕见,且突然交易量激增的情况也更快结束。
我们可以从基础的开始:
当加上分片后,分片数据也可以被添加到这个列表中。这已经在能够支持更高量级的可扩展性上带来很大改进了,同时降低使用量爆发的风险。
从长远来看,我们甚至可以使定价更加细化:
这样做的主要价值在于,它将增加一个 DoS 保护层:如果每个操作码只能分到例如 100 毫秒的最大预期执行时间,那么,如果攻击者发现一个操作码或预编译慢了 10 倍,他们只能增加 900 毫秒的预期执行时间到区块里。这与今天的情况不同,他们可以用该操作码或预编译来填充整个区块,所以在任何单个操作码或预编译慢下来 10 倍的情况下,攻击者也能创建区块,但这样的区块不能在一个单一 slot 里被处理。
声明:ECN的翻译工作旨在为中国以太坊社区传递优质资讯和学习资源,文章版权归原作者所有,转载须注明原文出处以及ethereum.cn,若需长期转载,请联系ethereumcn@gmail.com进行授权。
本文首发于:https://news.ethereum.cn/Eth1.x/multidimensional-eip-1559
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!