EIP-1559 改变了以太坊的交易费用结构,引入 Base Fee 与 Priority Fee 动态机制。本篇深入剖析 Base Fee 的计算逻辑、区块拥堵下的自适应调整、以及用户该如何设置合理费用,实现既不高烧钱、也不中途卡壳的交易策略。
📚 作者:Henry 🧱 系列:《深入理解区块链 Gas 机制》 · 第 4 篇 👨💻 受众:Web3 开发者 / Solidity 工程师 / 区块链学习者
在 EIP-1559 推出前,以太坊使用的是一种简单但激烈的竞价模型:
gasPrice
来竞争打包优先权;为了解决这些问题,EIP-1559 在伦敦升级(2021 年 8 月)后正式上线,彻底改造了手续费机制。
1~3 Gwei
;min(maxFee, baseFee + priorityFee)
;以太坊将目标区块使用率设为 50%(即 15M gas,最大 30M),根据偏离程度动态调整。
next_base_fee = current_base_fee × (1 ± (gas_used - target_gas) / target_gas × δ)
其中 δ 表示最大 12.5% 的调整幅度
如果上一个区块使用率高于 50% → baseFee ↑;
使用率低于 50% → baseFee ↓;
平均目标是让网络在“半满”状态下运行,避免极端拥堵。
以下是一次交易的费用拆解图:
┌────────────┐
│ Max Fee │
└─────┬──────┘
│
┌────────▼────────┐
│ Base Fee (burn) │───→ 被销毁,不进入矿工口袋
└───────┬─────────┘
│
┌─────▼──────┐
│ Tip to Miner│───→ Priority Fee,奖励打包者
└────────────┘
⛽
实际支付 = baseFee + priorityFee
,但不超过maxFee
即使使用了 EIP-1559,有些交易仍会失败或 pending,常见原因有:
以下是几种推荐方式:
eth_feeHistory
获取链上 gas 趋势;eth_maxPriorityFeePerGas
动态设置 Tip{
"jsonrpc": "2.0",
"method": "eth_maxPriorityFeePerGas",
"id": 1
}
返回当前小费建议值(通常 1~2 Gwei),适用于 DApp 前端设置默认值。
baseFeePerGas
与 maxPriorityFeePerGas
历史平均值;《Priority Gas Auction 还在吗?EIP-1559 后的打包顺序与 MEV 新格局》
将深入解析交易打包逻辑的变化,以及 EIP-1559 对矿工收入模型的影响,讨论 EIP-1559 是如何改变链上竞价、排序与 MEV 的博弈结构。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!