Everything you need to know about the Ethereum Berlin upgrade

share
Everything you need to know about the Ethereum Berlin upgrade

The Ethereum Berlin upgrade was completed at block height 12244000 on April 15, 18:07 Beijing time. As a user, what do you need to know?

(This article is authorized for reprint from ChainNews, the original title is "Everything You Need to Know About the Ethereum Berlin Upgrade", original article here)

The long-delayed Ethereum Berlin Upgrade is officially live, following the Istanbul and Muir Glacier upgrades. Due to the centralization issues with the Geth client, the Berlin hard fork, initially scheduled for July 2020, has been postponed until now.

Why Berlin?

Berlin is just a name for this Ethereum network upgrade. After the Istanbul upgrade, Ethereum network upgrades will be named after cities where Devcon is held (such as Berlin, London, Shanghai, etc.) and in sequential order.

What does the Berlin upgrade mean?

The Berlin upgrade signifies a change in the underlying Ethereum protocol.

The decentralized nature of Ethereum makes network upgrades a challenge, requiring consensus among the community and Ethereum client developers on certain protocol changes. The agreed-upon protocol changes will be incorporated into various Ethereum clients, such as Geth, Open Ethereum, Besu, and Nethermind, and activated at a specific block height.

The Berlin upgrade primarily optimizes Ethereum's mainnet performance, improves contracts, covers Gas efficiency, updates the Ethereum Virtual Machine (EVM) code reading method, and prevents Distributed Denial of Service (DDOS) attacks. Before deployment on the mainnet, this upgrade will first run on the Ropsten, Goerli, and Rinkeby testnets.

What updates are included in the Berlin upgrade?

This upgrade includes at least five Ethereum Improvement Proposals (EIPs), namely EIP-2565, EIP-2315, EIP-2929, EIP-2718, and EIP-2930. However, during the 107th core developer meeting on March 5th, EIP-2315 was removed from the upgrade list.

EIP-2565: Reducing the cost of precompiled contracts for ModExp

This proposal is a repricing of the previous EIP-198, which introduced a precompiled module for modular exponentiation operations. EIP-2565 reduces the Gas cost of this module, making it on par with the cost of other operations.

Reference:
https://eips.ethereum.org/EIPS/eip-2565

EIP-2929: Increasing Gas cost for state access opcodes

This EIP triples the Gas cost for the first call to SLOAD, *CALL, BALANCE, EXT*, and SELFDESTRUCT within a transaction but this high cost is only triggered once per address or storage slot.

The increase in Gas cost for these operations aims to mitigate the remaining DoS attack surface in the Ethereum protocol. Additionally, EIP-2929 helps limit the size of witness data in a stateless Ethereum environment.

Reference:
https://eips.ethereum.org/EIPS/eip-2929

EIP-2930: Optional access lists

To address the increased Gas cost from EIP-2929, the Berlin upgrade introduces EIP-2930. EIP-2930 allows users to specify an "access list" when submitting transactions to indicate the states they plan to access, using a lower GAS fee than required by EIP-2929.

Reference:
https://eips.ethereum.org/EIPS/eip-2930

EIP-2718: Standardized transaction types

This EIP introduces a new transaction type that brings support for multiple transaction types at the protocol level to enable greater ease in supporting various transaction types.

During the initial deployment of Ethereum mainnet, there was only one transaction type with fields TO and Data. In November 2016, Ethereum network's transaction type requirements changed, and to prevent replay attacks, EIP-155 was included. While EIP-2718 does not address the complexity introduced by EIP-155, it effectively prevents further complexity and makes the implementation of EIP-1599 easier.

Reference:
https://eips.ethereum.org/EIPS/eip-2718
"The Berlin Upgrade Overview"

What do users need to do?

As an Ethereum user or ETH holder, you do not need to do anything unless your exchange or wallet service provider notifies you of additional steps required.

As a node operator or miner, you need to download the latest version of the Ethereum client. After the Berlin upgrade, nodes that have not been upgraded will remain on the old chain incompatible with the new chain, unable to send ETH to the upgraded Ethereum network, and unable to interact with smart contracts on the upgraded Ethereum network.

Download links:

Reference:
"Ethereum Berlin Upgrade Announcement"

Ethereum Upgrade Roadmap: EIP-1559 and ETH2 Merge

In addition to the upcoming Berlin upgrade, Ethereum in 2021 will also see the London upgrade (expected in July) and the Shanghai upgrade (expected in October).

The London upgrade will deploy the community-controversial EIP-1559 on the mainnet. Due to the greater difficulty of the London upgrade and the shorter implementation and testing time, core developers are trying to narrow down the scope of the London upgrade to complete it on time.

EIPs not included in the London upgrade may be considered for the Shanghai upgrade (potentially including EIP-3298 or EIP-3322). Ethereum developers are currently discussing the priority issues for the Shanghai upgrade. One option is to launch the Shanghai upgrade as another feature fork, including EIPs not included in the London upgrade. Another option is to adopt Vitalik Buterin's fast merge proposal, treating the Shanghai upgrade as the Eth1 <> Eth2 merge. If the former is chosen, launching the Shanghai upgrade as a feature fork may happen in October 2021. If the latter is chosen, the launch will be postponed to a later date.

Reference:
"For those who are unclear on big things happening soon in the Ethereum ecosystem"
"Proposal to prioritize The Merge after London"
"AllCoreDevs Update 001"

Reference:
"What changes does the Ethereum Berlin upgrade bring? Understand the 4 EIP proposals"
"Quick Overview of the Ethereum Berlin Upgrade: First deployed on Ropsten testnet, mainnet scheduled to upgrade on April 14"