那么,SELFDESTRUCT是什么呢?自毁操作SELFDESTRUCT(在EIP6之前称为suicide)的功能是允许人们通过删除旧的或者未使用的合约来清理区块链。这个操作可以提供gas退款,鼓励用户删除存储状态以释放资源,但是删除智能合约并不会清除合约之前的交易记录,因为区块链本身是不可改变的。
名为@n2ckchong的交易员NickChong在Twitter上进一步解释了SELFDESTRUCT如何影响Gas费用,并解释了为何在V神更新提案后,Gas费大幅下滑。
在以太坊上的每笔交易都需要支付Gas费用。通常情况下,交易越复杂,所需的Gas费用就越多。而SELFDESTRUCT是一种EVM级别的操作码,它可以将合约的余额发送到一个「地址」。它的特殊之处在于,执行这个操作码会直接销毁合约,但实际上EVM会向用户退还一些手续费,以消除状态膨胀,这样有助于节点管理状态的大小。
这听起来可能不太有趣,但有些聪明的开发者意识到,在Gas价格较低时,可以在合约中存储Gas费用,这样就能保持低廉的状态空间。具体来说,在Gas价格低廉时,Gas代币可以鼓励用户在合约中创造或铸造代币,比如GST和1inch团队推出的CHI。这样,用户可以以较低的费用存储数据或创建合约。待Gas价格暴涨时,用户可以使用或销毁这些代币,通过删除数据或合约(也就是SELFDESTRUCT)的方式,获得网络奖励或者称为gas退款,从而以较低的价格消耗Gas。
这也解释了为什么在以太坊浏览器Etherscan上查看交易细节之前,很多套利交易都会显示「自毁合约0x...」。
这种方式非常聪明。当一个正在运行的套利机器人每天花费数千美元的以太坊交易费用时,通过使用Gas代币来节约手续费,可以为他们节省很多钱。
一些人认为,Gas代币的存在导致了相当大的状态膨胀,因为当Gas币还便宜的时候,以太坊节点中注入了很多「无意义的」合约。通过增加状态膨胀,叔块的比率可能会增加。
所以,这也是为什么Vitalik建议在伦敦升级中取消SELFDESTRUCT的Gas退款规则。
无论如何,还是要感谢V神的这个提议,因为在这个提议发布之后,Gas费用大幅下滑,恢复到了较为正常的水平。而Gas费代币CHI和GST的价格也出现了下降:CHI的价格下降了40%,GST的价格下降了30%。一旦提案正式执行,这些代币可能很快就会变得无用,因此可能没有任何诱因让用户铸造CHI或GST。