ECIP 1103: Magneto EVM and Protocol Upgrades Source

AuthorAfr Schoe
Discussions-Tohttps://github.com/ethereumclassic/ECIPs/issues/412
StatusDraft
TypeMeta
Created2021-02-09

Simple Summary

Enable the outstanding Ethereum Foundation Berlin network protocol upgrades on the Ethereum Classic network in a hard-fork code-named Magneto to enable maximum compatibility across these networks.

Abstract

Add support for a subset of protocol-impacting changes introduced in the Ethereum Foundation (ETH) network via the Berlin hardforks. The proposed changes for Ethereum Classic’s Berlin upgrade include:

  • Reprices the gas cost of the ModExp (0x00..05) precompile.
  • Introduces three opcodes to support subroutines: BEGINSUB, JUMPSUB, and RETURNSUB.
  • Increases gas cost for SLOAD, *CALL, BALANCE, EXT*, and SELFEDESTRUCT when used for the first time in a transaction.
  • Defines a new transaction type that is an envelope for future transaction types.
  • Adds a transaction type which contains an access list, a list of addresses and storage keys that the transaction plans to access.

This document proposes the following blocks at which to implement these changes in the Classic networks:

  • 3_585_073 on Mordor Classic PoW-testnet (April, 2021)
  • 4_110_482 on Kotti Classic PoA-testnet (April, 2021)
  • 12_759_699 on Ethereum Classic PoW-mainnet (May, 2021)

For more information on the opcodes and their respective EIPs and implementations, please see the Specification section of this document.

Motivation

To enhance the Ethereum Virtual Machine’s (EVM) capabilities, various opcodes shall be added to the Ethereum Classic networks, all of which have been in use on the Ethereum Foundation networks since early 2021.

Specification

Technical specifications for each EIP can be found at those documents respectively:

Rationale

Interoperability: Establishing and maintaining interoperable behavior between Ethereum clients is essential for developers and end-user adoption, yielding benefits for all participating chains (e.g., ETH and ETC, Ropsten and Mordor, Görli and Kotti).

Immutability: None of the introduced new opcodes in the EVM has the potential to change the behavior of existing contracts; in the case where previously an arbitrary invalid bytecode would have been deployed to the network, none of them would be able to modify the state of the Ethereum Classic networks retrospectively. Adding opcodes to the EVM increases its functionality and should be considered a feature upgrade rather than a modification.

Implementation

Adoption of the content of this ECIP requires a hard fork as it introduces changes that are not backward compatible.

The following clients with Ethereum Classic support implement the Berlin features currently and will be able to support the Magneto upgrade:

  • Core-Geth (maintained by ETC Core)
  • Hyperledger Besu (maintained by ConsenSys)

Copyright and related rights waived via CC0.