Why there are so many forks on blockchain networks.
With a centralized system there is an authority that decides what will happen to the system. For example, Google can roll out an update for its search engine and users will start seeing different search results compared to what they’ve been seeing before. Facebook can do an update and what you see in your newsfeed will change even though you do not know how the technology works and what specific algorithm Facebook is using.
Something like this is not possible on public blockchain networks such as Bitcoin, Ethereum and others because all the code is open source, users are free to download or not download the software and miners are free to choose on which network and when to compile transactions into blocks of blockchain.
Typically, a blockchain network would have a non-profit foundation and a team of developers that creates updates to the software. These updates or forks can be planned or unplanned. A planned fork is when the developers prepare an update in advance, notify the community and discuss the fork with the community.
Discussions and communication are critically important because if the community does not understand why the network needs an update, members of the community may choose not to update their software.
The difference between soft and hard forks is that after a soft fork update the network software is backwards compatible with the previous versions of the software. During hard forks, the software becomes incompatible.
Here is an example of how this works. Let’s suppose a financial blockchain network has ten miners that are compiling transactions on the network into blocks of the network blockchain.
If there is a soft fork and eight of these miners, M1 through M8, have upgraded their software and two of the miners, M9 and M10, did not upgrade the software, if M10 creates a new block of the blockchain, all the members of the network will accept is as a new block because the software is backwards compatible, meaning that new software can recognize the blocks that come from the old software. On the other hand, if one of the miners who has upgraded the software, let’s say M1, creates a new block of the blockchain, then the miners who did not upgrade their software, which is miners M9 and M10, will not be able to accept this new block.
With a hard fork, software simply becomes incompatible, meaning that the new software will recognize the blockchain created on the network as the original blockchain, but it will not recognize any of the blocks created by the old software and the opposite is also true: the old software will not recognize blocks created by the new software.
One of the potential issues is when the majority of miners decide to not proceed with an upgrade. This may happen because miners believe that staying on the old version of the network will be more profitable for them or they may disagree with the direction in which the new upgrade is taking the network. If this were to happen, then the new version of the software would become a fork that would be likely to eventually disappear.
Suggested fixes for the hack of “The DAO”
Since during the hack of “The DAO” the attackers funneled the funds into a child DAO, they had to abide by the same rules that governed the main DAO, which means that the child project also had a 27-day window during which the attackers would not be able to touch the funds.
On June 17, 2016, Vitalik Buterin, the creator of the Ethereum network, has published a post in which he suggested a soft fork that would make any transactions that reduce the balance of the address with the stolen funds permanently invalid. In essence, Buterin proposed to not to rewrite any of the blocks of the Ethereum blockchain and to install a filter that would block money coming out of the address with the stolen funds, meaning that the attackers would not be able to do anything with the money.
Another proposal by members of the Ethereum community was to create a hard fork that would not just prevent the attackers from accessing the funds but would also return all the funds to the original “The DAO” and after that to the original pledgers to the project. This would make it possible for all the investors in the “The DAO” venture to get their funds back as if nothing happened.
Responses by the community
These proposals have led to heated debates in the blockchain community because they fundamentally suggested that rules can change. Many of the members of the community protested that because they believe that changing the rules would go against the principles of the public blockchain networks.
The irony of the situation was that it looked exactly like the financial crisis of 2007/2008 during which the United States government decide to bail out the banks deeming them too big to fail.