以太坊Gas费用计算方式(“伦敦”升级前后改动全览)

以太坊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 单位 (限额) * (基本费用 + 小费)

假设 Jordan 需要向 Taylor 支付 1 ETH。 在交易中,矿工报酬限额为 21,000 单位,基本费用的价格是 100 gwei。 Jordan 支付了 10 gwei 作为小费。

使用上面的公式,我们可以计算 21,000 * (100 + 10) = 2,310,000 gwei 或 0.00231 ETH。

当 Jordan 转账时,将从 Jordan 账户中扣除 1.00231 ETH。 Taylor 将获得 1.0000 ETH。 矿工得到 0.00021 ETH。 0.0021 ETH 的基本费用被燃烧。

此外,Jordan 还可以为交易设定最高费用 (maxFeePergas)。 最高费用与实际收费之间的差额将归还给 Jordan。如: 退款 = 最高费用 - (基本费用 + 优先费)。 Jordan 可以为执行交易费用设定一个最高金额,而不必担心在执行交易时“超额”支付基本费用。

区块大小

在伦敦升级之前,以太坊有固定大小的区块。 在网络需求很高的时期,这些区块满负荷运行。 因此,用户常常不得不等待大量需求减少后才能被列入一个区块,这导致用户体验很差。

伦敦升级在以太坊中引入了大小可变区块。 每个区块的目标大小为 1500 万 gas,但区块的大小将根据网络需求增减。最多到 3000 万 gas 的区块限制(目标区块大小的 2 倍)。 该协议通过 tâtonnement 的过程使区块大小平均达到 1,500 万。 这意味着如果区块大小超出目标区块大小,协议将增加以下区块的基本费用。 同样,如果区块大小低于目标区块大小,协议将减少基本费用。 基本费用的调整金额与当前区块大小和目标区块大小的差距是成比例。

基本费用

每个区块都有作为储备价格的基本费用。 要想有资格被列入区块,gas 费用报价必须至少等于基本费用。 基本费用独立于当前区块计算,是由区块之前的区块决定的,这使得用户更容易预测交易费用。 当区块被开采时,此基本费用将被“燃烧掉”,从循环中移除。

基本费用的计算公式是将上一个区块的大小(所有交易中使用的 gas 数量)与目标大小进行比较。 如果超过目标区块大小,区块的基本费用将最多增加 12.5%。 这种指数级增长使得区块大小无限期保持高位在经济上是不可行的。

区块编号 已包含 Gas 费用增加 当前基本费用
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

相对于伦敦升级之前的 gas 拍卖市场,这种交易费机制的变化使费用更容易预测。 根据以上表格,在 9 号区块创建交易,钱包会让用户确切了解,要添加到下一个区块的最大基本费用当前基本费用 * 112.5%202.8 gwei * 112.5% = 228.1 gwei

还请注意,由于处理完整块的基本费用增加的速度,我们不太可能看到完整块的延长峰值。

区块编号 已包含 Gas 费用增加 当前基本费用
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

优先费(小费)

在伦敦升级之前,矿工将获得区块中所含交易的总 gas 费用。

随着新的基本费被燃烧,伦敦升级引入了优先费 (小费),以激励矿工将交易纳入区块。 如果没有小费,矿工会发现开采空区块在经济上可行,因为他们会获得相同的区块奖励。 在常规情况下,一笔金额不大的小费给矿工提供了包含该交易的最低激励。 对于需要在同一区块中优先执行的交易,需要更高的小费来试图出价高于竞争交易。

最高费用

要在网络上执行交易,用户可以为他们愿意支付的交易执行费指定最高限额。 此可选参数称为 maxFeePergas。 为了执行交易,最高费用必须超过基本费用和小费的总和。 会为交易发送人退还最高费用与基本费用和小费总和之间的差额。

计算费用

伦敦升级带来的主要好处之一是提高用户在确定交易费用时的体验。 对于支持升级的钱包,钱包提供商将自动设置推荐的交易费(基本费用 + 推荐优先费),而不是明确说明您愿意支付多少费用来完成交易,以便降低用户的复杂程度。

EIP-1559

在伦敦升级中执行 EIP-1559 使得交易费机制比以前的 gas 竞价招标更加复杂,但优点是提高 gas 费用的可预测性,从而使交易费市场更加有效。 用户可以在提交交易时设定 maxFeePergas,表示他们愿意为执行交易支付多少费用,同时清楚该数额不会超过 gas 的市场价格 (BaseFeePergas),并且获得减去小费后的剩余退款。

如果感兴趣,您可以阅读更确切的 EIP-1559 规范

更深层次的见解请参见 EIP-1559 资源

什么是 GAS 限额?

Gas 限额是指您愿意在交易中消耗的最大 gas 数量。 涉及智能合约的更复杂交易需要更多的计算工作,因此相比较简单的支付,它们需要更高的 gas 限额。 标准的 ETH 转账一般要求 gas 的限额为 21,000 单位。

例如,如果您对简单的 ETH 转账设置 50,000 gas 限额。EVM 将消耗 21,000,您将收到剩余的 29,000。 然而,如果您设置的 gas 太少,比如说,对于简单的 ETH 转账,gas 限额为 20,000。EVM 将消耗您 20,000 gas 试图实现交易,但不会完成。 然后,EVM 会恢复所有变化,但由于矿工已经完成了价值 20k gas 的工作,所以 gas 被消耗掉了。

为什么 GAS 费会变得如此高?

Gas 费高是由于以太坊受欢迎。 在以太坊进行任何操作都需要消耗 gas,每个区块的 gas 空间有限。 这包括计算、储存或操作数据,或转移代币,每种消耗不同数量的“gas”单位。 随着 dapp 功能变得更加复杂,智能合约执行的操作数量也会增加。即每个交易在有限大小区块内占用更多空间。 如果需求太大,用户必须提供更高的小费来尝试超越其他用户的出价。 小费更高即更有可能让你的交易进入下一区块。

光靠 gas 价格并不能实际决定我们必须对特定交易支付的金额。 为了计算交易费,我们必须将交易费所使用的 gas 乘以 gwei。

减少 GAS 成本的举措

以太坊 2.0 的新网络升级(也称为 Eth2 或 Sereny)应最终解决一些 gas 费用问题,解决这些问题反过来又使平台在全球范围内处理成千上万次的交易。

第二层扩容是一项主要举措,可大大优化 gas 成本、用户体验和可扩展性。

在信标链上引入的新验证模式可以降低高耗电量,减少对专门硬件的依赖。 它将使去中心化的以太坊网络能够达成共识并保持网络安全,同时通过代替要求财务承诺来限制能源消耗。

任何拥有至少 32 个 ETH 的人都可以抵押这些 ETH,成为负责处理交易、验证区块并提出要添加到链中的新区块的验证者。 少于 32 个 ETH 的用户可以加入权益质押池。

降低 GAS 成本的策略

如果您尝试降低 ETH 的 gas 成本,则可以设置小费来表明交易的优先级别。 矿工会“继续工作”并执行每 gas 提供小费更高的交易。因为他们可以保留您支付的小费,而不会倾向于执行小费较低的交易。

如果想要监控 gas 价格,用较少的费用发送 ETH,您可以使用多种不同的工具,例如:

相关工具

猜你喜欢

转载自blog.csdn.net/weixin_43886457/article/details/122503516