EIP-6780 是一项 以太坊改进提案,它限制了 SELFDESTRUT 操作码的功能,该操作码之前允许合约自毁并擦除其代码和存储。现在,它仅适用于在同一交易中创建的合约。这确保了更清晰、更易于管理的状态,增强了长期稳定性和安全性,同时仍然允许合法使用该功能。 [2][3]
EIP-6780 - “仅在同一交易中 SELFDESTRUCT” 修改了 SELFDESTRUCT 操作码的功能,为未来 以太坊 应用程序中使用的 Verkle 树架构做准备。SELFDESTRUCT 操作码是一个强大的工具,允许 智能合约 删除自身,并将剩余资金发送到指定的地址。这类似于简化以太坊的内部管理实践,以实现更顺畅的网络运行。[1]
目前,以太坊应用程序使用 Merkle 树 架构,并且 SELFDESTRUCT 操作码可用于对帐户状态进行重大更改,例如删除代码和存储。但是,当未来的以太坊应用程序中使用 Verkle 树架构时,将不容易修改或删除帐户,因为 Verkle 树架构将每个帐户存储在与根帐户不连接的不同帐户密钥中。 因此,EIP-6780 提出了对 SELFDESTRUCT 操作码功能的修改。根据 EIP-6780,修改后的 SELFDESTRUCT 操作码在使用时将不再具有更改或删除帐户的能力,并且仅用于将 ETH 转移给调用者,除非在 智能合约 创建的同一交易中调用 SELFDESTRUCT。
主网 上存在一些合约,目前使用 SELFDESTRUCT 来限制谁可以与合约发起交易。通过在同一交易中销毁合约,这样就没人有机会调用它。[5]
虽然 EIP-6780 没有直接简化规范,但它通过以下方式显着改进了实现: