[TOC]

AIP-58 - Gas 计划调整

当前区块链上关于 Gas 费用的计算存在很大的偏差。在我们开发出全自动化的 Gas 费用校准系统的同时,需根据全面的校准数据(这些数据基于交易的固有特性、执行过程、 io 读操作以及 io 写操作的分类)来调整校准时间表。

一、概述

当前的气体计划与验证器吞吐量不太对应。在理想情况下,对于任何工作负载,每秒的 Gas 应保持恒定。

我们将采用一组代表性工作负载,运行验证器吞吐量基准测试以测量它们的TPS,然后根据目标每秒的 Gas 最小化方差,重新校准4组费用的权重。

我们将在此处考虑的四组费用是内在性、执行、io读取和io写入。

1. 目标

减少不同工作负载下最大和最小的每秒 Gas 吐量之间的差异。

2. 超出范围

  • 与存储费用相关的任何内容,因为这些费用不是为了吞吐量,而是为了永久存储而支付费用。
  • 完美的 Gas 校准
  • 完全的 Gas 覆盖

二、动机

当区块链交易吞吐量(以 gas/s 计量)在不同的工作量下发生变化时,区块的 gas 上限变得不再有效,因为我们可能需要:

  • 如果设置得太过激进,就会限制那些每秒交易费用消耗 (gas/s) 很高的工作负载的处理能力。
  • 设置得太宽松,则会导致具有低 Gas 的工作负载的单个区块执行时间过长,从而引起较高的延迟

三、影响

具体的交易费用 (gas charges) 应该作出调整。总体而言,我们预期可以降低平均交易费用,但同时也意味着某些个别交易可能会经历费用上升(特别是那些目前被低估收费的交易)。

四、替代方案

等待所有参数都完全自动化校准,这将使我们更长时间面临纯粹校准的气体计划所带来的问题。

五、规范

根据目前的工作负载,在单个核心上,我们观察到最低与最高的每秒交易费用率 (g/s) 之间有 23 倍的差异。经过校准后,这一差距缩小到了 3 到 4 倍。

六、参考实现

七、测试(可选)

评估各种工作负载的吞吐量和每秒需要的 Gas 费,以及绝对价格变化。

八、风险和缺陷

存在的风险是我们可能会做过度的拟合 - 换言之,对于那些我们没能涵盖的特定工作负载,在这些情况下重新校准有可能导致较差的效果。 不过,我们认为这种情况并不太可能发生,因为我们的校准仅限于少数维度,并且我们努力在测试组合中包含各种具有代表性的工作负载。

九、未来潜力

原文缺失

十、时间表

在 1.9 版本中部署

十一、安全性考虑

这个 AIP 只会改变气体常数,它对安全性的唯一影响是可能会导致小额资金的“拒绝服务”,如果某些东西被低估了(没有将任何值设置为 0,只应用倍增器,因此问题存在上限)。 总的来说,这解决了一些已经存在的“低估”的场景 - 在实践中应该只有好处。 而气体市场将继续运作,也会限制该问题的影响。

这个 AIP 只会调整 Gas 成本常量,并且它在安全性方面唯一可能产生的影响就是,如果某些交易收费过低,可能会出现利用少量资金进行的“拒绝服务攻击”(即 DOS 攻击)。由于没有任何值会被设置为零,仅仅是乘以了一个系数,所以这种问题是有上限的。

总的来说,这将解决一些现有的被低估的情况 - 在实践中应该只会带来利益。 另外,Gas 市场也会继续运行,也会限制这个问题的影响。