What Was the Byzantium Fork?
The Byzantium hard fork was an update to Ethereum's blockchain, implemented in October 2017 at block 4,370,000. It consisted of nine Ethereum Improvement Protocols (EIPs) designed to improve Ethereum's privacy, scalability, and security attributes.
The Byzantium hard fork was an essential and critical update to Ethereum’s blockchain. It was implemented to enable faster transactions and greater security on its blockchain while making smart contracts suitable for business transactions.
Key Takeaways
- A blockchain hard fork is a change that introduces incompatibility between the new and old blockchain.
- The 2017 Byzantium Fork was an update to Ethereum's blockchain and network that implemented changes for the existing and upcoming frameworks.
- There were nine changes in the Byzantium Fork.
Understanding the Byzantium Hard Fork
A hard fork of a cryptocurrency blockchain splits the blockchain in two, creating an old and new version. The new and old versions are incompatible, and all new transactions are recorded on the new chain.
The changes implemented in the Byzantium hard fork were designed to make Ethereum lighter, faster, and more secure. Additionally, they continued to build the framework for the eventual switch to the proof-of-stake consensus mechanism.
Goals of the Byzantium Fork
When implemented by a community and a blockchain's developers, a hard fork generally has specific goals or improvements that make the fork necessary. There were nine upgrades in the Byzantium fork:
- Added REVERT opcodes to the blockchain to allow smart contracts to be stopped if an error occurred without consuming all the gas paid for a transaction (EIP 140)
- Added a status field to transaction receipts to indicate transaction success or failure (EIP 658)
- Added a new mathematical model (EIP 196) and pairing checks that allowed zk-Snarks to operate correctly (EIP 197)
- Added support for certain signature verifications (EIP 198)
- Added support for variable values (EIP 211)
- Added STATICCALL opcode to allow for calls to nodes that do not request a state change (EIP 214)
- Changed the formula behind the difficulty adjustment to account for ommer blocks—blocks mined at the same time as another block but not accepted by the network (EIP 100)
- Delayed the difficulty bomb that makes mining so unprofitable it encourages miners to switch to proof-of-stake (EIP 649)
Here's a quick rundown of some of the changes implemented in Byzantium.
Smart Contract Stops
Before the update, smart contracts could throw an error, and the initiator would still be charged the gas fees for the entire transaction. Gas fees for smart contracts can be costly, so this update kept contract creators from losing gwei—the small ether denomination used to pay for transactions—for a contract that didn't fully execute.
Embedding Transaction Status Code In Receipts
Previously, transactions referenced a root parameter within the Merkle tree—the blocks that build on each other and secure the chain. The Merkle tree is a data structure that uses data within preceding blocks to create verification information that allows one block to be checked rather than checking every block every time there is a transaction.
This update enabled transactions to communicate success or failure rather than looking for the parameter, which allowed Ethereum’s blockchain to process transactions faster.
Enhancing Cryptography
The Byzantium upgrade included coding native to Ethereum's blockchain designed to lessen power requirements for the implementation of zk-Snarks. This is a zero-knowledge cryptography—where each party in a transaction can verify the other, but the information cannot be seen—that is increasingly becoming the privacy standard for cryptocurrency transactions.
The update introduced mathematically intensive computations that enabled systems to prove that they held the requisite cryptographic keys without divulging the contents of those keys.
State Changes
Transactions change the state of the blockchain, and smart contracts execute transactions. Therefore, it was necessary to implement a way for a user to call—or query—contracts without initiating a state change through a STATICCALL function.
Ommer Blocks
When miners open new blocks on a blockchain, it's possible for more than one block to be mined at the same time due to the distributed nature of the blockchain. When this happens, the network chooses which block to add to the chain. In previous versions of Ethereum, the blocks that were not chosen were called ommer blocks—ommer is the gender non-specific term for a child's parent's sibling.
To understand this concept, imagine that blocks 24 and 24a were mined at the same time—consider them to be siblings. Block 24 was added to the blockchain. Block 25 is block 24's child, which makes block 24a the ommer block of block 25 (parent block's sibling block).
Previously, ommer blocks were not accounted for when the difficulty was adjusted. This update included ommer blocks in the block count to ensure the difficulty could not be manipulated by adjusting the ommer rate (previously called the uncle rate).
Under Ethereum's proof-of-stake consensus mechanism, implemented in September 2022, ommer blocks no longer are an issue because only one block is proposed at a time.
Difficulty Bomb
Ethereum developers had been working towards implementing a proof-of-stake (PoS) consensus mechanism since the beginning. However, PoS wasn't as easy to implement as other upgrades because many changes were required. It also requires users to stake their ether (ETH) as collateral for the privilege of becoming a network validator.
The difficulty bomb was a significant increase in mining difficulty, designed to discourage a fork in the chain after the blockchain transitioned to PoS. The bomb was delayed in the Byzantium update.
Is Ethereum 2.0 a Hard Fork?
The Ethereum transition to proof-of-stake was referred to as Ethereum 2.0. However, it is no longer called that by the developers and community. The upgrade to the blockchain was not a hard fork, but hard forks such as EthereumPOW emerged from the upgrade as some users did not want to switch to PoS.
What Happens to My ETH After a Fork?
In a soft fork, your ETH is still yours and in your wallet. In a hard fork, your ETH is still yours and in your wallet. However, some hard forks award the cryptocurrency that emerges from a hard fork to existing wallets hoping to attract those users. In that case, you'd have your ETH and some new cryptocurrency.
Why Did ETH Classic Fork?
In 2016, Ethereum was attacked in what became known as The DAO attack. The Ethereum Foundation hard-forked the blockchain and reverted it to its state before the attack to give the DAO contributors their funds back. However, some users didn't believe this was the right action to take because it violated the concept of blockchain immutability. Ethereum Classic is the continuation of the state of the Ethereum blockchain after The DAO attack.
Investing in cryptocurrencies and other Initial Coin Offerings ("ICOs") is highly risky and speculative, and this article is not a recommendation by Investopedia or the writer to invest in cryptocurrencies or other ICOs. Since each individual's situation is unique, a qualified professional should always be consulted before making any financial decisions. Investopedia makes no representations or warranties as to the accuracy or timeliness of the information contained herein. As of the date this article was written, the author owns no ETH.