以太坊Gas费用计算方式(“伦敦”升级前后改动全览)
Gas是什么?
Gas 是指在以太坊网络上执行特定操作所需的计算工作量。
由于每笔以太坊交易都需要计算资源才能执行,每笔交易都需要付费。 在这个方面上,Gas 是指在以太坊成功进行交易所需的费用。
Gas费用计算方式
以太坊的Gas计费规则在2021年8月5日进行了一次升级,即London升级,这次升级改变了以太坊的Gas计算方式,下面我们就详细说一下,这次改变前后都有哪些改动。
伦敦升级之前
假设 Alice 需要支付 1 ETH 给 Bob。 在交易中,gas 限额为 21,000 单位,gas 的价格是 200 gwei。
总费用为:Gas 单位(限额) * Gas 单价
例如 21,000 * 200 = 4,200,000 gwei
或者 0.0042 ETH
当 Alice 汇款时,将从 Alice 账户中扣除 1.0042 ETH。 Bob 将获得 1.0000 ETH。 矿工将得到 0.0042 ETH。
而上面说的是最基本的转账操作,而对于部署智能合约这样的“交易”,Gas的计算就没这么简单了,智能合约花费的Gas费用主要与其代码与存储位置有关,即一个是计算资源,一个是存储资源。
如果你想详细的知道自己将要部署的智能合约要花费多少Gas,那可以参考以太坊黄皮书中关于Gas费用的内容
可以看到,这样的计算方式还是比较复杂的,自己去计算相当不容易,所以现在一般都会用一些自动计算工具,这些我把它放在了文章最后。
伦敦升级之后
伦敦升级于 2021 年 8 月 5 日 实施,目的是通过彻底改造以太坊的交易费用机制,使用户更容易预测以太坊的交易费用。 这一升级带来的更高一层的收益包括更好地估算交易费,通常会加快纳入交易,并通过燃烧一定比例的交易费来抵消 ETH 的发行。
从伦敦网络升级开始,每个区块都有基本费,由网络根据区块空间需求来计算每单位 gas 最低价格。 由于交易费的基本费会被燃烧掉,因此用户还要在其交易中设定一个小费(优先费)。 小费用于满足矿工执行和广播包含用户交易的区块,预计将由大多数钱包自动设置。
交易总费用的计算用如下所示:Gas 单位 (限额) * (基本费用 + 小费)