跳转至主要内容

帮助更新此页面

🌏

本页面有新版本,但现在只有英文版。请帮助我们翻译最新版本。

翻译页面
查看英文

没有错误!🐛

此页面未翻译,因此特意以英文显示。

Gas 和费用

上次编辑: , Invalid DateTime
编辑页面

Gas 对以太坊网络至关重要。 正是这种燃料使它能够运行,正如车辆需要汽油一样。

前提条件

为了更好地理解此页面,推荐先阅读交易EVM

什么是 Gas?

Gas 是指在以太坊网络上执行特定操作所需的计算工作量。

由于每笔以太坊交易都需要计算资源才能执行,每笔交易都需要付费。 在这个方面上,Gas 是指在以太坊成功进行交易所需的费用。

显示 EVM 操作所需 Gas 的图表 示意图节选自以太坊虚拟机图解

本质上,Gas 费用是以太坊的货币以太 (ETH) 支付的。 Gas 价格以 Gwei 标明,Gwei 本身就是 ETH 的一个单位――每个 Gwei 等于 0.000000001 ETH (10-9 ETH)。 例如,您可以说您的 Gas 成本为 1 Gwei,而不是说您的 Gas 成本为 0.000000001 以太。 “gwei”一词本身表示“giga-wei”,等于 1,000,000,000 wei。 Wei 本身(以 b-money 的发明者 Wei Dai 命名)是 ETH 中最小的单位。

伦敦升级之前

以太坊网络交易费的计算方式在 2021 年 8 月的伦敦升级后发生了改变。 以下回顾了过去的工作方式:

假设 Alice 需要支付 1 ETH 给 Bob。 在交易中,燃料限额为 21,000 单位,燃料的价格是 200 gwei。

总费用为:燃料单位(限额) * 燃料单价 例如 21,000 * 200 = 4,200,000 gwei 或者 0.0042 ETH

伦敦升级之后

假设 Jordan 需要向 Taylor 支付 1 个以太币。 在交易中,燃料限额为 21,000 单位,基础费是 10 gwei。 Jordan 支付了 2 gwei 作为小费。

现在,总费用为:units of gas used * (base fee + priority fee),其中 base fee 是协议设置的值,priority fee 是用户设置的值,即给验证者的小费。

即,21,000 * (10 + 2) = 252,000 gwei 或 0.000252 个以太币。

当 Jordan 转账时,将从 Jordan 帐户中扣除 1.000252 个以太币。 Taylor 的帐户增加 1.0000 个以太币。 验证者收到 0.000042 个以太币的小费。 0.00021 个以太币的基础费被销毁。

此外,Jordan 还可以为交易设定最高费用 (maxFeePerGas)。 最高费用与实际费用之间的差额将退还 Jordan。即 refund = max fee - (base fee + priority fee)。 Jordan 可以为要执行的交易设置一个最高支付金额,而不用担心在执行交易时“超额”支付基础费。

区块大小

在伦敦升级之前,以太坊具有固定大小的区块。 在网络需求高峰期,这些区块满负荷运行。 因此,用户常常不得不等到需求量从高峰降低后才能将交易添加到区块中,这导致用户体验很糟糕。

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

基础费

每个区块都有一个基础费作为底价。 要想有资格添加到区块中,燃料费用报价必须至少等于基础费。 基础费独立于当前区块计算,是由当前区块之前的区块决定的,这使得用户更容易预测交易费。 当区块被开采时,其基础费将被“销毁”并退出流通。

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

区块编号已包含燃料费用增加当前基本费用
115M0%100 gwei
230M0%100 gwei
330M12.5%112.5 gwei
430M12.5%126.6 gwei
530M12.5%142.4 gwei
630M12.5%160.2 gwei
730M12.5%180.2 gwei
830M12.5%202.7 gwei

相对于伦敦升级之前的燃料拍卖市场,这种交易费机制的变化使费用更容易预测。 根据以上表格,要在 9 号区块创建交易,钱包会让用户明确知晓,要将交易添加到下一个区块的最大基础费等于 current base fee * 112.5%202.8 gwei * 112.5% = 228.1 gwei

还请注意,由于在处理完整区块时基础费增加的速度,我们不太可能看到长时间出现完整区块高峰。

区块编号已包含燃料费用增加当前基本费用
3030M12.5%2705.6 gwei
......12.5%...
5030M12.5%28531.3 gwei
......12.5%...
10030M12.5%10302608.6 gwei

优先费(小费)

在伦敦升级之前,矿工获得区块中所含全部交易的总燃料费。

由于新的基础费被销毁,伦敦升级引入了优先费(小费),激励矿工将交易添加到区块中。 如果没有小费,矿工会发现开采空区块在经济上可行,因为他们会获得相同的区块奖励。 在正常情况下,一笔金额不大的小费为矿工添加交易提供了极小的激励。 对于需要在同一区块中优先执行的交易,需要提供更高的小费,力争使出价高于竞争交易。

最高费用

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

计算费用

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

EIP-1559

在伦敦升级中实现的 EIP-1559 使得交易费机制比以前的燃料价格竞拍更加复杂,但优点是提高了燃料费用的可预测性,使交易费市场更加高效。 用户可以在提交交易时设定 maxFeePerGas(对应于他们愿意为执行交易支付多少费用),他们清楚支付金额将不会超过燃料的市场价格 (baseFeePerGas),并且多支付的金额将在减去小费后退还。

下面的视频解释了 EIP-1559 及其带来的好处:

如果感兴趣,你可以阅读 EIP-1559 规范

如欲进一步深入,请参考 EIP-1559 资源

为什么存在燃料费用?

简而言之,燃料费用有助于确保以太坊网络的安全。 在网络上执行的每次计算都需要收费,这样可以防止不良行为者给网络带来垃圾信息。 为了防止代码中出现无意或恶意的无限循环或其他计算浪费,要求每个交易对可以采用的代码执行计算步骤设置一个限制。 基本计算单位是“燃料”。

尽管交易中包含费用限制,但交易中未使用的所有燃料将退还给用户(即退还 max fee - (base fee + tip))。

未使用燃料退还示意图 示意图节选自以太坊虚拟机图解

什么是燃料限额?

燃料限额是指你愿意在交易中消耗的最大燃料数量。 涉及智能合约的更复杂交易需要进行更多的计算工作,因此相比简单的支付,它们需要更高的燃料限额。 标准以太币转账要求燃料限额为 21,000 单位燃料。

例如,如果你对简单的以太币转账设置 50,000 单位燃料限额,以太坊虚拟机将消耗 21,000 单位,你将收到剩余的 29,000 单位。 然而,如果你设置的燃料太少,比如说,对于简单的以太币转账,设置燃料限额为 20,000 单位,以太坊虚拟机将消耗 20,000 单位燃料并尝试完成交易,但不会完成。 然后,以太坊虚拟机回滚所有变化,但由于矿工已经完成了价值 20k 单位燃料的工作,这些燃料就被消耗了。

为什么燃料费会变得如此高?

燃料费高是由于以太坊广受欢迎。 在以太坊进行任何操作都需要消耗燃料,并且每个区块的燃料空间有限。 费用括计算费用、存储或操作数据费用或转移代币费用,这些操作消耗不同数量的“燃料”单位。 随着去中心化应用程序的功能变得更加复杂,智能合约执行的操作数量也会增加,即每笔交易在有限大小的区块内占用更多空间。 如果需求量太大,用户必须提供更高的小费,力争使出价高于其他用户的交易。 小费越高,交易进入下一个区块的可能性就越大。

光靠燃料价格并不能实际决定我们必须为特定交易支付的金额。 为了计算交易费,我们必须将使用的燃料乘以基础燃料费,后者以 Gwei 为单位。

减少燃料成本的举措

以太坊可扩展性升级应该最终解决部分燃料费用问题,并让以太坊平台能够每秒处理数千个交易,从而全面扩容。

二层网络扩容是一项主要举措,可大大优化燃料成本、用户体验和可扩展性。 更多关于二层网络扩容的信息

降低燃料成本的策略

如果你希望降低以太币的燃料成本,可以设置小费来表明交易的优先级。 矿工将“处理”并执行每单位燃料小费更高的交易,因为他们可以保留你支付的小费;矿工不太愿意执行小费较低的交易。

如果想要监控燃料价格,用较少的费用发送以太币,你可以使用多种不同的工具,例如:

延伸阅读

use-Nexus

  • find-nexus
  • 第二层

企业级应用

关于nexus.org

  • 关于我们
  • 工作机会
  • 参与贡献
  • 语言支持
  • 隐私政策
  • 使用条款
  • Cookie 政策
  • 联系我们