引言:2024年5月13日,以太坊创始人Vitalik提出了EIP-7706提案,这项提案旨在完善现有的Gas模型,通过将calldata的gas计算单独分离出来,并为其设计了类似Blob gas的base fee定价机制,从而进一步降低Layer2网络的运行成本。这项提案的提出不禁让人联想到2022年2月提出的EIP-4844,两者之间相隔两年多的时间。本文将梳理以太坊最新的Gas机制发展历程,帮助读者全面了解这一重要技术演进。
以太坊Gas模型的演进:从EIP-1559到EIP-4844
以太坊最初的交易费用定价采用简单的拍卖机制,用户需要自行设置gas price来决定交易优先级。在这个机制下,矿工会根据经济最优原则,优先打包手续费更高的交易。然而,这种设计逐渐暴露出诸多问题。网络活跃时,交易费用波动剧烈,用户往往需要等待多个区块才能完成交易确认,定价效率低下导致用户经常支付过高的手续费。更令人担忧的是,如果完全取消区块奖励仅依靠交易手续费,可能会引发诸如”姐妹块”攻击等安全隐患。
为了解决这些问题,Vitalik等核心开发者在2019年4月提出了EIP-1559提案,并在2021年8月的London升级中正式实施。这项提案彻底改变了gas定价机制,引入了base fee和priority fee的双重定价模型。base fee由系统根据父区块gas使用情况自动调整,当上一个区块gas使用量超过预定目标时上调,反之则下调。这种设计不仅能更准确地反映网络供需关系,还避免了用户因误操作支付天价手续费的情况。值得注意的是,base fee部分会被直接销毁,这为ETH带来了通缩效应,而priority fee则作为矿工奖励保留了下来。
随着Rollup技术在2021年的快速发展,新的挑战出现了。无论是OP Rollup还是ZK Rollup,都需要将压缩后的证明数据通过calldata上传至主链以保证数据可用性,这给Layer2解决方案带来了高昂的gas成本。同时,以太坊主链也面临着区块空间竞争的困境。当时每个区块的gas limit为3000万,按照每个calldata字节消耗16单位gas计算,单个区块最多只能承载约1.79MB数据,严重制约了网络吞吐量。
针对这一瓶颈,核心开发者在2022年2月提出了EIP-4844提案,并在2024年初的Dencun升级中实现。该提案创造性地引入了Blob Transaction这一新型交易类型,其中包含的Blob data不能被EVM直接访问,只能获取其哈希值。Blob data采用与EIP-1559类似但更稳定的自然指数函数定价模型,其特点是当网络交易量激增时能更快地调整gas费用。初始设置中,每个区块平均处理3个blob(0.375MB),最多处理6个blob(0.75MB),这些限制将在未来网络证明可靠性后逐步提高。
执行环境Gas模型的精细化:EIP-7706提案
在现有Gas模型基础上,Vitalik于2024年5月13日提出的EIP-7706提案对calldata的gas计算进行了专门优化。该提案借鉴了EIP-4844的成功经验,为calldata设计了独立的base fee计算机制,同样采用指数函数根据父区块实际gas消耗与目标值的偏差来动态调整费用。
提案中引入了一个重要参数LIMIT_TARGET_RATIOS=[2,2,4],分别对应执行操作、Blob data和calldata三类gas的目标比率。通过这个参数向量,系统可以更精确地计算各类gas的目标值。在当前gas limit为3000万的情况下,calldata的gas目标值约为187.5万,相当于处理18.75万字节的calldata数据,是当前平均用量的两倍左右。
这一设计的优势在于显著降低了calldata达到gas上限的可能性,通过经济手段将calldata用量维持在合理水平,既防止了资源滥用,又为Layer2发展扫清了障碍。结合Blob data机制,EIP-7706将帮助Rollup排序器进一步降低成本,推动以太坊生态系统向更高效、更经济的方向发展。
声明:文章不代表CHAINTT观点及立场,不构成本平台任何投资建议。投资决策需建立在独立思考之上,本文内容仅供参考,风险 自担!转载请注明出处:https://www.chaintt.cn/14175.html