Hard Fork Explained
Before we dive into the details of Ethereum's next stage of development, let's briefly recap the role of forks in the blockchain ecosystem, the different types of network forks, and the structure of Ethereum's roadmap. Then, we will cover the two phases of the Istanbul hard fork and the particular changes that will be implemented.
In open source software (OSS) development, projects are built out in the open rather than behind closed doors. This creates a high degree of transparency and fosters more open participation throughout a project's development.
In traditional OSS, a fork occurs when the source code of a project is copied to be developed independently of the original project. Forks can happen for a variety of reasons, but usually it involves a rift within the developer community.
Public blockchains are unique in OSS because they tend to operate in a mostly decentralized fashion with no central company in charge of the codebase. Blockchain development tends to be slower than traditional software development because of the time-consuming process of ensuring consensus for all changes to the source code.
Instead of a centralized team that can make code changes within minutes, blockchains consist of an open source development community that maintains the codebase and the miners who run the software to validate incoming transactions into a cryptographically secure and verifiable data structure while securing the uptime of the network (and receiving rewards in return). Maintaining consensus between these communities is not a trivial matter, especially when there is so much value at stake.
Forks are a natural process of a public blockchain's development much like a snake shedding its skin. However, forks can take a variety of forms,
It is important to note that there is a shared history of transaction data following a network fork with each chain bearing an identical record. In short, forks are how blockchains evolve over time without central planning and coordination.
Blockchain forks occur in largely two categories: soft forks and hard forks.
Soft forks are upgrades to the protocol which are backwards-compatible with older versions of the software but not the other way around. Simply put, there is no risk of the network splitting into multiple chains and issuing new currencies.
Hard forks are absolute changes to the protocol that must be done in consensus (i.e. all miners upgrade their software accordingly) or else risk splitting the network into multiple live chains. Hard forked versions of the protocol are incompatible with older versions.
The context and reasons for hard forks vary. These include:
These occur when there is a schism within or between the devs and the miners, the groups who collectively maintain the network. An example of a contentious hard fork is the split in the Ethereum blockchain following the massive hack of The DAO project which compromised millions of ETH (worth billions at the time of writing). When the hack occurred, there was a division in the community over how to respond: accept that the hack happened and maintain the immutability of the transaction record or modify the record such that the hack never happened and rescue the funds.
When the Ethereum developers gauged community sentiment and deemed it best to rescue the funds, a hard fork was implemented. Some refused the upgrade and continued mining the original chain, resulting in the network splitting in two: Ethereum Classic (ETC) and Ethereum (ETH) chain. This landmark event has become a go-to example of contentious forks.
From the beginning, Ethereum was intended to undergo significant changes over the time in the form of hard forks. This slow, iterative development process was deemed a necessary precaution in rolling out the network over time due to the experimental nature of the evolving technology.
The eventual transition from Proof-of-Work to Proof-of-Stake, has been the planned for long time. But a hasty upgrade of these features could have worser impact onto the network. Regarding to transition from Proof-of -Work to Proof-of-Stake, we should be more patient, as there's still a pretty long way to go until the transition to Proof-of-Stake mechanism, known as ETH2.0 will happen. Forks are basically a package of more Ethereum Improvement Proposals (EIPs) which—you guessed it—are intended to improve the Ethereum network, that has its own name, number and a list of EIPs that will be included in a fork. This was modeled after the Request for Comments (RFC) proposal system that gave us the protocols which formed the Internet as it is today. Lately there has been announced a new model called EIP-centric forking by Martin Holst Swende, which is basically the process of how AllCoreDevs are making decisions about EIPs and forks.
Ethereum's development cycle is divided into four main stages with various phases between them:
Consisting of two phases, Istanbul will bring the final network upgrades and changes before Ethereum transitions into the ETH2.0 launch.
During the developers call which finalized the EIPs going into the first Istanbul fork, Ethereum Core developer Péter Szilágyi had this to say on the two-part structure:
SzilágyiWe split Istanbul into two. One of them we can actually ship within weeks. [The other contains] two really big EIPs that would be nice to have but require some stuff that cannot be done within the two- or three-week timespan.
Currently slated for mainnet activation on December 7th 2019, the fork of Istanbul will feature upgrades with the following goals:
The six EIPs that will be implemented in this fork are EIP-152, EIP-1108, EIP-1344, EIP-1884, EIP-2028, and EIP-2200.
These changes are largely technical in nature and may not affect most decentralized applications in any significant way, but there is one change that will make gas cost raise: EIP-1884.
One of the challenges of an ever-growing blockchain with Ethereum's design is balancing the increasing computational costs of certain operations such as recalling data on the state of the network (past transaction data, account balances, etc.) with the gas cost to conduct said operation. While computation costs have risen significantly, gas prices have remained the same, leaving the network more susceptible to DOS attacks. EIP-1884 will increase gas prices for certain operations in order to mitigate potential security risks.
The most notable of these gas price hikes is the reading from state instruction (SLOAD) which is a common and formerly cheap operation that may now break certain contracts on the network, including 680 smart contracts comprising the DAO development platform, Aragon.
Ultimately, the friction presented by EIP-1884 is a lesson for developers not to make assumptions on gas prices as they build these applications as they are subject to future changes in the protocol.
Berlin Hard Fork is not yet determined at the time of this article but is slated for a Q2 2020 release. Most of the eight EIPs that will be implemented at this stage are just general improvements for the Ethereum Virtual Machine, but it may include one that has become a point of contention in the community: EIP-1057.
This proposal would replace the current proof of work mining algorithm, Ethash, with a new proof of work algorithm called ProgPoW, or Programmatic Proof of Work. Basically, the current algorithm is optimized for application-specific integrated circuit (ASIC) mining, which utilizes bespoke hardware specially designed to mine a certain cryptocurrency.
The intent behind ProgPoW is to make commercially available, GPU-based mining machines compete with ASICs in order to reduce the centralization of PoW mining in the Ethereum network.
The proposal has sparked a heated debate in the Ethereum community. On one side there is support for the change in an effort to make Ethereum mining more decentralized and accessible. One the other side, detractors of the proposal are convinced that such a change is a waste of time and resources given the planned transition to proof of stake in the future. Some commentators have suggested the possibility of a chain split. Others are distrustful of the intentions behind the change, claiming that it could give incredible power to Nvidia and AMD, the leading manufacturers of GPUs.
Whether or not the proposal may be finalized in the Berlin fork is uncertain at the time of writing, but there a lots of unclear thoughts in the community about ProgPoW
Istanbul will largely bring much-needed improvements to the EVM that should result in improved performance of decentralized applications and a better experience for users. The chances of a contentious hard fork and a chain split are very slim. In large part, users may not even know that the network has upgraded at all.
Assuming the fork goes smoothly, the price of ETH shouldn't be disturbed by the fork. If contentious issues such as ProgPoW become more heated and enough miners refuse to participate with the upgrade, the chain could split in two, resulting in a dilution of ETH's value. However, this does not seem to be likely, so price fluctuations around the date of the another fork are expected to be minimal-to-none.
Public blockchains such as Ethereum are a unique techno-social phenomenon. While there is a rich history of open source software projects evolving with zero or limited central coordination, creating some of the most widely used systems of the modern world, blockchain development allows us to witness the evolution (and growing pains) of live networks of value with stakeholders all around the world.
Ethereum’s next phase of development will directly challenge the notion of “unstoppable applications” with the very changes in the protocol rendering some applications practically useless.
Ultimately, this is a learning experience for developers in Ethereum and other blockchain ecosystems to reassess what it means to create resilient software in an ever-changing environment.
Ethereum, in general, is an exciting project because they’re trying the hardest out of anyone in the crypto space to scale without sacrificing decentralization.