Skip to content

Commit

Permalink
Merge branch 'master' into ecbp1110
Browse files Browse the repository at this point in the history
  • Loading branch information
meowsbits committed Dec 11, 2023
2 parents ed6ce5f + daf8963 commit c4d6173
Showing 1 changed file with 8 additions and 11 deletions.
19 changes: 8 additions & 11 deletions _specs/ecip-1109.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,26 @@
lang: en
ecip: 1109
title: Spiral EVM and Protocol Upgrades
status: Draft
status: Last Call
type: Meta
author: Christos Ziogas <[email protected]>, Diego López León <[email protected]>, Isaac Ardis <[email protected]>
created: 2023-05-10
discussions-to: https://github.com/ethereumclassic/ECIPs/discussions/511
---

### Simple Summary
Enable the outstanding Ethereum Foundation **Shangai** network protocol upgrades on the Ethereum Classic network in a hard-fork code-named Spiral to enable maximum compatibility across these networks.
Enable the outstanding Ethereum Foundation **Shanghai** network protocol upgrades on the Ethereum Classic network in a hard-fork code-named Spiral 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 _Shangai_ network upgrade. The proposed changes for Ethereum Classic's _Spiral_ upgrade include:
Add support for a subset of protocol-impacting changes introduced in the Ethereum Foundation (ETH) network via the _Shanghai_ network upgrade. The proposed changes for Ethereum Classic's _Spiral_ upgrade include:

EIP | Description | Status
-- | -- | --
4399 | Supplant DIFFICULTY opcode with PREVRANDAO | Compatible inclusion
3651 | Warm COINBASE | Include
3855 | PUSH0 instruction | Include
3860 | Limit and meter initcode | Include
6049 | Deprecate SELFDESTRUCT | Include
4399 | Supplant DIFFICULTY opcode with PREVRANDAO | Omit
4895 | Beacon chain push withdrawals as operations | Omit

Beacon chain withdrawals are omitted at this time as they are not applicable for Ethereum Classic.
Expand All @@ -32,17 +32,14 @@ Beacon chain withdrawals are omitted at this time as they are not applicable for
- EIP 3855 "PUSH0 instruction": Introduces the PUSH0 (0x5f) instruction, which pushes the constant value 0 onto the stack.
- EIP-3860 "Limit and meter initcode": Limits the maximum size of initcode to 49152 bytes and apply extra gas cost of 2 for every 32-byte chunk of initcode

##### Compatible inclusion
- EIP 4399 "Supplant DIFFICULTY opcode with PREVRANDAO": Historicaly, the DIFFICULTY (0X44) instruction was used as a source of pseudo randomness. With the switch to Proof of Stake, Ethereum removed the work difficulty so, as a replacement, they now expose a [RANDAO](https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/block-proposal/#random-selection) value taken from the beacon chain. Since v0.8.18, Solidity [deprecates](https://docs.soliditylang.org/en/v0.8.18/cheatsheet.html#global-variables) the `block.difficulty` and replaces it with `block.prevrandao` but this syntactic change still compiles to the same EVM opcode, i.e. `0x44`, which in the Ethereum Classic network will continue to work with the aforementioned _block difficulty_.

##### Omitted
- EIP 4895 "Beacon chain push withdrawals as operations": In Proof of Stake networks, enable validator withdrawals from the beacon chain to the EVM
- Ethereum Classic network only grants rewards through Proof of Work mining on the canonical chain, there are no validators, so this doesn't apply.
- EIP 4399 "Supplant DIFFICULTY opcode with PREVRANDAO": Historically, the DIFFICULTY (0X44) instruction was used as a source of pseudo randomness. With the switch to Proof of Stake, Ethereum removed the work difficulty so, as a replacement, they now expose a [RANDAO](https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/block-proposal/#random-selection) value taken from the beacon chain. Since v0.8.18, Solidity [deprecates](https://docs.soliditylang.org/en/v0.8.18/cheatsheet.html#global-variables) `block.difficulty` and replaces it with `block.prevrandao` but this syntactic change still compiles to the same EVM opcode, i.e. `0x44`, which in the Ethereum Classic network will continue to evaluate as the aforementioned _block difficulty_ value.
- EIP 4895 "Beacon chain push withdrawals as operations": In Proof of Stake networks, enable validator withdrawals from the beacon chain to the EVM. Ethereum Classic network only grants rewards through Proof of Work mining on the canonical chain, there are no validators, so this doesn't apply.

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

- `9_000_000` on Mordor Classic testnet (TBD)
- `18_000_000` on Ethereum Classic mainnet (TBD)
- `9_957_000` on Mordor testnet
- `19_250_000` on Ethereum Classic mainnet

For more information on the opcodes and their respective EIPs and implementations, please see the _Specification_ section of this document.

Expand Down

0 comments on commit c4d6173

Please sign in to comment.