Authors:
Marcello Ardizzone (@marcell033), Sandeep Sreenath (@ssandeep)
Type: Core
Table of Contents:
- Abstract
- Motivation
- Specification
- Backward Compatibility
- Reference Implementation
- Copyright
Abstract
This proposal specifies the activation of Shanghai features (introduced by Ethereum - L1) on Polygon PoS network (L2). This will enable a set of functionalities which are live on Ethereum Mainnet since Beacon Chain Epoch 194048
(timestamp 1681338455
, UTC datetime 4/12/2023 10:27:35 PM
, fork hash 0xdce96c2d
).
Motivation
As bor
is a fork of geth
, the practice of merging upstream changes gives Polygon the opportunity to enable new features defined in the L1.
With the Shanghai PIP, we plan to upgrade our network with a subset of EIPs included in Ethereum.
Specification
The Shanghai PIP will enable the following upgrades:
- EIP-3651: Warm COINBASE
- EIP-3855: PUSH0 instruction
- EIP-3860: Limit and meter initcode
- EIP-6049: Deprecate SELFDESTRUCT
Compared to Ethereum Shanghai upgrade, the following EIP will not be included in Polygon specs:
The aforementioned EIP has been specifically excluded because Polygon PoS has no concept of beacon chain. Whilst Ethereum validators are now enabled to withdraw ETHs, in Polygon PoS chain the validators staking is done on Ethereum L1 directly, and its operations are synced with bor
chain by using heimdall
layer.
Backwards Compatibility
This PIP will not be backward compatible with the current implementation of bor
and will therefore require a hard fork.
Reference Implementation
The following PRs implements the changes from upstream go-ethereum
v1.11.6, including the mentioned Shanghai related EIPs.
New changes to the code will be made once the block heights for the hard forks (on testnet and mainnet) are defined.
Copyright
All copyrights and related rights in this work are waived under CC0 1.0 Universal.