ECIP 1061: Aztlán EVM and Protocol Upgrades (Yingchun Edition) Source

AuthorTalha Cross, Wei Tang
Discussions-Tohttps://github.com/ethereumclassic/ECIPs/issues/81
StatusLast Call (review ends 2019-12-19)
TypeMeta
Created2019-06-06

Simple Summary

Enable the outstanding Ethereum Foundation Istanbul network protocol upgrades on the Ethereum Classic network without any gas-cost assumptions in a hard-fork code-named Aztlán (Yingchun Edition) to enable maximum compatibility across these networks.

The Yingchun Edition refers to the preferred variant of Aztlán without any repricing of state-trie dependent opcodes as previously proposed in ECIP-1072.

Abstract

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

  • Add Blake2 compression function F precompile
  • Reduce alt_bn128 precompile gas costs
  • Add ChainID opcode
  • Calldata gas cost reduction
  • Rebalance net-metered SSTORE gas cost with consideration of SLOAD gas cost change

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

  • 778_507 on Mordor Classic PoW-testnet (Feb 5th, 2020)
  • 2_058_191 on Kotti Classic PoA-testnet (Feb 12th, 2020)
  • TBD on Ethereum Classic PoW-mainnet (March 25th, 2020)

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 end of 2019.

Specification

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

  • EIP-152: Add Blake2 compression function F precompile
  • EIP-1108: Reduce alt_bn128 precompile gas costs
  • EIP-1344: Add ChainID opcode
  • EIP-2028: Calldata gas cost reduction
  • EIP-2200: Rebalance net-metered SSTORE gas cost with consideration of SLOAD gas cost change

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. In particular, a delay of Istanbul’s EIP-1884 activation should be considered until backward-compatibility solutions are in place on Ethereum Classic.

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 Istanbul features currently:

  • Parity Ethereum
  • Multi-Geth
  • Hyperledger Besu

Final Note

Both, the Geth Classic client and the Morden testnet will no longer be supported by the community and not recieve the Aztlán ugrades.

  • Users of the Geth Classic client are urged to migrate their services to Parity Ethereum, Multi-Geth, or Hyperledger Besu. It is no longer recommended to run Geth Classic in production.
  • Users of the Morden Classic testnet are urged to migrate their applications to the Kotti Classic or Morder Classic testnets.

This work is licensed under Apache License, Version 2.0.