[Passed! ✅] Mainnet v1.9 Release: EVM London upgrade & Nonce update

:point_right:t3: Before reading this proposal, review the updated IoTeX governance process here .


Change log

  • 2022-09-01: Initial draft

Proposer

iotex-core

Summary

This proposal introduces upgrades to the iotex-core blockchain protocol, including upgrading to EVM London and changing the first nonce from 1 to 0 for a new address.

Context

The IoTeX blockchain uses the Ethereum Virtual Machine (EVM) to process Solidity smart contracts. Currently, the iotex-core blockchain protocol utilizes the Berlin release of the EVM. The latest production release of EVM is London, which added 5 Ethereum Improvement Proposals (EIPs) to the Berlin release. Three of these EIPs are relevant to the IoTeX blockchain:

  • EIP-3198 Returns the BASEFEE from a block

  • EIP-3529 Reduces gas refunds for EVM operations

  • EIP-3541 Prevents deploying contracts starting with 0xEF

Additionally, for historical reasons, the first transaction sent from an IoTeX address uses nonce = 1, while on Ethereum the first transaction has nonce = 0.

Proposal

We propose upgrading the iotex-core protocol’s EVM to the London release, as well as updating IoTeX blockchain’s nonce format from nonce = 1 to nonce = 0 for new wallets to align with Ethereum.

Expected Impact

Upgrading the EVM version will align IoTeX with the latest production version on Ethereum where smart contracts can now access use the BASEFEE value for a block. In addition, it will fix the gas refund amounts to prevent some attacks and will prohibit the deployment of contracts whose bytecode starts by the 0xEF byte to ensure any conract deployed on IoTeX can still be deployed on Ethereum as is.

For the nonce behavior upgrade, while it is generally only a nuance and not an issue, we should correct the behavior so that the first transaction from a new address created after Mainnet v1.9 will use the same first nonce = 0 format as is the case for Ethereum. This further enhances IoTeX blockchain’s Ethereum compatibility and paves the way for open integration with more projects, such as Gnosis Safe.

Implementation Plan & Future Work

This proposal, if passed, will be activated as part of the Mainnet v1.9 code release. If approved by the community, Mainnet v1.9 will be activated via hard-fork in mid- to late-September 2022.

Call to Action

Please share your thoughts on this proposal using the comments section below – we appreciate your feedback!

  • If you are in support of this proposal, click “Yes” on the poll below.

  • If you are not in support of this proposal, click “No” on the poll below.

If this idea receives >50 “Yes” votes, a formal proposal will be uploaded to the Governance Portal for voting. If you are unfamiliar with the IoTeX governance process, review it here.

:point_down:t3:

  • Yes
  • No
0 voters
5 Likes

We support the proposal to align IoTeX core with Evm compatibility

3 Likes

I also support this proposal!

I can’t see any objective reasons that someone would vote NO for this proposal.

Supported as well!

Fully support it good proposal :slight_smile:

Thanks for your comments and upvotes everyone! We have received >50 “yes” votes so this will now be uploaded to the Governance Portal for a formal vote.

If you haven’t reviewed the governance process yet, read about it here.

2 Likes

Agree, sorry missed the opportunity to vote.