# 以太坊的Gas机制 **Published by:** [maizi](https://paragraph.com/@fenmi/) **Published on:** 2022-05-16 **URL:** https://paragraph.com/@fenmi/gas ## Content 决定以太坊效率的关键因素之一是其所采用的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%的交易需求。 ## Publication Information - [maizi](https://paragraph.com/@fenmi/): Publication homepage - [All Posts](https://paragraph.com/@fenmi/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@fenmi): Subscribe to updates