跳到正文

EIP-1559 基础费:公式、费用上限与交易成本

了解以太坊如何根据父区块 Gas 使用量计算每个区块的 EIP-1559 基础费、费用上限如何决定实际价格,以及如何核验交易成本。

更新于

仅供教育参考,不构成投资建议;投资可能产生损失。

直接答案

EIP-1559 基础费是以太坊区块中由协议设定的每单位执行 Gas 最低价格。父区块的 Gas 使用量高于目标时,基础费上升;低于目标时下降;等于目标时保持不变。已消耗 Gas 对应的基础费会被销毁,而不是支付给验证者。

每个区块只有一个 base_fee_per_gas,且在该区块内的交易执行前就已确定。按照以太坊弹性乘数 2,Gas 目标是区块 Gas 上限的一半,因此区块可以在需求短时激增时扩张至 Gas 上限,而调整规则会推动平均使用量回归目标。

一笔类型 2 交易会设置 max_fee_per_gasmax_priority_fee_per_gas。前者限制每单位 Gas 的总价格,后者限制给验证者的小费。较高的上限不会自动被全额收取:发送者仅为实际消耗的 Gas 支付区块基础费和允许的小费。

网络费用
0.000462 native
法币等值
$1.39
基础费
22 gwei

结果是教育用途的近似值。除非明确展示,否则未计入交易场所规则、税费、延迟、预言机行为及其他协议参数。

工作机制

1. 推导下一区块的基础费

B 为父区块基础费,G 为其 Gas 使用量,T = parent gas limit / 2 为其 Gas 目标。以太坊采用整数运算:

  • 达到目标:G = T,因此 B_next = B
  • 高于目标:B_next = B + max(floor(B * (G - T) / T / 8), 1 wei)
  • 低于目标:B_next = B - floor(B * (T - G) / T / 8)

满载父区块满足 G = 2T,因此该步上调最多为 12.5%;空父区块会令基础费最多下调 12.5%。最小上调量 1 wei 只在整数除法原本会把高于目标的增量舍入为零时起作用。

2. 应用交易费用上限

对于被纳入区块的类型 2 交易,实际小费和实际价格为:

  • effective_priority_fee = min(max_priority_fee_per_gas, max_fee_per_gas - base_fee_per_gas)
  • effective_gas_price = base_fee_per_gas + effective_priority_fee
  • transaction_fee = gas_used * effective_gas_price

max_fee_per_gas < base_fee_per_gas,交易就不能被纳入区块。当最高费用上限不足以容纳请求的小费时,实际小费会降低。基础费部分被销毁,优先费部分则支付给区块的费用接收者。

3. 核对交易收据

从交易所在区块读取 baseFeePerGas,从收据读取 gasUsedeffectiveGasPrice。检查 gasUsed * effectiveGasPrice 是否与执行费造成的余额变化一致。交易 Gas 上限中未消耗的 Gas 不会收费,max_fee_per_gas 下方未使用的空间也不是一笔单独付款。

计算示例

假设父区块的目标为 15,000,000 gas,使用了完整的 30,000,000 gas 上限,基础费为 30 gwei。最大调整量是 30 gwei * 12.5% = 3.75 gwei,所以下一区块的基础费为 33.75 gwei(此处仅忽略不足 1 wei 的整数舍入细节)。

再假设下一区块中的一笔简单转账使用 21,000 gas,并设置 max_fee_per_gas = 50 gweimax_priority_fee_per_gas = 2 gwei

  • 实际优先费:min(2, 50 - 33.75) = 2 gwei
  • 实际 Gas 价格:33.75 + 2 = 35.75 gwei
  • 执行费总额:21,000 * 35.75 = 750,750 gwei = 0.00075075 ETH
  • 销毁的基础费:21,000 * 33.75 = 708,750 gwei = 0.00070875 ETH
  • 验证者小费:21,000 * 2 = 42,000 gwei = 0.000042 ETH

50 gwei 是最高费用上限,而不是实际收取价格。若交易被纳入前基础费升至 50 gwei 以上,该交易将一直不具备纳入资格,直至基础费下降,或发送者用更高上限替换交易。

风险

  • 钱包估算基于近期区块;需求冲击可能在交易被纳入前推高基础费。
  • 过低的 max_fee_per_gas 会使交易待处理;不必要的高上限虽通常不会全额支付,却会提高授权天花板。
  • 执行回滚仍会消耗 Gas,因此失败的应用操作仍可能销毁基础费并支付小费。
  • 更高的小费可能提高纳入优先级,但不保证区块内位置、执行成功或最终性。
  • 钱包、RPC、浏览器或节点数据可能过时或不一致;应同时核验所在区块和交易收据。
  • 以太坊主网参数不会自动适用于所有 Rollup 或类 EIP-1559 链;弹性、分母、最低费用和额外费用组成可能不同。
  • 销毁基础费并不保证 ETH 供应量下降;净供应还取决于协议发行量和总销毁量。
  • 不要混淆交易 gas_limit、区块 Gas 上限、Gas 目标、gas_used、每单位 Gas 价格和总费用;它们是不同的量。

常见误区

误区 1:当前区块决定自己的基础费

父区块的 Gas 使用量决定下一区块的基础费。当前区块中的交易面对的是已固定在其区块头中的基础费。

误区 2:每个高于目标的区块都会把基础费提高 12.5%

变化幅度与偏离目标的距离成正比。在以太坊标准参数下,达到完整 Gas 上限时的最大单步变化才是 12.5%。

误区 3:总会全额支付 max_fee_per_gas

它只是上限。实际价格是区块基础费加上允许的优先费,并受该上限约束,再乘以实际使用的 Gas。

误区 4:验证者收到全部 Gas 费

基础费部分会被销毁。验证者的执行层费用收入是实际优先费,而不是完整的实际 Gas 价格。

误区 5:销毁基础费使每笔交易都具有通缩效果

每笔交易会销毁 ETH,但一段时期内 ETH 总供应量是否下降,取决于总销毁量相对于总发行量的大小。

相关主题

来源

导航

搜索知识库...