# 以太坊的Gas机制

By [maizi](https://paragraph.com/@fenmi) · 2022-05-16

---

![](https://storage.googleapis.com/papyrus_images/9f0e5987f6b9b7e2a13946e692386df367e428ae7e9ca947b4faf7916a367355.jpg)

决定以太坊效率的关键因素之一是其所采用的Gas机制。在以太坊系统中，Gas是一种计量形式，反映了不同操作的复杂度。就像汽车行驶需要消耗汽油一样，在以太坊上交易会产生Gas消耗。一笔最简单的ETH代币转账，Gas消耗为2.1万。其他类型的操作，如普通的ERC—20代币转账，或更复杂的合约交互，可产生几万甚至数十万的Gas消耗。

以太坊的单个区块有Gas上限，限定了一个区块内全部交易指令可消耗的Gas总量，这就好比冰箱塞满后就不能再装东西。在去年的EIP-1559实行前夕，单个区块的Gas上限约为1500万，粗略算来最多可容纳714笔ETH代币转账，若将平均出块周期13秒置入TPS计算式，则EIP—1559前以太坊的理论TPS上限是55。

但现实中很多交易是Gas消耗较高的合约交互，会大幅占用区块的Gas容量，实际的以太坊TPS均值被压低到20，拥堵不堪，这使得大量潜在的交易需求被排挤在链外。由于单笔交易的手续费=Gas Used×Gas Price，而Gas Used由系统决定，可视为常量，用户发起交易后要付出比别人更高的Gas Price，才能率先被系统响应。最终，因系统特性产生的的供需缺口造就了高昂手续费，让无数人叫苦不迭。

归根结底，ETH本质上是关于交易权限的拍卖平台，Gas Price就是竞标者的出价，交易权限的归属由供需双方通过竞价机制撮合达成。这种设计契合区块链的自由市场原则，却埋下了内卷的种子。

纵观以太坊的历史，每逢有“加密猫”“5.19”一类的热点事件激发交易需求，ETH链就会出现激烈的Gas War现象，谁付出的Gas Price越高谁的交易先上链，剧烈的价格战让Gas Price水涨船高，不能支付高昂手续费的用户被拒之门外，这使以太坊成为名副其实的“贵族链”，引发了无数争端，也让EIP—1559一度成为许多人眼中的“救星”。

但从事实来看，在去年备受瞩目、对区块的Gas机制做出大幅调整的EIP-1559，其核心作用也只是让Gas Price的浮动范围更可控，并降低ETH的通胀率及抛压，而非直接压低Gas Price或取缔Gas竞价机制。

虽然该提案将ETH区块的Gas上限提升至3000万，但只要新区块的实际Gas消耗超过1500万，下一个区块内的Gas Price就会在系统调节下逐级涨价，这个过程可以持续多个区块的时间，直到Gas Price极高，拦住绝大多数人，让新区块可收纳的交易数骤减，Gas消耗量回落至1500万为止。

可以看到，Gas Price连续上涨了4个区块的时间

观察统计数据，可以发现在EIP-1559施行的前后6个月内，以太坊的每日Gas 消耗仅有不到10%的提升。考虑到这6个月内出块周期稳定在13~13.5秒，则ETH每日出块6500~6650个，每个区块的Gas容量始终稳定在1500万上下，并无明显变化。

图表中轴线为伦敦硬分叉第二天

由于EIP-1559没有真正改变区块的Gas含量，以太坊的TPS没有被改善，手续费居高不下，大量的潜在用户仍滞留在以太坊系统外。

根据相关数据，当前的ETH拥有近2亿个独立地址，每日处理的交易笔数仅有100多万笔；相比之下，Gas费较低的BSC（BNB Chain）每日处理的交易笔数高居500万以上，其独立地址数却不到1.5亿个。**粗略估算下，ETH网络最多满足了约15%的交易需求。**

---

*Originally published on [maizi](https://paragraph.com/@fenmi/gas)*
