引言:2024年5月13日,Vitalik发布了备受瞩目的EIP-7706提案,这项提案为现有的Gas模型带来了重要补充。该方案创新性地将calldata的gas计算单独分离出来,并设计了类似Blob gas的base fee定价机制,有望进一步降低Layer2网络的运行成本。实际上,这一提案的渊源可以追溯到2022年2月提出的EIP-4844,时隔两年多的发展演变,以太坊的Gas机制已经形成了更加完善的体系。本文将全面梳理最新的以太坊Gas机制,帮助读者快速掌握其核心要点。
以太坊Gas模型的演进历程:从EIP-1559到EIP-4844
以太坊最初采用简单的拍卖机制来确定交易费用,用户需要自行设定gas price来竞标交易打包顺序。这种机制下,矿工会根据经济利益最大化原则优先打包出价高的交易。然而,这种设计逐渐暴露出诸多问题:网络活跃时交易费用波动剧烈,用户经常需要等待多个区块才能完成交易确认,定价效率低下导致用户经常支付过高手续费,以及在无区块奖励情况下可能引发的网络安全风险。
2019年4月13日,Vitalik等核心开发者提出了革命性的EIP-1559提案,并在2021年8月的London升级中正式实施。这项提案彻底改变了gas定价机制,引入了base fee和priority fee的双重定价模型。其中base fee由系统根据父区块gas使用情况自动调整,当上一个区块gas使用量超过预定目标时会自动上调,反之则下调。这种机制不仅更准确地反映了网络供需关系,还避免了用户因误操作支付天价手续费的情况。特别值得一提的是,base fee会被直接销毁而非奖励给矿工,这为ETH创造了通缩的经济模型。

随着Rollup技术在2021年的蓬勃发展,新的挑战随之而来。无论是OP Rollup还是ZK Rollup,都需要将压缩后的证明数据通过calldata上传至主链以确保数据可用性,这给Layer2解决方案带来了高昂的gas成本。与此同时,以太坊主链也面临着区块空间竞争的困境。当时每个区块的gas limit为3000万,理论上最多只能处理约1.79MB的数据,而Layer2排序器产生的大量数据严重挤占了主链的交易处理能力。
为解决这一困境,核心开发者在2022年2月提出了EIP-4844提案,并在2024年二季度的Dencun升级中实现。该提案创新性地引入了Blob Transaction这种新型交易类型,其中包含的Blob data不能被EVM直接访问,只能获取其哈希值。这种设计配合较短的GC周期,有效减轻了区块膨胀问题。更重要的是,Blob data采用了基于自然指数函数的独特gas机制,相比传统模型在应对交易规模波动时表现更加稳定。

EIP-7706:执行环境Gas模型的精细化改进
在现有Gas模型的基础上,Vitalik于2024年5月13日提出的EIP-7706提案带来了更精细化的改进。该提案效仿Blob data的处理方式,将calldata的gas计算单独剥离出来,并优化了相关代码实现。新的calldata base fee计算同样采用指数函数,根据父区块实际gas消耗与目标值的偏差动态调整。
提案中引入的LIMIT_TARGET_RATIOS=[2,2,4]参数向量颇具深意,这个三维数组分别对应执行操作、Blob data和calldata三类gas的目标比率。通过这种设计,当前calldata gas target被设定为约187500 bytes,相当于平均用量的两倍。这种机制既大幅降低了calldata达到gas limit的可能性,又有效防止了calldata的滥用,为Layer2的发展扫清了障碍。

声明:
- 本文转载自[深潮 TechFlow],著作权归属原作者[Web3Mario],如对转载有异议,请联系Gate Learn团队,团队会根据相关流程尽速处理。
- 免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。
- 文章其他语言版本由Gate Learn团队翻译, 在未提及Gate.io)的情况下不得复制、传播或抄袭经翻译文章。
声明:文章不代表CHAINTT观点及立场,不构成本平台任何投资建议。投资决策需建立在独立思考之上,本文内容仅供参考,风险 自担!转载请注明出处:https://www.chaintt.cn/13918.html