# EIP-6780

> EIP-6780 是一项以太坊改进提案，它将 SELFDESTRUCT 操作码的功能限制在同一智能合约内的交易中，以增强安全性……

- Canonical URL: https://iq.wiki/zh/wiki/eip-6780
- Categories: Projects & Protocols
- Tags: Layer 1, DeFi
- Created: 2024-04-06T02:44:40.906Z
- Last updated: 2024-04-14T22:08:35.387Z
- Source: IQ.wiki — the world's largest blockchain and crypto encyclopedia (https://iq.wiki)

---

**EIP-6780** 是一项[以太坊改进提案](https://iq.wiki/wiki/ethereum-improvement-proposal-eip)，它限制了 SELFDESTRUT 操作码的功能。该操作码之前允许合约自毁并擦除其代码和存储。现在，它仅适用于在同一交易中创建的合约。这确保了更清晰、更易于管理的状态，增强了长期稳定性和安全性，同时仍然允许合法使用该功能。 [\[2\]](#cite-id-w0flrtggxp8)[\[3\]](#cite-id-5wah0oiplng)



## 概述

EIP-6780 - “仅在同一交易中 SELFDESTRUCT” 修改了 SELFDESTRUCT 操作码的功能，为未来 [以太坊](https://iq.wiki/wiki/ethereum) 应用程序中使用的 Verkle Tree 架构做准备。SELFDESTRUCT 操作码是一个强大的工具，允许[智能合约](https://iq.wiki/wiki/smart-contract)删除自身，并将剩余资金发送到指定的地址。这类似于简化以太坊的内部管理实践，以实现更顺畅的网络运行。[\[1\]](#cite-id-rqxbnl0y4yf)

目前，以太坊应用程序使用 [Merkle Tree](https://iq.wiki/wiki/merkle-tree) 架构，并且 SELFDESTRUCT 操作码可用于对帐户状态进行重大更改，例如删除代码和存储。但是，当未来的以太坊应用程序中使用 Verkle Tree 架构时，将不容易修改或删除帐户，因为 Verkle Tree 架构将每个帐户存储在与根帐户不连接的不同帐户密钥中。
因此，EIP-6780 提出了对 SELFDESTRUCT 操作码功能的修改。根据 EIP-6780，修改后的 SELFDESTRUCT 操作码在使用时将不再具有更改或删除帐户的能力，并且仅用于将 ETH 转移给调用者，除非在 [智能合约](https://iq.wiki/wiki/smart-contract) 创建的同一交易中调用 SELFDESTRUCT。

[主网](https://iq.wiki/wiki/mainnet)上存在一些合约，目前使用 SELFDESTRUCT 来限制谁可以与合约发起交易。通过在同一交易中销毁合约，这样就没人有机会调用它。[\[5\]](#cite-id-aofvbmdypi)




虽然 EIP-6780 没有直接简化规范，但它通过以下方式显着改进了实现：

* 限制每个区块的存储编辑：这有助于 Verkle 树的实现并简化客户端开发。
* 保证代码持久性：这加强了帐户抽象钱包中的交易验证，防止 DoS 漏洞。
* 这些新的不变性为进一步简化铺平了道路，可能导致将来完全删除 SELFDESTRUCT。[\[3\]](#cite-id-5wah0oiplng)

## 作者

* Guillaume Ballet
* [Vitalik Buterin](https://iq.wiki/wiki/vitalik-buterin)
* Dankrad Feist
