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은 사양을 직접 단순화하지는 않지만 다음과 같이 구현을 크게 개선합니다.