以太坊Gas与合约自毁的基本概念

在以太坊网络中,Gas是衡量交易计算资源消耗的单位,用户支付Gas费用以补偿矿工(验证者)执行交易的计算成本,而合约自毁(selfdestruct)是Solidity中一个特殊操作码,允许合约主动销毁自身,并将剩余ETH转移到指定地址,这一机制常用于升级合约、清理闲置合约或紧急止损场景。

一个常见疑问是:当合约执行selfdestruct自毁后,是否还会继续消耗Gas? 本文将从selfdestruct的执行流程、Gas计费规则及实际场景出发,深入解析这一问题。

selfdestruct的执行流程与Gas消耗机制

要理解selfdestruct是否消耗Gas,需先明确其执行过程及Gas的计费逻辑,以太坊的Gas消耗分为“固定Gas”和“计算Gas”两部分:固定Gas是操作码执行的基础成本,计算Gas则与实际处理的数据量和复杂度相关。

selfdestruct的固定Gas成本

在以太坊伦敦升级(EIP-1559)之前,selfdestruct的固定Gas成本为0.5万(50000 Gas);伦敦升级后,为优化网络效率,EIP-3529将selfdestruct的固定Gas成本下调至0.5万(5000 Gas),与普通转账(CALL操作码)的固定Gas成本一致。

关键点:固定Gas是selfdestruct操作码本身的基础消耗,无论后续操作是否成功,这部分Gas都会被扣除。

selfdestruct的动态Gas消耗

除了固定成本,随机配图