ECIP 1103: Magneto EVM and Protocol Upgrades
Author | Afr Schoe |
---|---|
Discussions-To | https://github.com/ethereumclassic/ECIPs/issues/412 |
Status | Final |
Type | Meta |
Created | 2021-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. - Increases gas cost for
SLOAD
,*CALL
,BALANCE
,EXT*
, andSELFEDESTRUCT
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_985_893
on Mordor Classic PoW-testnet (June 2nd, 2021)4_368_634
on Kotti Classic PoA-testnet (June 9th, 2021)13_189_133
on Ethereum Classic PoW-mainnet (July 21st, 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:
- EIP-2565: ModExp Gas Cost
- EIP-2929: Gas cost increases for state access opcodes
- EIP-2718: Typed Transaction Envelope
- EIP-2930: Optional access lists
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)
The Mantis client (maintained by IOHK) plans to eventually support the upgrade, but will not so do by the time of the hardfork.
Copyright
Copyright and related rights waived via CC0.