Skip to content

Instantly share code, notes, and snippets.

@xinbenlv
Created September 26, 2023 03:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xinbenlv/54e217d61d19250cabe47dba128b883e to your computer and use it in GitHub Desktop.
Save xinbenlv/54e217d61d19250cabe47dba128b883e to your computer and use it in GitHub Desktop.
ETH history
title description lang sidebarDepth
History and Forks of Ethereum
A history of the Ethereum blockchain including major milestones, releases, and forks.
en
1

The history of Ethereum {#the-history-of-ethereum}

A timeline of all the major milestones, forks, and updates to the Ethereum blockchain.

Forks are when major technical upgrades or changes need to be made to the network – they typically stem from Ethereum Improvement Proposals (EIPs) and change the "rules" of the protocol.

When upgrades are needed in traditional, centrally-controlled software, the company will just publish a new version for the end-user. Blockchains work differently because there is no central ownership. Ethereum clients must update their software to implement the new fork rules. Plus block creators (miners in a proof-of-work world, validators in a proof-of-stake world) and nodes must create blocks and validate against the new rules. More on consensus mechanisms

These rule changes may create a temporary split in the network. New blocks could be produced according to the new rules or the old ones. Forks are usually agreed upon ahead of time so that clients adopt the changes in unison and the fork with the upgrades becomes the main chain. However, in rare cases, disagreements over forks can cause the network to permanently split – most notably the creation of Ethereum Classic with the DAO fork.

Skip straight to information about some of the particularly important past upgrades: The Beacon Chain; The Merge; and EIP-1559

Looking for future protocol upgrades? Learn about upcoming upgrades on the Ethereum roadmap.

2023 {#2023}

Shanghai {#shanghai}

Summary {#shanghai-summary}

The Shanghai upgrade brought staking withdrawals to the execution layer. In tandem with the Capella upgrade, this enabled blocks to accept withdrawal operations, which allows stakers to withdraw their ETH from the Beacon Chain to the execution layer.

  • EIP-3651Starts the COINBASE address warm
  • EIP-3855New PUSH0 instruction
  • EIP-3860Limit and meter initcode
  • EIP-4895Beacon chain push withdrawals as operations
  • EIP-6049 - Deprecate SELFDESTRUCT

Capella {#capella}

Summary {#capella-summary}

The Capella upgrade was the third major upgrade to the consensus layer (Beacon Chain) and enabled staking withdrawals. Capella occurred synchronously with the execution layer upgrade, Shanghai, and enabled staking withdrawal functionality.

This consensus layer upgrade brought the ability for stakers who did not provide withdrawal credentials with their initial deposit to do so, thereby enabling withdrawals.

The upgrade also provided automatic account sweeping functionality, which continuously processes validator accounts for any available rewards payments or full withdrawals.

2022 {#2022}

Paris (The Merge) {#paris}

Summary {#paris-summary}

The Paris upgrade was triggered by the proof-of-work blockchain passing a terminal total difficulty of 58750000000000000000000. This happened at block 15537393 on 15th September 2022, triggering the Paris upgrade the next block. Paris was The Merge transition - its major feature was switching off the proof-of-work mining algorithm and associated consensus logic and switching on proof-of-stake instead. Paris itself was an upgrade to the execution clients (equivalent to Bellatrix on the consensus layer) that enabled them to take instruction from their connected consensus clients. This required a new set of internal API methods, collectively known as the Engine API, to be activated. This was arguably the most significant upgrade in Ethereum history since Homestead!

  • EIP-3675Upgrade consensus to Proof-of-Stake
  • EIP-4399Supplant DIFFICULTY opcode with PREVRANDAO

Bellatrix {#bellatrix}

Summary {#bellatrix-summary}

The Bellatrix upgrade was the second scheduled upgrade for the Beacon Chain, preparing the chain for The Merge. It brings validator penalties to their full values for inactivity and slashable offenses. Bellatrix also includes an update to the fork choice rules to prepare the chain for The Merge and the transition from the last proof-of-work block to the first proof-of-stake block. This includes making consensus clients aware of the terminal total difficulty of 58750000000000000000000.


Gray Glacier {#gray-glacier}

Summary {#gray-glacier-summary}

The Gray Glacier network upgrade pushed back the difficulty bomb by three months. This is the only change introduced in this upgrade, and is similar in nature to the Arrow Glacier and Muir Glacier upgrades. Similar changes have been performed on the Byzantium, Constantinople and London network upgrades.

  • EIP-5133delays the difficulty bomb until September 2022

2021 {#2021}

Arrow Glacier {#arrow-glacier}

Summary {#arrow-glacier-summary}

The Arrow Glacier network upgrade pushed back the difficulty bomb by several months. This is the only change introduced in this upgrade, and is similar in nature to the Muir Glacier upgrade. Similar changes have been performed on the Byzantium, Constantinople and London network upgrades.

  • EIP-4345delays the difficulty bomb until June 2022

Altair {#altair}

Summary {#altair-summary}

The Altair upgrade was the first scheduled upgrade for the Beacon Chain. It added support for "sync committees"—enabling light clients, and increased validator inactivity and slashing penalties as development progressed towards The Merge.

Fun fact! {#altair-fun-fact}

Altair was the first major network upgrade that had an exact rollout time. Every upgrade prior had been based on a declared block number on the proof-of-work chain, where block times vary. The Beacon Chain does not require solving for proof-of-work, and instead works on a time-based epoch system consisting of 32 twelve-second "slots" of time where validators can propose blocks. This is why we knew exactly when we would hit epoch 74,240 and Altair became live!


London {#london}

Summary {#london-summary}

The London upgrade introduced EIP-1559, which reformed the transaction fee market, along with changes to how gas refunds are handled and the Ice Age schedule.

  • EIP-1559improves the transaction fee market
  • EIP-3198returns the BASEFEE from a block
  • EIP-3529 - reduces gas refunds for EVM operations
  • EIP-3541 - prevents deploying contracts starting with 0xEF
  • EIP-3554delays the Ice Age until December 2021

Berlin {#berlin}

Summary {#berlin-summary}

The Berlin upgrade optimized gas cost for certain EVM actions, and increases support for multiple transaction types.

  • EIP-2565lowers ModExp gas cost
  • EIP-2718enables easier support for multiple transaction types
  • EIP-2929gas cost increases for state access opcodes
  • EIP-2930adds optional access lists

2020 {#2020}

Beacon Chain genesis {#beacon-chain-genesis}

Summary {#beacon-chain-genesis-summary}

The Beacon Chain needed 16384 deposits of 32 staked ETH to ship securely. This happened on November 27, meaning the Beacon Chain started producing blocks on December 1, 2020. This is an important first step in achieving the Ethereum vision.

Read the Ethereum Foundation announcement

The Beacon Chain

Staking deposit contract deployed {#staking-deposit-contract}

Summary {#deposit-contract-summary}

The staking deposit contract introduced staking to the Ethereum ecosystem. Although a Mainnet contract, it had a direct impact on the timeline for launching the Beacon Chain, an important Ethereum upgrade.

Read the Ethereum Foundation announcement

Staking

Muir Glacier {#muir-glacier}

Summary {#muir-glacier-summary}

The Muir Glacier fork introduced a delay to the difficulty bomb. Increases in block difficulty of the proof-of-work consensus mechanism threatened to degrade the usability of Ethereum by increasing wait times for sending transactions and using dapps.

  • EIP-2384delays the difficulty bomb for another 4,000,000 blocks, or ~611 days.

2019 {#2019}

Istanbul {#istanbul}

Summary {#istanbul-summary}

The Istanbul fork:

  • Optimised the gas cost of certain actions in the EVM.
  • Improved denial-of-service attack resilience.
  • Made Layer 2 scaling solutions based on SNARKs and STARKs more performant.
  • Enabled Ethereum and Zcash to interoperate.
  • Allowed contracts to introduce more creative functions.

Read the Ethereum Foundation announcement

  • EIP-152allow Ethereum to work with privacy-preserving currency like Zcash.
  • EIP-1108cheaper cryptography to improve gas costs.
  • EIP-1344protects Ethereum against replay attacks by adding CHAINID opcode.
  • EIP-1884optimising opcode gas prices based on consumption.
  • EIP-2028reduces the cost of CallData to allow more data in blocks – good for Layer 2 scaling.
  • EIP-2200other opcode gas price alterations.

Constantinople {#constantinople}

Summary {#constantinople-summary}

The Constantinople fork:

  • Ensured the blockchain didn't freeze before proof-of-stake was implemented.
  • Optimised the gas cost of certain actions in the EVM.
  • Added the ability to interact with addresses that haven't been created yet.

Read the Ethereum Foundation announcement

  • EIP-145optimises cost of certain on-chain actions.
  • EIP-1014allows you to interact with addresses that have yet to be created.
  • EIP-1052optimises cost of certain on-chain actions.
  • EIP-1234makes sure the blockchain doesn't freeze before proof-of-stake.

2017 {#2017}

Byzantium {#byzantium}

Summary {#byzantium-summary}

The Byzantium fork:

  • Reduced block mining rewards from 5 to 3 ETH.
  • Delayed the difficulty bomb by a year.
  • Added ability to make non-state-changing calls to other contracts.
  • Added certain cryptography methods to allow for layer 2 scaling.

Read the Ethereum Foundation announcement

  • EIP-140adds REVERT opcode.
  • EIP-658status field added to transaction receipts to indicate success or failure.
  • EIP-196adds elliptic curve and scalar multiplication to allow for ZK-Snarks.
  • EIP-197adds elliptic curve and scalar multiplication to allow for ZK-Snarks.
  • EIP-198enables RSA signature verification.
  • EIP-211adds support for variable length return values.
  • EIP-214adds STATICCALL opcode, allowing non-state-changing calls to other contracts.
  • EIP-100changes difficulty adjustment formula.
  • EIP-649delays difficulty bomb by 1 year and reduces block reward from 5 to 3 ETH.

2016 {#2016}

Spurious Dragon {#spurious-dragon}

Summary {#spurious-dragon-summary}

The Spurious Dragon fork was the second response to the denial of service (DoS) attacks on the network (September/October 2016) including:

  • tuning opcode pricing to prevent future attacks on the network.
  • enabling “debloat” of the blockchain state.
  • adding replay attack protection.

Read the Ethereum Foundation announcement

  • EIP-155prevents transactions from one Ethereum chain from being rebroadcasted on an alternative chain, for example a testnet transaction being replayed on the main Ethereum chain.
  • EIP-160adjusts prices of EXP opcode – makes it more difficult to slow down the network via computationally expensive contract operations.
  • EIP-161allows for removal of empty accounts added via the DOS attacks.
  • EIP-170changes the maximum code size that a contract on the blockchain can have – to 24576 bytes.

Tangerine whistle {#tangerine-whistle}

Summary {#tangerine-whistle-summary}

The Tangerine Whistle fork was the first response to the denial of service (DoS) attacks on the network (September/October 2016) including:

  • addressing urgent network health issues concerning underpriced operation codes.

Read the Ethereum Foundation announcement

  • EIP-150increases gas costs of opcodes that can be used in spam attacks.
  • EIP-158reduces state size by removing a large number of empty accounts that were put in the state at very low cost due to flaws in earlier versions of the Ethereum protocol.

DAO fork {#dao-fork}

Summary {#dao-fork-summary}

The DAO fork was in response to the 2016 DAO attack where an insecure DAO contract was drained of over 3.6 million ETH in a hack. The fork moved the funds from the faulty contract to a new contract with a single function: withdraw. Anyone who lost funds could withdraw 1 ETH for every 100 DAO tokens in their wallets.

This course of action was voted on by the Ethereum community. Any ETH holder was able to vote via a transaction on a voting platform. The decision to fork reached over 85% of the votes.

Some miners refused to fork because the DAO incident wasn't a defect in the protocol. They went on to form Ethereum Classic.

Read the Ethereum Foundation announcement


Homestead {#homestead}

Summary {#homestead-summary}

The Homestead fork that looked to the future. It included several protocol changes and a networking change that gave Ethereum the ability to do further network upgrades.

Read the Ethereum Foundation announcement

  • EIP-2makes edits to contract creation process.
  • EIP-7adds new opcode: DELEGATECALL
  • EIP-8introduces devp2p forward compatibility requirements

2015 {#2015}

Frontier thawing {#frontier-thawing}

Summary {#frontier-thawing-summary}

The frontier thawing fork lifted the 5,000 gas limit per block and set the default gas price to 51 gwei. This allowed for transactions – transactions require 21,000 gas. The difficulty bomb was introduced to ensure a future hard-fork to proof-of-stake.


Frontier {#frontier}

Summary {#frontier-summary}

Frontier was a live, but barebone implementation of the Ethereum project. It followed the successful Olympic testing phase. It was intended for technical users, specifically developers. Blocks had a gas limit of 5,000. This ‘thawing’ period enabled miners to start their operations and for early adopters to install their clients without having to ‘rush’.

Read the Ethereum Foundation announcement

2014 {#2014}

Ether sale {#ether-sale}

Ether officially went on sale for 42 days. You could buy it with BTC.

Read the Ethereum Foundation announcement


Yellowpaper released {#yellowpaper}

The Yellow Paper, authored by Dr. Gavin Wood, is a technical definition of the Ethereum protocol.

View the Yellow Paper

2013 {#2013}

Whitepaper released {#whitepaper}

The introductory paper, published in 2013 by Vitalik Buterin, the founder of Ethereum, before the project's launch in 2015.

Whitepaper
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment