Vitalik Buterin has unveiled his plan to streamline Ethereum, which he has named “The Purge.” At the core of this initiative is the implementation of EIP-6780 during the Dencun hard fork, which significantly reduces the capabilities of the SELFDESTRUCT opcode. The goal is 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 has limited ability to erase a contract’s code and storage, except when the contract originates from the same transaction. While this may not appear to simplify the protocol’s specifications, it actually relieves the burden on implementations by enforcing two new rules: a limit on the number of storage slots changeable within a single block and the requirement that a contract will end a transaction or block with the same code it started with.
Prior to this change, Ethereum faced challenges due to the unlimited 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 complexity to client implementations. Additionally, contracts could self-destruct and then reappear with different code, posing security concerns for transaction verification in account abstraction wallets. EIP-6780 addresses these challenges and simplifies the development of Ethereum clients and infrastructure.
But Ethereum’s efforts to simplify don’t end with EIP-6780. Geth, for example, has reduced thousands of lines of code by discontinuing support for pre-merge networks. Another improvement is the recognition that “empty accounts” are no longer an issue, thanks to a previous fix introduced by EIP-161. The Dencun upgrade has also introduced an 18-day storage window for blobs, reducing the storage requirements for Ethereum nodes.
The focus now turns to precompiles, which are special contracts designed for complex cryptography that standard EVM code cannot efficiently handle. Some precompiles, such as RIPEMD-160, Identity, BLAKE2, and MODEXP, are rarely used today and introduce consensus bugs. These precompiles may be removed or replaced with EVM code, albeit at a higher gas expense.
Another step towards simplification is EIP-4444, which addresses the unsustainable practice of nodes storing all historical blocks indefinitely. By introducing blobs and setting a timeframe for storage, EIP-4444 aims to reduce the storage burden on nodes, making it more feasible for users to operate nodes and 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 to a reliance on centralized services. The proposed solution involves simplifying the LOG opcode and utilizing ZK-SNARKs and incrementally-verifiable computation to develop more efficient, decentralized log retrieval methods.
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 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 significant step in unifying Ethereum’s cryptographic data structures, paving the way for a future where a single, SNARK-friendly hash function could serve all of Ethereum.