践行区块链

以太坊新的 gas 费计算

2022-07-27  本文已影响0人  Ashton

今天有同学问我 etherscan 里先生的 "Txn Savings Fees" 是啥,我就顺便把以太坊新的 gas 费计算方式讲一下吧。

下图是我从 etherscan 截取的一笔交易里与 gas 费有关的部分。

Etherscan Gas 费显示
这上面的每个字段都代表啥意思呢?
Transaction Fee: 这是最终实际用户所付出的 Gas 费。在这笔交易里也就是价值差不多 0.3 美金的 ETH。在 EIP-1559 之前,这笔费用是全部分给矿工的。在 EIP-1559 之后,这笔费用分成了两部分,一部分还是给矿工,但更大的一部分是直接销毁掉的。在这笔交易里,有大概价值 0.25 美金的 ETH 是被直接销毁的,有 0.3 - 0.25 = 0.05 美金的 ETH 是分配给矿工的。

Gas Price: 这个和 EIP-1559 之前的 Gas Price 含义相同,是用户为每一个单位的 Gas 所付出的费用。也称 Gas 价格。
与 EIP-1559 之前不同的是,之前的 Gas Price 都是用户指定的,这里的 Gas Price 是按公式计算出来的:Gas Price = Base Fee + Max Priority Fee

Gas Limit: 这个一直没啥变化,是用户允许这笔交易最大可消耗的 Gas 数量。

Usage by Txn: 这笔交易实际所消耗的 Gas 量,如果像这里演示的这笔交易一样是笔普通的 ETH 转账交易,这个值为固定值 21000。其它交易的值都是大于 21000 的某个值。值得注意的是,这个值是小于等于 Gas Limit 的。

Gas Fees: 这个叫法很容易让人和 Transaction Fee 产生混淆,更准确的说这是每个单位 Gas 的费用。这部分费用由三部分构成:Base Fee,Max Fee 和 Max Priority Fee。

简而言之,当区块使用率超过 50% 时,下一个区块的 Base Fee 会自动升高,最高比例为 12.5%,当区块使用率低于 50% 时,下一个区块的 Base Fee 会自动降低,最高比例为 12.5%。

相对之前 Gas Price 完全由用户提供,经常大起大落,Base Fee 的变化显然是更加可预测也更加平缓的。

每个区块的 Base Fee 是维护在区块头中的。

发送交易的时候,用户不需要指定 Base Fee。

Max Fee = (2 * Base Fee) + Max Priority Fee

Burnt: 这个是销毁掉的 ETH 数量

Burnt = Base Fee * Gas Usage by Txn

Tx Savings Fees: 这个是愿意付的最高费用和实际花费的差额

Tx Savings Fees = Max Fee * Gas Usage by Txn - (Base Fee + Max Priority Fee) * Gas Usage by Txn
上一篇下一篇

猜你喜欢

热点阅读