NEP-26: Boom: EVM and Protocol Upgrades

NEP26
TitleBoom: EVM and Protocol Upgrades
Author(s)newchain
Discussions Tohttps://github.com/newtonproject/NEPs/issues/26
CategoryTechnical
TypeProcess
StatusImplemented
Created2020-08-03

Simple Summary #

Enable the outstanding Ethereum Foundation Constantinople, St. Petersburg and Istanbul network protocol upgrades on the NewChain network in a hard-fork code-named Boom 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 Constantinople, St. Petersburg and Istanbul hardforks. The proposed changes for NewChain’s Boom upgrade include:

  • Bitwise shifting instructions in EVM
  • Skinny CREATE2
  • EXTCODEHASH opcode
  • Net gas metering for SSTORE without dirty maps
  • Add Blake2 compression function F precompile
  • Reduce alt_bn128 precompile gas costs
  • Add ChainID opcode
  • Repricing for trie-size-dependent opcodes
  • 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 NewChain networks:

  • 17181218 on NewChain testnet (2020-08-08 08:06:26 UTC+8)
  • 18500000 on NewChain mainnet (2020–09–20 20:59:42 UTC+8)

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 NewChain networks, all of which have been in use on the Ethereum Foundation networks.

Specification #

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

  • EIP-145: Bitwise shifting instructions in EVM
  • EIP-1014: Skinny CREATE2
  • EIP-1014: EXTCODEHASH opcode
  • EIP-1283: Net gas metering for SSTORE without dirty maps
  • EIP-152: Add Blake2 compression function F precompile
  • EIP-1108: Reduce alt_bn128 precompile gas costs
  • EIP-1344: Add ChainID opcode
  • EIP-1884: Repricing for trie-size-dependent opcodes
  • EIP-2028: Calldata gas cost reduction
  • EIP-2200: Rebalance net-metered SSTORE gas cost with consideration of SLOAD gas cost change

Implementation #

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

The newchain implement this features currently and would be able to support the Boom upgrade.

Copyright and related rights waived via CC0.