复制成功

分享至

主页 > 数字货币 >

详述 EIP-7706 并梳理最新的 Ethereum 的 Gas 机制

2024.05.15

作者:@Web3Mario

引言:Vitalik在2024年5月13日发布了EIP-7706提案,提出了对现有Gas模型的补充方案,将calldata的gas计算单独剥离出来,并定制了类似Blob gas的base fee定价机制,进一步降低L2的运行成本。与之相关的提案还需要追溯到2022年2月提出的EIP-4844,相隔时间甚久,因此查阅相关资料,希望对最新的Ethereum Gas机制做一个综述,方便大家快速了解。

当前已支持的Ethereum Gas模型——EIP-1559和EIP-4844

在最初的设计中,Ethereum采用了一个简单的拍卖机制对交易费用进行定价,这需要用户主动为自己的交易出价,也就是设置gas price,通常情况下,由于用户付出的交易费将归属于矿工,所以矿工将根据经济最优的原则,按照出价高低来决定交易打包顺序,注意这是在忽略MEV的情况下。在当时核心开发者看来这个机制面临着以下四个方面的问题: 交易费用水平的波动性与交易的共识成本之间的不匹配:对于处在活跃状态的区块链中,交易的打包需求充足,这意味着区块可以被轻易填满,但这往往也意味着整体费用的波动性极大。例如当平均Gas Price为10 Gwei时,网络因在一个区块中再接受一笔交易而产生的边际成本是平均Gas Price为1 Gwei时的 10 倍,这是不可接受的。 对用户来说不必要的延迟:由于每个区块有gaslimit的硬性限制,加上历史交易量的自然波动,交易通常会等待几个区块才能被打包,但这对整体网络来说是低效的;即不存在允许一个区块更大而下一个区块更小的“松弛”机制来满足逐个区块的需求差异。 定价效率低下:由于采用简单的拍卖机制导致了公允价格发现的效率较低,这意味着对于用户来说,给出一个合理的定价将是困难的,这也就意味着有非常多情况下,用户付高了手续费。 无区块奖励的区块链将不稳定:当取消挖矿带来的区块奖励并采取单纯的手续费模型时,可能会导致很多不稳定,例如激励挖掘窃取交易费用的“姐妹块”,开启更强大的自私挖掘攻击向量等。

直到EIP-1559的提出与执行,Gas模型有个第一次迭代,EIP-1559时Vitalik等核心开发者在2019年4月13日提出的,并在2021年8月5日的London升级中被采用,该机制摒弃了拍卖机制,转而采用了一种Base fee和Priority fee的双定价模型,其中Base fee将根据父区块中已产生的gas消耗情况与一个浮动且递归的gas target之间的关系通过一个既定的数学模型定量计算,直观的效果为若上一个区块中gas使用情况超过了预定的gas target时,则上调base fee,若不及gas target,则下调base fee,这样做既可以比较好的反应供需关系,又可以使得对于合理gas的预测变得更加精准,不至于出现由于误操作导致的天价Gas Price,因为base fee的计算是直接由系统决定的而非用户自由指定。具体的代码如下:

详述 EIP-7706 并梳理最新的 Ethereum 的 Gas 机制

其中可知当parent_gas_used 大于parent_gas_target时,那么当前区块的base fee将相比于上一个区块的base fee加上一个偏移值,至于偏移值则是取parent_base_fee乘以上一个区块gas总用度相对gas target的偏移量并对gas target与一个常量取余与1的最大值。反之逻辑类似。

另外Base fee将不再作为奖励分配给矿工,而是直接销毁,从而时ETH的经济模型处于通缩的状态,有利于价值的稳定。而另一方面Priority fee则相当于用户给矿工的打赏,可以自由定价,这一定程度上可以让矿工的排序算法得到一定程度的复用。

详述 EIP-7706 并梳理最新的 Ethereum 的 Gas 机制

随着时间推进到2021年,那时Rollup的发展逐渐进入佳境,我们知道无论OP Rollup还是ZK Rollup都意味着需要将L2的数据做压缩处理后的某些证明数据通过calldata上传至链上实现数据可用性(Data Available)或者直接交由链上做验证。这就让这些Rollup解决方案在维护L2的最终性时面临着很大的Gas成本,而这些成本最终都将转嫁到用户的身上,因此那时大部分的L2协议使用成本并没有想象那么低。

与此同时Ethereum也面临着区块空间竞争的窘境,我们知道每个区块存在一个Gas Limit,这意味着当前区块中的所有交易的Gas消耗加总不可以超过该值,按当前的Gas Limit为30000000来计算,理论上存在30,000,000 / 16 = 1,875,000字节的限制,其中16指的是EVM处理每个 calldata 字节需要消耗16单位的Gas,也就意味着单个区块最多可以承载的数据规模约为1.79 MB。而L2排序器所产生的Rollup相关数据通常数据规模较大,这就使其与其他主链用户的交易确认产生竞争,导致单个区块可以打包的交易量变小,进而影响主链的TPS。

免责声明:数字资产交易涉及重大风险,本资料不应作为投资决策依据,亦不应被解释为从事投资交易的建议。请确保充分了解所涉及的风险并谨慎投资。OKEx学院仅提供信息参考,不构成任何投资建议,用户一切投资行为与本站无关。

加⼊OKEx全球社群

和全球数字资产投资者交流讨论

扫码加入OKEx社群

相关推荐

industry-frontier