以太坊知识:EIP-1559是什么?
来源:    发布时间: 2023-11-21 21:23   111 次浏览   大小:  16px  14px  12px
EIP-1559 将调整当前以太坊主网(Eth1)的矿工费机制。该提案将引入 baseFee(基础费用),baseFee 会根据以太坊区块空间的使用情况自动调整链上操作所需的 Gas Price,从而帮助钱包服务商和用户便捷估算操作的费用。

关于 EIP-1559

EIP-1559 将调整当前以太坊主网(Eth1)的矿工费机制。该提案将引入 baseFee(基础费用),baseFee 会根据以太坊区块空间的使用情况自动调整链上操作所需的 Gas Price,从而帮助钱包服务商和用户便捷估算操作的费用。

此外,EIP-1559 增加了一个新的交易类型,该类型允许用户自主设定对当前操作愿意支付的最高费用(maxFee)和支付给矿工的最高费用(maxPriorityFee),并可将最高费用与 baseFee 和矿工费用的差值退还用户。

而且,EIP-1559 将销毁 baseFee(基础费用),一定程度上减缓 ETH 的通胀速度,因此,社区中不少人认为这是对以太坊经济的一项重要改进。

imToken 如何支持 EIP-1559

imToken 支持伦敦升级,对本次升级用户无需进行额外操作。

升级完成后,imToken 用户仍可以正常使用当前版本 imToken 的以太坊钱包功能并发送交易。交易中的矿工费设置以 GasPrice 表示,GasPrice 的预估将基于 EIP-1559 规则。

关于自定义设置 EIP-1559 费用机制中的 maxPriorityFee(支付给矿工的小费)和 maxFee(最高费用),该功能预计将在后续版本 imToken v2.9.6 中尽快提供。

关于交易费用的变化,对此我们暂时无法预计,需要在 EIP-1559 启动后继续观察。

EIP-1559 设计目标

更好的用户体验

当前的以太坊和比特币都采用第一价格竞拍机制,这种费用机制简单但缺乏效率,其中最大的问题在于费用估计。EIP-1559 试图通过让所有的交易尽可能支付相同的费用来解决该问题。多数情况下,用户只需要决定是否发起交易,而无需考虑费用该如何设置。

可变区块容量

区块空间利用率往往是变化的,有些区块空间闲置,而有些区块塞满交易。可变区块容量将允许区块大小随实际需求变动。

更好的安全性

当区块奖励消失,仅靠交易费用不足以激励矿工维护网络安全。EIP-1559 通过销毁交易费用,即可在不增加总供应量的前提下,延长通过区块奖励激励矿工的时间,从而保障网络的安全性。

防止经济抽象

简单来说,即只允许使用 ETH 支付交易费用。如果用户可用任何代币支付交易费用,则可能会威胁到 ETH 的储备地位。EIP-1559 通过强制把 ETH 作为费用代币来缓解这一问题。

EIP-1559 如何工作

升级前的矿工费机制

矿工费 = GasPrice GasUsed

GasUsed(gas):交易消耗的总 gas 数量。

GasPrice(gwei):即对单位 gas 的定价,1 gwei= 10^(-9) eth。

采用竞价机制,GasPrice 设置越高,交易处理速度越快。

交易由矿工处理,矿工费完全由矿工收取。

升级后的费用机制

交易费用 = (baseFee + PriorityFee) GasUsed

对比升级前后的公式,可以看出 EIP-1559 是将 GasPrice 拆分成了两个费率的组合:baseFee 和 PriorityFee。

baseFee(基础费用)

baseFee 会根据上一区块的空间利用率自动调整,如果利用率超过 50%,则提升当前区块的 baseFee;反之降低。

按照 baseFee 计算公式,相邻区块间的 baseFee 变化幅度在 ±12.5% 之间:

如果上一区块空间利用率为 100%,则当前区块 baseFee 将自动提升 12.5%

如果上一区块空间利用率为 0%,则当前区块 baseFee 将自动降低 12.5%

不同于原来的矿工费机制,EIP-1559 升级后,交易费用不完全由矿工收取,其中 baseFee 将被完全销毁。

PriorityFee(小费)

PriorityFee 表示给矿工的小费,延续了竞价设计。如果希望自己的交易在区块中被尽快打包,可通过设置 PriorityFee 激励矿工,矿工将优先处理 PriorityFee 高的交易。

同时,用户还可以自行设置 PriorityFee 的最高值,即付给矿工小费的上限,也叫 maxPriorityFee。

maxFee(最高费用)

maxFee 表示用户愿意对某笔交易可支付的最高交易费用。对应到公式中,maxFee = baseFee + maxPriorityFee,其中 maxFee 和 maxPriorityFee 都支持用户自行设置,baseFee 则由算法自动给出。

注:升级后「矿工费」的说法已经不合适了,因为费用中的 baseFee 是要销毁的,只有 PriorityFee 由矿工收取。或许 EIP-1559 升级后,我们应该在以太坊生态中弃用「矿工费」的说法了。

EIP-1559 交易费用计算实例

升级前

矿工费 = GasPrice GasUsed

升级后

交易费用 = (baseFee + PriorityFee) GasUsed

maxFee >= baseFee + maxPriorityFee

可能出现的各种费用情况,单位 gwei


如何看待 EIP-1559

EIP-1559 历经了两年的讨论,至今仍然备受争议,对于 EIP-1559 的利弊,社区中有很多严肃深入的思考和讨论,感兴趣的同学可以查看:

EIP-1559 提案:EIP-1559: Fee market change for ETH 1.0 chain:

中文资料汇总:链闻精选 | 读懂以太坊 EIP-1559 提案,它为何备受争议?:

英文资料汇总:EIP-1559 Resources ?:

EIP-1559 相关工具


这个页面统计了 EIP-1559 启动后销毁的 ETH 数量。


基于 EIP-1559 规则,GasNow 提供了对 baseFee、maxFee 及 maxPriorityFee 的设置建议。

参考资料

Deribit Insights | Analysis of EIP-1559:

Chang-Wu:EIP-1559