Gas:世界计算机的计价系统
上一篇留了一个问题:执行每条操作码都有定价——凭什么 ADD 一个价、SSTORE 另一个价?谁定的?本文讲清 Gas 的三重意义(计量资源、防滥用与停机问题、定价市场)、费用公式 gasUsed × gasPrice 与 EIP-1559 的 base fee 燃烧机制,用一个手算例子把 gwei 换算走通,并解释 blob(EIP-4844)如何把 L2 费用打下来两三个数量级。
引言:执行有了,账单怎么开?
上一篇(EVM 深度解析)结尾按下了不表的那个问题,这一篇正面回答:执行每条操作码都有定价——凭什么 ADD 一个价、SSTORE 另一个价?谁定的价?怎么防止一笔交易把全网节点拖死?
一句话:去中心化的世界里没有免费的 CPU 时间。EVM 是上千个节点各自重放执行的引擎,任何一次计算都要在这上千台机器上同时发生——所以计算必须计价,而且必须由发起人付费。这个计价系统就是 Gas 。
把 Gas 讲清楚需要回答三个问题:它为什么存在(三重意义)、一笔交易的费用到底怎么算(公式 + EIP-1559)、以及这套计价体系最近一次大变化——blob 如何把 Layer2 的费用打下来两三个数量级。
Gas 的三重意义
一、计量单位:给「计算」定刻度
Gas 的第一重身份是一个计量单位。每条操作码都有协议规定的固定 Gas 消耗:算术指令一个价、读存储另一个价、写存储贵得多。一笔交易执行完,所有操作码的 Gas 消耗加总,就是这笔交易的 gasUsed——它度量的不是钱,而是计算量。
这解释了为什么转账和调用合约的费用不一样:普通 ETH 转账不碰 EVM 存储,固定消耗 21000 gas;一笔复杂的合约调用要执行成百上千条操作码、读写多个存储槽位,gasUsed 自然高出几个量级。你在为计算付费,而不是为转账金额付费——转 0.01 ETH 和转 100 ETH,Gas 一分不差。
二、防滥用:用计价解决停机问题
第二重身份是安全机制。EVM 是图灵完备的——理论上可以写无限循环。计算机科学里这叫停机问题(Halting Problem):不存在通用算法能在执行前判断一段程序是否终将停止。中心化系统不怕这个:操作系统超时杀进程就行。但以太坊的每笔交易要被上千个节点同时重放执行——如果一笔 while (true) 的交易不花钱,所有节点都会被永久拖进死循环,整个网络瘫痪。
Gas 的解法优雅而暴力:交易发起时先预缴一笔 Gas 上限(gasLimit),执行过程中燃料单调递减,归零则强制中断——不管程序跑到哪一行。
你发起交易,预缴 Gas 上限 = 50000
│
▼
执行操作码流,Gas 余额不断扣减:
CALLDATALOAD − 3 余额 49997
SLOAD − 2100 余额 47897
SSTORE − 更多 余额 ...
│
├── 余额 > 0 且执行完毕 → 成功,多预缴的部分退还
│
└── 余额归零、程序没跑完 → OUT OF GAS
状态回滚,已扣的 Gas 不退(节点白干了也要收钱)
三、定价市场:区块空间是稀缺资源
第三重身份是市场机制。每个区块能装下的交易总量有上限(以 Gas 计),区块空间是稀缺资源。谁的交易先被打包?答案是谁付得高谁先走——Gas 单价(gasPrice)就是你对验证者的报价。
于是 Gas 把三件事统一成一个机制:度量计算(防资源滥用)+ 限制执行(防死循环)+ 竞价排序(分配稀缺的区块空间)。而 gasPrice 的具体定价方式,在 2021 年发生过一次重要重构——EIP-1559。
费用怎么算:公式与 EIP-1559
基础公式
交易费用 = gasUsed × gasPrice
gasUsed :这笔交易实际消耗的 Gas 量(计算量)
gasPrice :你愿意为每单位 Gas 支付的单价,单位是 gwei
EIP-1559(EIP1559 ,2021 年伦敦升级)把 gasPrice 拆成了两部分——base fee(基础费)+ priority fee(优先费):
一笔交易的费用构成拆解(EIP-1559 之后)
你在钱包里设置的 Max Fee(单价上限)
┌───────────────────────────────────────────┐
│ Base Fee(基础费) │
│ · 协议根据网络拥堵自动调节,你不能设 │
│ · 目标区块利用率 50%:堵了升、闲了降 │
│ · 这部分被「燃烧」永久销毁,验证者拿不到 │
│ ├─────────────────────────────────────────┤
│ Priority Fee(优先费,即小费) │
│ · 你自己设,直接给打包交易的验证者 │
│ · 想插队就给高一点,不急可给最低 │
└───────────────────────────────────────────┘
实付费用(ETH)= gasUsed × (baseFee + priorityFee)
两个关键设计:
**Base fee 由算法决定,不由人决定。**每个区块按固定公式调节(单区块变化幅度有约 12.5% 的上限):区块持续超过 50% 目标利用率,base fee 逐块上升把需求挤出;低于目标,逐块下降吸引需求回来。这是一个负反馈控制器——拥堵自动定价,不需要任何人拍板。
**Base fee 被燃烧销毁。**这部分费用不归验证者,而是直接从流通中移除。它同时干掉了旧机制的痼疾:此前用户付的 gasPrice 全归矿工,矿工有动机在链下私下返佣抢客(MEV 相关论述见研究报告),燃烧机制让「定价权」收归协议——验证者只能挣小费和区块奖励,不能靠哄抬基础费获利。
gwei 换算:手算一遍
gasPrice 的单位是 gwei ——1 gwei = 10⁻⁹ ETH。为什么需要这么小的单位?因为一笔交易的费用是 ETH 的小数点后好几位的量级,直接用 ETH 报价太别扭。
手算一笔(以下均为示例值,用于演示换算,非实时行情):
场景:一笔普通 ETH 转账
gasUsed = 21000 (协议对普通转账的固定定价)
gasPrice = 8 gwei (示例值:落在主网「个位数到几十 gwei」
的常见波动区间内)
第一步:算出总 gwei
21000 × 8 = 168000 gwei
第二步:换算成 ETH
1 gwei = 10⁻⁹ ETH
168000 × 10⁻⁹ = 0.000168 ETH
第三步:换算法币量级
假设 ETH 价格约 $3000(示例值)
0.000168 × 3000 ≈ $0.50 —— 约半美元
同样这笔转账放到 Layer2 (Arbitrum/Base)上,Gas 单价往往不足 0.01 gwei——即便 gasUsed 相近,费用也要低三个数量级左右。为什么 L2 能便宜这么多?答案的最后一环是 blob。
blob:L2 费用是怎么被打下来的
先看 Rollup 的成本结构:交易在 L2 链下执行(这部分很便宜),但每一批交易的数据必须发布回以太坊主网,由主网的数据可用性保证安全。Dencun 升级之前,这些数据塞在普通交易的 calldata 里发布——按主网 Gas 全价计价,L2 费用的大头全在这。
Blob (EIP-4844)改变了计价方式:主网开辟一块独立的、按 blob gas 单独计价的数据空间,Rollup 把批次数据放进去。两个关键差异:
- 单独计价:blob 的价格与主网交易拥堵脱钩——主网再堵,blob 市场未必堵,L2 的数据成本不再被主网活动绑架
- 自动过期:blob 数据只保留约 18 天后被删除——验证可用性不需要永久存储,安全模型不需要,成本自然更低
结果就是本站研究报告的口径:以太坊主网 Gas 通常在个位数到几十 gwei 波动(Dencun 升级后长期低于 10 gwei),L2(Arbitrum/Base)往往不足 0.01 gwei,费用差距可达 1000 倍;而 blob 本身使 L2 的数据发布费用降低 10-100 倍。
总结:计价有了,规则由谁写?
这一篇把世界计算机的计费系统拆开了:
- Gas 的三重意义:计量资源(gasUsed 度量计算量)、防滥用(预缴燃料 + 归零即停,用计价解决停机问题)、定价市场(竞价分配稀缺的区块空间)
- 费用公式:gasUsed × (baseFee + priorityFee);base fee 由协议按 50% 目标利用率自动调节并燃烧销毁,priority fee 是给验证者的小费
- gwei 换算:21000 gas × 8 gwei = 0.000168 ETH(示例值),一笔主网转账约半美元的量级
- blob(EIP-4844)为 Rollup 数据开辟单独计价、自动过期的存储空间,把 L2 费用打下来 10-100 倍,主网与 L2 差距可达 1000 倍
但留一个更深的问题:到目前为止,我们讲的都是「交易的执行规则」——转账怎么计价、区块怎么装满。可这些规则本身是程序:余额检查、nonce 递增、费用扣除……它们是谁写的?普通用户能不能也往链上放一段自己的程序,让全网节点替你执行?
能。这就是智能合约——下一篇文章的主角,也是「世界计算机」从记账机器变成可编程平台的最后一块拼图。
相关文章:
- EVM 深度解析:驱动世界计算机的虚拟机 — 前篇:Gas 计价的那台引擎是什么
- 账户模型 vs UTXO:以太坊换了一种记账方式 — Gas 改写的余额与 nonce 就长在那张全局状态表上
- UTXO 模型:比特币的会计学 — 镜像对照:比特币为什么没有 Gas
- 工作量证明 — 出块的 Bitcoin 侧:验证者打包交易的经济激励从哪来
- 比特币白皮书精读 — 一切的原始蓝图
- 比特币网络实际运行 — 对照:没有图灵完备性的网络如何定价交易