• 2

  • 2

  • 收藏

EIP 1559 瘦身方案

Unitimes_Louis

Unitimes翻译&以太坊技术爱好者

1年前

作者 | Vitalik Buterin

这是一项大大简化交易费用改进机制的提议,旨在具有与EIP 1559提案类似(尽管稍微不那么优化)的效果,但实现复杂度约为其1/5。

参数

ADJUSTMENT_COEFFICIENT: 8

协议变更

  • 我们将状态中的特定存储插槽(例如,地址0x0100的存储密钥0)设为BASEFEE。 “设置BASEFEE”意味着将SSTORE设为该存储插槽,当在公示中使用BASEFEE时,相当于使用SLOAD从存储插槽中取值。
  • 在处理区块FORK_BLKNUM起始阶段,将BASEFEE设为1
  • 设置diff = block.gas_used - block.gas_limit // 2。在处理区块的结尾:
  • 计算区块奖励和手续费后,扣除BASEFEE * block.gas_used后发放给矿工。如果扣除后金额小于0,区块判定无效。
  • 如果diff > 0, 设置 BASEFEE = BASEFEE +max(1, BASEFEE * diff // block.gas_limit // ADJUSTMENT_COEFFICIENT)
  • 如果diff < 0 而且 BASEFEE > 1, 设置 BASEFEE = BASEFEE -max(1, BASEFEE * abs(diff) // block.gas_limit // ADJUSTMENT_COEFFICIENT)

合理值

当前,矿工通常有一些内部mingasprice,并且接受tx.gasprice> = mingasprice的每笔交易,如果有足够多的交易来填充区块,将选择手续费最高的交易。mingasprice反映了矿工在处理交易中的成本以及添加该笔交易的区块传播不够快而无法加入主链的风险补偿。

计算出的“合理”mingasprice 约为0.8 gwei(叔块损失大约0.33 ETH = 330m gwei,10m gas把叔块率提升到约为0.025,因此1gas的预期成本= 330m / 10m * 0.025 = 0.825 gwei),而矿工实际上确实设置了该值(请参阅ethgasstation底部的表[1])。

这种机制增加了矿工需要支付的费用(被烧毁),调整他们的收益从而让他们动态设置mingasprice,费用等于BASEFEE加1 gwei(客户端开发人员可以增加矿工设置,这样他们就可以不用做任何改变来自动调整)。用户现在可以发送一笔gasprice为当前区块头的BASEFEE(等于下一个区块的BASEFEE)+ 1-2 gwei的交易,并且很有可能将其交易包含在下一个区块中,而无需基于最近的手续费和内存池统计数据进行复杂的计算得出手续费,甚至即使这样交易可能在几个区块之后才能得到确认。 因此,大部分EIP 1559简洁性得以复用,尽管在交易高峰期用户可能仍需像现在一样设置更高的手续费来确保交易尽快得到确认。

 

原文链接:

https://ethereum-magicians.org/t/skinny-eip-1559/3738

正文中涉及的链接:

[1]:https://ethgasstation.info/

Unitimes

2

相关文章推荐

未登录头像

暂无评论