ECIP 1103: Magneto EVM and Protocol Upgrades
Author | Afr Schoe |
---|---|
Discussions-To | https://github.com/ethereumclassic/ECIPs/issues/412 |
Status | Draft |
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. - Introduces three opcodes to support subroutines:
BEGINSUB
,JUMPSUB
, andRETURNSUB
. - 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_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:
- EIP-2565: ModExp Gas Cost
- EIP-2315: Simple Subroutines for the EVM
- 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)
Copyright
Copyright and related rights waived via CC0.