燃料和费用

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

前提条件

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

什么是燃料?

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

由于每笔以太坊交易都需要使用计算资源来执行,因此必须为这些资源付费,以确保以太坊不容易受到垃圾信息的攻击,并且不会陷入无限的计算循环。 计算费用以燃料费的形式支付。

燃料费是用于执行某些操作的燃料数量,乘以每单位燃料的成本。 无论交易成功与否,都要支付燃料费。

燃料费必须用以太坊的本币支付,即以太币 (ETH)。 燃料通常以 gwei 计价,gwei 是以太币的一种计量单位。 一个 gwei 等于一个以太币的十亿分之一(0.000000001 个以太币,或 10-9 个以太币)。

比如,你可以说你的燃料费是 1 gwei,而不说 0.000000001 个以太币。

"Gwei" 是 "giga-wei" 的缩写,意思是 “十亿个 wei”。 一个 gwei 等于十亿个 wei。 Wei 本身(以 b-money(opens in a new tab) 的发明者 Wei Dai(opens in a new tab) 的名字命名)是以太币的最小单位。

如何计算燃料费?

当提交交易时,你可以设置你愿意支付的燃料数量。 通过提供一定数量的燃料,你出价将你的交易添加到下一个区块中。 如果你提供的燃料太少,验证者就不太可能选择添加你的交易,这意味着你的交易可能会延迟执行或不会被执行。 如果提供太多,你可能浪费一些以太币。 那么,怎么知道你应该支付多少燃料费呢?

base feepriority fee
Base feePriority fee
base feeprioritypriority

例如,假设 Jordan 要向 Taylor 支付 1 个以太币。 一笔以太币转账需要 21,000 单位的燃料,基础费是10 gwei。 Jordan 支付了 2 gwei 作为小费。

总费用等于:

使用的燃料单位数 *(基础费 + 优先费)
base feepriority fee
21,000 * (10 + 2) = 252,000 gwei
base fee

基础费

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

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

current base fee * 112.5%202.7 gwei * 112.5% = 228.1 gwei

还请注意,考虑到完整区块前的基础费增加速度很快,我们不大可能看到它长时间处于峰值状态。

优先费(小费)

优先费(小费)激励验证者将交易添加到区块中。 如果没有小费,验证者会发现开采空区块在经济上可行,因为它们会获得相同的区块奖励。 小额小费是对验证者将交易添加到区块的最小激励。 在相同区块中,对于要优先于其他交易执行的交易,可以添加更高的小费来尝试使出价高于竞争性交易。

最高费用

maxFeePerGas

区块大小

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

实践中的燃料费计算

你可以明确说明自己愿意支付多少交易执行费。 然而,大多数钱包提供商会自动设置推荐的交易费(基础费 + 推荐的优先费)来降低用户操作的复杂程度。

为什么存在燃料费?

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

max fee - (base fee + tip)

什么是燃料限额?

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

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

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

燃料费高是由于以太坊广受欢迎。 如果需求量太大,用户必须提供更高的小费,力争使出价高于其他用户的交易。 小费越高,交易进入下一个区块的可能性就越大。 此外,更复杂的智能合约应用可能会执行许多操作来支持其功能,使它们消耗大量的燃料。

减少燃料成本的举措

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

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

监控燃料费

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

相关工具

延伸阅读