以太坊伦敦升级之后的gas 费用计算

2021年8月以太坊伦敦升级之后,手续费的规则改为链订价的base fee 加上给矿工的priority fee。本文讨论从使用者的角度如何计算与理解新的交易手续费机制。

截图是MetaMask 钱包,左图在送出交易之前,点选红色箭头处的「编辑」可进入右图的进阶选项

手续费的组成有两个部分,一个是gas cost ,单位就是gas ,衡量的是运算成本。另一个是gas price (或fee per gas),是衡量每一gas 使用者愿意牺牲多少代价,来取得运算服务,单位是原生币,但可能每种链都帮他们比较小单位的原生币取了不同名字,以太坊上常用的单位是Gwei ,1 Gwei = 0.000000001 ETH。一笔交易总共要花的成本就是gas cost 乘上gas price 。

这边先不讨论gas cost 的部分,规则和以前都一样。这边方便讨论我们可以固定gas cost 是1 gas 或是基本交易手续费21000 gas 。

比较有变化的是gas price 的部分。

新的公式是gas price = base fee + priority

使用者要设定两个max 。这两个值一般钱包软件会帮使用者设定,但使用者可以自订。理解哪些值是哪些角色决定的有助于避免混淆那个值的意义,所以即使钱包软件会帮你设定,还是要当成是使用者设定的,钱包只是辅助执行使用者的意志。

  • max fee是使用者愿意对每一单位gas 最多付出多少Gwei
  • max priority使用者愿意对每一单位gas 给矿工多少Gwei 。

记得这两个单位都是Gwei

使用者的交易会不会被打包是矿工决定的。但一旦打包,区块链会先吃第一口,矿工才可以吃剩的。

链吃第一口的时候不能吃超过max fee,矿工吃剩的时候也不能吃超过max priority。

链会根据短暂时间前系统负担的程度决定要调高或调低想吃多少。这个名称是base fee ,单位也是Gwei 。

严格来说

对于想严格了解细节的读者,这边截出部分EIP-1559 的规格。否则可以直接进例题看看使否可以理解。

对于以下例题的部分,只会用到前两行,用本文使用的名称简化之后长这样。

例题一

(以下假设使用者都有足够余额,交易成功)

现在base fee 114 Gwei 。使用者max fee 设定255 Gwei ,max priority 1 Gwei ,请问使用者为单位gas 花多少Gwei ?

答:

链要吃114 Gwei ,使用者愿意付到255 Gwei ,所以链有办法吃114 Gwei 。

接着换矿工吃。链吃完剩下141 Gwei ,但使用者只愿意付给矿工1 Gwei 。所以矿工只能吃到1Gwei 。

结论: 这笔交易每gas 的费用为114+1= 115 Gwei

例题二

使用者设定同前, base fee 涨到280 Gwei 。

答: 链想吃280 Gwei 但使用者只想给255 Gwei 。交易不被打包,继续在交易池等。

例题三

base fee 114 Gwei ,max fee 255 Gwei ,max priority 255 Gwei

答: 链吃完114 Gwei 之后,剩下的141 Gwei 也会全给矿工吃掉。共花255 Gwei

什么时候会发生例题三的情况?

第一是区块链使用量突然暴增的情况。这时链即使已经在调升base fee ,但系统无法服务当下所有出价足够的使用者。因此这些使用者使用max priority 去争取矿工优先打包。

在系统使用量稳定的时候, base fee 会调整到系统能服务所有愿意出该价格以上的使用者。使用者只要给矿工很少的代价争取打包即可(例如1 Gwei)。

佛系使用者不用担心前种用量暴增问题,睡个觉等热闹完了,系统使用量没那么高时,再来执行自己的交易即可。但下种情况可以注意一下

第二种情况是使用者使用了旧型的交易格式(Legacy Transaction)。这会发生在没针对伦敦升级更新的钱包软件上。先前的钱包软件只会设定gasPrice 这个参数,这个参数在伦敦升级后会被诠释为max fee 和max priority 的值。例如, 钱包软件设定gasPrice 为255 Gwei ,则协定会翻译为max fee 是255 Gwei ,max priority 也是255 Gwei 。

使用旧交易格式对使用者是比较不利的,因为相较于新交易格式(Type 2 Transaction)可以把max priority 设定成1Gwei ,旧交易格式相当于允许矿工第二口可以把max fee 吃到饱。

总结

伦敦升级之后的EIP-1559 系统性的省下不少交易成本。对一般使用者较少发交易的使用者来说可能比较没有感觉。但经常要发送交易的交易所则有许多数据, Coinbase 最近发布报告用实际案例分析省了多少手续费。也有新论文表示升级之后使用者平均而言等待的时间减少了。

对一般使用者而言,如果最近需要发交易的话,尽量找有支援新交易格式的钱包发,可以省不少手续费。钱包有实作的话送交易时可以看到max fee 和max priority 等字样。

橘色为升级之后的等待时间分布图,升级后使用者体验的交易等待时间变短了

本文链接地址:https://www.wwsww.cn/ytf/11371.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。