<

Ethereum Developers Agree to Deprecate SELFDESTRUCT Opcode in Next Upgrade

On April 27th, Ethereum developers held their 160th All Core Developers Execution (ACDE) call, where they discussed changes to the execution layer (EL) of Ethereum. The meeting, chaired by the Ethereum Foundation’s Tim Beiko, focused on the code changes that would be included in the next Ethereum upgrade, called Cancun, and the corresponding consensus layer (CL) upgrade, Deneb.

During the meeting, developers agreed to include Ethereum Improvement Proposal (EIP) 4844, also known as proto-danksharding, along with several other EIPs in Cancun. However, some EIPs were removed from consideration, while others are still being considered. Here’s what we know.

The EIPs that will be included in Cancun are:

  • EIP 6780: This proposal changes the functionality of the SELFDESTRUCT opcode so that the operation sends all ETH in an account to the caller, except when the opcode is called in the same transaction a contract was created.
  • EIP 6475: This proposal introduces a new Simple Serialize (SSZ) type to represent optional values. This makes the implementation of EIP 4844 more future-compatible with a larger forthcoming SSZ update to the EL of Ethereum.
  • EIP 1153: This proposal adds new opcodes for manipulating state that behaves identically to storage opcodes but is discarded after every transaction.

Developers are also considering other EIPs for Cancun, but they have not yet been formally accepted into the upgrade. These EIPs include:

  • EIP 6913: This proposal introduces the SETCODE instruction, which would allow contracts to replace their code without clearing their internal state.
  • EIP 6493: This proposal defines a signature scheme for SSZ encoded transactions, making Ethereum more future-compatible with a larger forthcoming SSZ update.
  • EIP 4788: This proposal exposes beacon chain block roots in EL block headers to allow proofs of CL state in the Ethereum Virtual Machine (EVM), improving trust assumptions of staking pool, restaking constructions, smart contract bridges, MEV protocols, and more.
  • EIP 2537: This proposal adds the BLS12-381 curve as a precompile to efficiently perform operations such as BLS signature and SNARK verifications, useful for various applications including account abstraction, Layer-2 rollups, and CL light client development.
  • EIP 5656: This proposal introduces a new EVM instruction for copying memory areas to provide efficient means of building data structures and deploying computationally heavy operations on Ethereum.

Two EIPs were removed from consideration for Cancun. These are:

  • Big EOF: A bundle of EIPs that would have made sweeping improvements to the EVM, including the separation of code from data.
  • EVMMAX: A subset of EIPs related to EOF implementation that creates new storage logic for modular arithmetic parameters and memory space to move the values in these parameters to and from the EVM.

During the meeting, developers discussed whether to prioritize EIP 6780, which would formally deprecate the SELFDESTRUCT opcode. This opcode breaks important assumptions about smart contract functionality, as it is the only opcode that can cause the code of a smart contract to change and change account balances without account holder consent.

However, because there are applications on Ethereum that have already been deployed using the SELFDESTRUCT opcode, Ethereum core developers have hired a third-party auditor to assess the impact of EIP 6780. In addition, a developer by the screen name of William Morriss has proposed EIP 6913 to allow smart contracts that rely on SELFDESTRUCT to replace their code post-Cancun through a new SETCODE instruction.

Minimal SSZ Changes

The developers then discussed what changes related to Simple Serialize (SSZ) formatting should be included in Cancun. SSZ is the data serialization scheme used on the consensus layer to store and transmit information about the chain state. Serialization schemes are crucial for peer-to-peer communication between nodes and API access. The execution layer uses a serialization format called Recursive Length Prefix (RLP), and the differences in serialization between the execution layer and the consensus layer create network overhead and inefficiencies.

Over the last few months, Etan Kissling of the Nimbus (consensus layer) client team has been working on a plan to standardize serialization formats between the execution layer and consensus layer and upgrade the execution layer RLP format to SSZ. While the entire code changes required to complete the transition from RLP to SSZ will not be ready in time for Cancun, developers agreed to include EIP 6475 in Cancun, which introduces a new SSZ type to represent optional values. This change will make the implementation of EIP 4844 more future-compatible with a larger forthcoming SSZ update to the execution layer of Ethereum.

Other EIPs Under Consideration

The developers also discussed several other EIPs that are currently under consideration for inclusion in Cancun. EIP 2537, for example, proposes adding the BLS12-381 curve as a precompile to efficiently perform operations such as BLS signature and SNARK verifications. These operations are useful for various applications, including account abstraction, layer-2 rollups, and consensus layer light client development.

EIP 5656 introduces a new EVM instruction for copying memory areas to provide an efficient means of building data structures and deploying computationally heavy operations on Ethereum. EIP 4788 proposes exposing beacon chain block roots in execution layer block headers to allow proofs of consensus layer state in the Ethereum Virtual Machine (EVM). This change would improve trust assumptions of staking pool, restaking constructions, smart contract bridges, Miner Extractable Value (MEV) protocols, and more.

Finally, the developers discussed two EIPs that were removed from consideration for Cancun. Big EOF, a bundle of EIPs that would have made sweeping improvements to the Ethereum Virtual Machine (EVM), one of the major ones being the separation of code from data. EVMMAX, a subset of EIPs related to Big EOF implementation, would have created new storage logic for modular arithmetic parameters and memory space to move the values in these parameters to and from the EVM.

Conclusion

In conclusion, Ethereum developers gathered over Zoom for their 160th All Core Developers Execution (ACDE) call to discuss and coordinate changes to the execution layer (EL) of Ethereum for the upcoming Cancun upgrade. The developers agreed to include several Ethereum Improvement Proposals (EIPs), such as EIP 6780, which formally deprecates the SELFDESTRUCT opcode, and EIP 6475, which introduces a new Simple Serialize (SSZ) type to represent optional values. The developers also discussed several other EIPs under consideration for Cancun and removed two EIPs from consideration. Overall, the Cancun upgrade is set to bring several important changes to Ethereum’s execution layer, which will help make the network more secure, efficient, and future-compatible.

Read more:

Join us on Telegram

Follow us on Twitter

Follow us on Facebook

Follow us on Reddit

You might also like