﻿---
title: "EIP-1559 基础费：公式、费用上限与交易成本"
description: "了解以太坊如何根据父区块 Gas 使用量计算每个区块的 EIP-1559 基础费、费用上限如何决定实际价格，以及如何核验交易成本。"
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

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

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

<a id="answer"></a>

## 直接答案

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

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

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

<a id="mechanism"></a>

## 工作机制

### 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`，从收据读取 `gasUsed` 和 `effectiveGasPrice`。检查 `gasUsed * effectiveGasPrice` 是否与执行费造成的余额变化一致。交易 Gas 上限中未消耗的 Gas 不会收费，`max_fee_per_gas` 下方未使用的空间也不是一笔单独付款。

<a id="example"></a>

## 计算示例

假设父区块的目标为 `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 gwei` 和 `max_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` 以上，该交易将一直不具备纳入资格，直至基础费下降，或发送者用更高上限替换交易。

<a id="risks"></a>

## 风险

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

<a id="misconceptions"></a>

## 常见误区

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

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

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

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

### 误区 3：总会全额支付 `max_fee_per_gas`

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

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

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

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

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

<a id="related"></a>

## 相关主题

- [区块 Gas 上限](/zh-cn/crypto/block-gas-limit/)
- [跨链桥](/zh-cn/crypto/cross-chain-bridge/)
- [EIP-712 类型化签名](/zh-cn/crypto/eip712-typed-signature/)
- [Gas 费](/zh-cn/crypto/gas-fee/)
- [优先费](/zh-cn/crypto/priority-fee/)

<a id="sources"></a>

## 来源

- [EIP-1559: Fee market change for ETH 1.0 chain](https://eips.ethereum.org/EIPS/eip-1559) - Ethereum Improvement Proposals（访问日期：2026-08-20）
- [Ethereum gas and fees: technical overview](https://ethereum.org/developers/docs/gas/) - ethereum.org（访问日期：2026-08-20）

Source: https://wiki.fcontext.com/zh-cn/crypto/eip1559-base-fee/index.mdx
