Vitalik Buterin has unveiled his plan to streamline Ethereum, which he has dubbed “The Purge.” The main focus of this initiative is the implementation of EIP-6780 during the Dencun hard fork. This update significantly reduces the capabilities of the SELFDESTRUCT opcode in order to simplify Ethereum’s protocol and enhance its security.
The key aspect of EIP-6780 is the drastic reduction of the SELFDESTRUCT opcode’s function. It now only allows a contract to be annihilated and its code and storage erased if the contract originates from the same transaction. This change introduces two new rules: a limit on the number of changeable storage slots within a single block and the requirement that a contract must begin and end a transaction or block with the same code.
Before this update, Ethereum faced challenges due to the unrestricted use of the SELFDESTRUCT opcode. Contracts could wipe clean an unlimited number of storage slots within a block, making it difficult to implement Verkle trees and adding extra handling code to client implementations. Moreover, contracts could self-destruct and then immediately reappear with different code, posing security concerns for transaction verification in account abstraction wallets. EIP-6780 addresses these issues, making the construction of Ethereum clients and infrastructure simpler.
Ethereum’s simplification efforts go beyond EIP-6780. For example, Geth has reduced thousands of lines of code by discontinuing support for pre-merge (Proof of Work) networks. Additionally, the concerns surrounding “empty accounts” have been resolved with a previous fix introduced by EIP-161. The Dencun upgrade has also introduced an 18-day storage window for blobs, reducing storage demands on Ethereum nodes.
The focus has also turned to precompiles, which are special contracts designed for complex cryptography that standard EVM code cannot handle efficiently. Despite their success in enabling ZK-SNARK applications, certain precompiles such as RIPEMD-160, Identity, BLAKE2, and MODEXP are rarely used today. Due to their limited application and the consensus bugs they introduce, there are discussions about potentially removing or replacing them with EVM code, despite the higher gas cost.
Another significant step towards simplification is EIP-4444, which addresses the unsustainable practice of nodes storing all historical blocks indefinitely. This update introduces blobs and sets a timeframe for storage, alleviating the storage burden on nodes and making it more feasible for users to operate nodes, thus enhancing Ethereum’s decentralization.
The reform of Ethereum’s logging mechanism is also being considered. Traditional logs, crucial for decentralized applications to track on-chain events, are inefficient, leading many applications to rely on centralized services. The proposed solution involves eliminating bloom filters and simplifying the LOG opcode to encourage the development of more efficient and decentralized log retrieval methods using ZK-SNARKs and incrementally-verifiable computation.
Lastly, Ethereum is planning a major overhaul of its data storage and access methodology through the adoption of SimpleSerialize (SSZ). This transition aims to replace the outdated RLP and Merkle Patricia trees, offering advantages such as a cleaner specification, shorter and bounded Merkle proofs, and the elimination of complex bit-twiddling code. The move towards SSZ is a crucial step in unifying Ethereum’s cryptographic data structures, paving the way for a future where a single, SNARK-friendly hash function can serve all of Ethereum.