跳转至主要内容
Change page

燃料和费用

页面最后更新: 2025年10月27日

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

前提条件

为了更好地理解本页内容,建议您先阅读有关交易EVM 的内容。

什么是燃料?

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

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

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

一张图表,显示 EVM 操作中哪里需要燃料 图表改编自 《图解以太坊虚拟机》opens in a new tab

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

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

"Gwei" 是 "giga-wei" 的缩写,意思是 “十亿个 wei”。 一个 gwei 等于十亿个 wei。 Wei(得名于 b-moneyopens in a new tab 的创建者戴伟opens in a new tab)是以太币 (ETH) 的最小单位。

如何计算燃料费?

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

你支付的总燃料费分为两个部分:基本费用优先费(小费)。

基本费用由协议设置——你必须至少支付这笔费用,你的交易才会被视为有效。 优先费是你添加到基本费用中的小费,用于激励验证者,以便他们将你的交易打包到下一个区块中。

只支付基本费用的交易在技术上是有效的,但不太可能被打包,因为它没有激励验证者优先选择它,而不是其他任何交易。 “正确的”优先费由你发送交易时的网络使用情况决定——如果需求量大,你可能需要设置更高的优先费,但当需求量较少时,你可以支付更少的费用。

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

总费用等于:

使用的燃料单位 * (基本费用 + 优先费)

其中 基本费用 是协议设定的值,优先费是用户设定给验证者的小费。

例如,21,000 * (10 + 2) = 252,000 gwei (0.000252 ETH)。

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

基本费用

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

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

区块编号已包含燃料费用增加当前基本费用
118M0%100 gwei
236M0%100 gwei
336M12.5%112.5 gwei
436M12.5%126.6 gwei
536M12.5%142.4 gwei
636M12.5%160.2 gwei
736M12.5%180.2 gwei
836M12.5%202.7 gwei

上表中使用 3600 万作为燃料限制来举例说明。 根据这个例子,要在第 9 号区块上创建交易,钱包会明确告知用户,要添加到下一个区块的最高基本费用当前基本费用 * 112.5%202.7 gwei * 112.5% = 228.1 gwei

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

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

优先费(小费){#priority-fee}

优先费(小费)激励验证者在区块燃料限制的约束下,将一个区块中的交易数量最大化。 如果没有小费,理性的验证者可能会打包更少甚至零交易,而不会受到任何直接的执行层或共识层惩罚,因为质押奖励与区块中的交易数量无关。 此外,小费允许用户通过出价高于他人来获得同一区块内的优先处理权,从而有效地表明其紧迫性。

最高费用

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

区块大小

每个区块都有一个目标大小,即当前燃料限制的一半,但区块的大小会根据网络需求增减,直至达到区块上限(目标区块大小的 2 倍)。 协议通过_试探_过程在目标处实现均衡的平均区块大小。 这意味着如果区块大小超出目标区块大小,协议将增加下一个区块的基础费。 同样,如果区块大小小于目标区块大小,协议将减少基础费。

基础费的调整金额与当前区块大小和目标区块大小的差距成比例。 这是一个线性计算:空区块为 -12.5%,达到目标大小时为 0%,达到燃料限制的区块为 +12.5%。 燃料限制会随着时间的推移,根据验证者信号以及网络升级而波动。 你可以在此处查看燃料限制随时间的变化opens in a new tab

关于区块的更多信息

在实践中计算燃料费

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

为什么存在燃料费?

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

尽管交易包含限制,但交易中任何未使用的燃料都会返还给用户(例如,返还最高费用 - (基本费用 + 小费))。

显示未使用的燃料如何退款的图表 图表改编自 《图解以太坊虚拟机》opens in a new tab

什么是燃料限额?

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

例如,如果你对简单的以太币转账设置 50,000 单位燃料限额,以太坊虚拟机将消耗 21,000 单位,你将收到剩余的 29,000 单位。 然而,如果你指定的燃料量过少,例如,对于一个简单的 ETH 转账,燃料限制设置为 20,000,则交易将在验证阶段失败。 该交易在被打包进区块之前会被拒绝,且不会消耗任何燃料。 反之,如果交易在执行过程中耗尽了燃料(例如,智能合约执行到一半时,耗尽了所有燃料),EVM 将回滚所有更改,但为执行该交易已完成的计算工作,仍会消耗提供的全部燃料。

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

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

降低燃料成本的举措

以太坊可扩展性升级最终应能解决一些燃料费问题,从而使该平台能够每秒处理数千笔交易并实现全球扩展。

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

关于二层网络扩容的更多信息

监控燃料费

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

扩展阅读{#further-reading}

本文对你有帮助吗?