前情回顾
ETH网络 之 Gas
EIP-1559
EIP-1559
EIP-1559是以太坊改进提案(Ethereum Improvement Proposal),旨在
改进以太坊的交易费用机制
。该提案引入了一种新的交易费用模型
,以提高交易费用的可预测性和网络的效率
。我们本文各种费用的计算基于该提案
BaseFee
每个区块都有一个
基础费
作为底价。要想有资格添加到区块中,燃料费出价必须至少等于基础费
。 基础费独立于当前区块计算,是由当前区块之前的区块决定的
,这使得用户更容易预测交易费
。在创建区块时,它的基础费
将被销毁并退出流通
计算逻辑
目标区块容量
:每个区块的目标大小为1500 万单位Gas
,但区块的大小将根据网络需求增减,最大不得超过 3000 万单位Gas
的大小上限(目标区块大小的2
倍)
协议通过动态调整
的过程使均衡区块大小平均达到 1,500 万单位Gas
。 这意味着如果区块大小超出目标区块大小,协议将增加下一个区块的基础费(目前最高可增加 12.5%)
。 同样,如果区块大小小于目标区块大小,协议将减少基础费
。基础费的调整金额与当前区块大小和目标区块大小的差距成比例
计算过程:
初始设定
:在每个新的区块开始时,基础费用的值被设置为前一个区块中的基础费用
动态调整
:每个区块的基础费用都会根据上一个区块中的交易量动态调整。具体来说,如果上一个区块中的交易量超出了一定的阈值(目前是目标区块容量的一半),则基础费用将增加;如果交易量低于该阈值,则基础费用将减少
增长示例:
区块编号 | 已包含燃料 | 费用增加 | 当前基本费用 |
---|---|---|---|
1 | 15M | 0% | 100 gwei |
2 | 30M | 0% | 100 gwei |
3 | 30M | 12.5% | 112.5 gwei |
4 | 30M | 12.5% | 126.6 gwei |
5 | 30M | 12.5% | 142.4 gwei |
6 | 30M | 12.5% | 160.2 gwei |
7 | 30M | 12.5% | 180.2 gwei |
8 | 30M | 12.5% | 202.7 gwei |
— | — | ----- | --------------- |
30 | 30M | 12.5% | 2705.6 gwei |
— | — | ----- | --------------- |
… | … | 12.5% | … |
50 | 30M | 12.5% | 28531.3 gwei |
… | … | 12.5% | … |
100 | 30M | 12.5% | 10302608.6 gwei |
如果超过目标区块大小,每个区块的基础费将
最多增加 12.5%
。这种指数级增长使得区块大小无限期保持高位在经济逻辑上不可行。就像油贵了,大家就会换其它方式出行。
PriorityFee
优先费
激励验证者将交易添加到区块中。 如果没有小费,验证者会发现开采空区块在经济上可行,因为它们会获得相同的区块奖励
小额小费是对验证者将交易添加到区块的最小激励。在相同区块中,对于要优先于其他交易执行的交易,可以添加更高的小费来尝试使出价高于竞争性交易(很多MEV机器人
为了快速确定交易,会把这个值设置的很高)
maxFeePerGas
在网络上执行交易,用户可以为他们愿意支付的交易执行费用指定
最高限额
。此可选参数称为maxFeePerGas
为了执行交易,最高费用必须超过基础费和小费的总和
交易完成后,会将最高费用 - (基础费 + 小费)
的差额退还给交易发送人。如果超出了允许的最高费用,那么交易会失败,并且支付的Gas费也会被花掉
(因为节点确实执行了交易,只不过交易需要更改的GasFee)
GasLimit(燃料限额)
燃料限额是指你
愿意在交易中消耗的最大Gas数量
(就是你愿意花费多少单位的Gas)。涉及智能合约的更复杂交易需要进行更多的计算工作,因此相比简单的支付,它们需要更高的燃料限额
标准以太币转账要求燃料限额为21,000
单位Gas
例如,如果你对简单的以太币转账设置 50,000
单位燃料限额,以太坊虚拟机将消耗 21,000
单位,你将收到剩余的 29,000
单位。
然而,如果你设置的燃料太少,比如说,对于简单的以太币转账,设置燃料限额为 20,000
单位,以太坊虚拟机将消耗 20,000
单位燃料并尝试执行交易,但最后不会完成。最后,以太坊虚拟机回滚所有变化
,但由于验证者已经完成了价值 20,0000 单位燃料
的工作,这些燃料就被消耗了
监控GasFee
- Etherscan Gas追踪
- GasFee 预估插件
- Layer2 Gas预估