来源 | @timbeiko/why-1559

作者 | Tim Beiko

EIP-1559 是一个相当复杂的提案。本文尝试尽可能用简单的语言解释它的裨益。注意:1559 的缺点不在本文的写作范围,这些内容将在此份 EIP 的 " 安全问题 (Security Consideration)" 部分呈现。

EIP-1559 的裨益

EIP-1559 提议改变以太坊的费用市场,这份提案将在 UX (用户体验)、经济、与安全上给以太坊带来好处。

UX 上的裨益

➤ 总体上提高打包交易速度

在目前的费用市场下,以太坊上的交易经常需要等很长时间才能被打包。因为区块经常是满的,每个新区块里的交易都从上一个区块继承最高的交易费打包。如果一笔交易不能马上被打包 (通常需要很高的 gas 费),用户很难估算交易什么时候能被打包。

在 EIP-1559 之下,区块可以达到“200% 满”,也就是说如果把 gas limit 设为 12.5m 的话,区块实际上最高可以容纳 25m 的 gas。区块也会把支付了最低 gas 费的交易打包进去,即 BASE FEE。当区块超过容量的 100% 时,BASE FEE 会上升。当区块容量低于 100% 时,BASE FEE 会下降。

这意味着在大多数时间里,区块都有额外 100% 的容量来容纳交易。因此,只要发送交易的费用高于 BASE FEE,且包含了给矿工的小费,交易就会被打包到后面的几个区块里。

BASE FEE 肯定会在交易被发送与被打包之间上涨。为了帮助解决这个问题,交易需要指定它们愿意支付的最高交易费金额,即 FEE CAP。交易发送者最后会获得 FEE CAP 减去 BASE FEE(会被销毁) 与 TIP(支付给矿工) 的差额。

另一个角度看是 1559 使打包交易的价格在协议里变得明晰,而不是在黑盒里。

例如,如果打包的“市价”是 100 gwei,且一个用户想要确保他的交易被快速打包,现在的情况是他们需要支付多于 100 gwei (由于这部分的值不是协议的一个部分,因此很难估算),而他们出价的全部会被计为交易价格。而在 1559 下,如果 BASE FEE 是 100 gwei, 用户给出了 200 gwei 的 FEE CAP,和 3 gwei 的小费, 那么他们只需要支付打包到区块的 BASE FEE 和 TIP。两者的总和与 200 gwei 的 FEE CAP 之间的差价会返还给交易发送者。

关于这方面的改动对 (特别是新的) 终端用户带来的影响,这里有一个更详尽的例子。

对于已达“200% 满”的区块,有一个需要注意的地方。在这种情况下,费用市场会转为支付最高小费的交易优先打包的拍卖机制,也就是我们现在的系统。由于 BAES FEE 上涨的速度非常快 (大约每 5 分钟 10 倍),这些时段持续的时间应该会很短。也就是说,在 1559 下,现在的“正常情况”会变为“最差的情况”。

更准确的交易价格估算

在 1559 下,另一项值得注意的 UX 改善是交易费用估算变得更容易,无论是对 1559 式的交易还是遗留交易。

如上文所述,为 1559 式交易估算合适的价格变得很简单:设置高于 BASE FEE 的 FEE CAP,或者是用户愿意为此笔交易支付的最高费用,设置足以覆盖矿工的计算成本与出叔块风险的 TIP(钱包在默认情况下会设置小费的值,并随时更新,因此终端用户无须自己设置)。

有趣的是,1559 式交易费的简易估算也使得遗留交易 (仍然被支持) 的费用估算更简易。通过参考 BASE FEE 和 TIP 的历史值,交易估算服务将能提供比现在更准确的估算值。这份研究提供了有关原因的技术说明。

经济上的裨益

交易费需要 ETH 来支付

也就是大家所说的”防止 ETH 的经济抽象“。EIP-1559 会要求在协议里的所有交易都用 ETH 支付 BASE FEE 。尽管这听上去好像是小事,但现在的费用市场无法保证支付给矿工的交易费是用 ETH 结算的,或者可能交易费是由矿工支付,然后把自己的交易打包到链上。

换言之,今天有人可以在链下给矿工支付交易费 (或者在链上以其他资产结算,比如 DAI、USDC 等) ,然后以 0 gas 费把他们的交易打包到链上 (例子)。这会导致 ETH 无法成为以太坊网络的首要货币。

在 1559 下,因为 BASE FEE 在交易执行中会被销毁,且必须以 ETH 来支付,交易费需要在链上支付。显然,矿工可以在其他交易里自由选择接收的代币类型,但他们还是需要获取 ETH 来支付其他类型交易的 BASE FEE,这在经济上相当于用户直接用 ETH 支付他们的交易费。

越来越大的区块空间需求形成通缩压力

由于每笔交易里的 BASE FEE 都会被销毁,以及对以太坊的区块空间更大的需求会推高 BASE FEE ,对以太坊区块空间的持续高需求将对 ETH 的供应量形成通缩压力。也就是说,越多人想用以太坊,BASE FEE 会越高,被销毁的 ETH 会越多,无论是总量还是在每笔交易里。

这样的设计符合“最低必要发行量”原则,并能在网络使用与网络价值间形成一个正反馈循环。

安全上的裨益

减轻近区块头重组的风险

随着区块里交易费总额的不断上升,矿工们会更有动力执行小型的近区块头重组来捕获高额交易费的交易,打包到他们的区块里,而不是让一个有竞争力的矿工赚取交易费。这里有一份对这种现象的分析。

在 1559 下,因为大部分的交易费都会被销毁,矿工执行近区块头重组的动力会大大减弱。

使 DoS 或垃圾信息攻击的成本随时间呈指数级增长

现在,如果攻击者想对网络发起 DoS 或垃圾信息攻击,他们的成本是不变的,如果与矿工合作的话,可能会低于市场成本。

攻击者想对网络发起 DoS 或垃圾信息攻击只需支付足够矿工打包交易所需的 gas 费,而且这个价格不为其他正在被打包到链上的交易所影响。如果攻击者与矿工合作,他们可以支付低于市场率的价格,因为矿工可以以低价甚至 0 gas 费把交易打包到区块。

在 1559 下,因为区块容量可以变成 200% 满,如果攻击者想用大量的区块空间来攻击网络,这会导致 BASE FEE 上涨。这意味着攻击成本会随时间推移而变大 (例如,非攻击矿工可以继续打包其他用户的交易),以及攻击者不能以低于 BASE FEE 的价格打包交易到链上。

点击“阅读原文”获取文章内部链接!

原文链接:https://hackmd.io/@timbeiko/why-1559

ECN 的翻译工作旨在为中国以太坊社区传递优质资讯和学习资源,文章版权归原作者所有,转载须注明原文出处以及 ETH 中文站。若需长期转载,请联系 eth@ecn.co 进行授权。

为什么需要 1559?