EIP-6780은 이더리움 개선 제안으로, 이전에는 컨트랙트가 스스로 파괴되어 코드와 스토리지를 지울 수 있었던 SELFDESTRUCT opcode의 기능을 제한합니다. 이제 동일한 트랜잭션 내에서 생성된 컨트랙트에 대해서만 작동합니다. 이는 더 깔끔하고 관리하기 쉬운 상태를 보장하여 장기적인 안정성과 보안을 강화하는 동시에 해당 기능의 합법적인 사용을 허용합니다. [2][3]
EIP-6780 - "동일 트랜잭션 내에서만 SELFDESTRUCT"는 향후 이더리움 애플리케이션에서 사용될 Verkle Tree 아키텍처를 준비하기 위해 SELFDESTRUCT opcode의 기능을 수정합니다. SELFDESTRUCT opcode는 스마트 컨트랙트가 스스로 삭제하고 남은 자금을 지정된 주소로 보낼 수 있도록 하는 강력한 도구입니다. 이는 더 원활하게 실행되는 네트워크를 위해 이더리움의 내부 관리 방식을 간소화하는 것과 유사합니다.[1]
현재 이더리움 애플리케이션은 Merkle Tree 아키텍처를 사용하며, SELFDESTRUCT opcode를 사용하여 코드 및 스토리지 삭제와 같은 계정 상태에 상당한 변경을 가할 수 있습니다. 그러나 향후 이더리움 애플리케이션에서 Verkle Tree 아키텍처가 사용될 때 Verkle Tree 아키텍처는 각 계정을 루트 계정과 연결되지 않은 다른 계정 키에 저장하기 때문에 계정을 수정하거나 삭제하기가 쉽지 않습니다. 따라서 EIP-6780은 SELFDESTRUCT opcode의 기능 수정안을 제안합니다. EIP-6780에 따르면 수정된 SELFDESTRUCT opcode는 사용 시 계정을 변경하거나 삭제하는 기능이 더 이상 없으며, 스마트 컨트랙트에 의해 생성된 동일한 트랜잭션에서 SELFDESTRUCT가 호출되는 경우를 제외하고는 ETH를 호출자에게 전송하는 데만 사용됩니다.
현재 컨트랙트와의 트랜잭션을 시작할 수 있는 사람을 제한하기 위해 SELFDESTRUCT를 사용하는 메인넷에 컨트랙트가 존재합니다. 아무도 호출할 기회를 갖지 못하도록 동일한 트랜잭션에서 컨트랙트를 파괴함으로써 가능합니다.[5]
EIP-6780은 사양을 직접적으로 단순화하지는 않지만 다음을 통해 구현을 크게 개선합니다.