Table of contents
Introduction
Who are the decision-makers in a blockchain network?
What is a fork?
Hard fork and soft fork
What is a hard fork?
What is a soft fork?
Hard fork or soft fork, which one has more advantages?
Summarize
Introduction
When you use the electronic banking application on your smartphone, you must have encountered the system prompting you to update. At this time, you usually have to consider and agree to the update before the system can be upgraded. Perhaps your phone will also automatically update without notifying you. After all, software upgrades are a necessary process, and if you do not install the latest version of the software, you may not be able to continue using the related services.
In an open source cryptocurrency system, the situation is quite different. You don't need to read every line of code that makes Bitcoin work, but it's helpful if you can. Because you will find that in a decentralized environment there is no management hierarchy, and there is no bank that can push updates and content modifications to you at will. Therefore, it is a challenge to implement a new feature update in the blockchain network.
In this article, we will explore how to upgrade cryptocurrency networks without centralized authorization management. Therefore, two different mechanisms emerged: hard forks and soft forks.
Who are the decision-makers in a blockchain network?
To understand how forks work, you first have to understand the actors involved in the decision-making process (or governance) of a blockchain network.
In Bitcoin, you can roughly divide participants into three different subsets: developers, miners, and full node users. They are actually nodes participating in and contributing to the network. And like the widely used light nodes (for example, mobile phones, laptops and other wallets), they are not real "participants" to the network.
Developer
Developers are responsible for creating and updating code. With traditional tokens as you know them, anyone can contribute code to the process. The code is publicly available so they can submit changes to other developers for review.
miner
Miners are participants in protecting network security. They run the cryptocurrency’s code and devote computing resources to adding new blocks to the blockchain. For example, in the Bitcoin network, they achieve this through proof of work. Miners will obtain corresponding mining profits in the form of collective rewards.
Full node user
Full nodes are the backbone of cryptocurrency networks. They are responsible for validating, sending and receiving blocks and transactions, and maintaining a copy of the blockchain's data.
Within these different categories of identities, you may find overlap. For example, you can be a developer and a full node at the same time, or a miner and a full node. You can also have all three identities at the same time. But in reality, we believe many cryptocurrency users do not fill these roles. Instead, they choose to use lightweight nodes or centralized services.
With the introduction above, you now also have an in-depth understanding of the responsibilities of developers and miners in the network. Developers are responsible for creating the code, without which you won't be able to run the software and there will be no one to fix bugs and upgrade with new features. Miners are responsible for ensuring network security, and without healthy mining competition, the blockchain can be hijacked or grind to a halt.
However, if developers and miners try to brute force the network to do what they want, there will be consequences. For most users, real control resides with full nodes. They keep the network up and running, allowing users to choose the software they want to run.
Developers are not going to break into your house and threaten you at gunpoint with downloading Bitcoin's core binaries. If the miners adopt a tough attitude and force customers to choose unnecessary changes, then most users may not buy it.
In fact, neither miners nor developers are powerful overlords, but service providers. If a user decides to no longer use the network, the tokens will lose value. The loss in token value will directly affect miners (their rewards are worth less when measured in USD). Likewise, for developers, they can only be ignored by users.
You'll notice that none of this software is proprietary. You can make any changes you want, and if other people are running your modified software, you can interact with each other. In this case, you are essentially creating a new network by forking the software.
What is a fork?
A soft fork is a process whereby the software code is copied and modified. The original project continues to exist, but a new one is created that develops in a different direction. Let's assume that the team at your favorite cryptocurrency content site has a major disagreement about how to move forward. One part of the team may copy the site into another area. However, we envision that they will also publish articles that differ from the original content.
These projects are built on a common foundation and share the same historical data. Just as one road later split into two, their paths diverge from now on.
Note that this type of thing happens all the time in open source projects and has been around long before Bitcoin or Ethereum existed. However, only in the blockchain world, the difference between hard forks and soft forks exists. We will discuss this in detail below.
➠Go to Binance to buy Bitcoin and start your cryptocurrency world!
Hard Fork vs Soft Fork
Although they have similar names and serve the same purpose, hard forks and soft forks are very different. Let us introduce them in detail.
What is a hard fork?
A hard fork is a software upgrade that does not support backward compatibility. Typically, these situations occur when a node adds new rules in a way that conflicts with the rules of an older node. New nodes can only interact with nodes running the new version of the software. As a result, the blockchain split, producing two separate networks: one running according to the old rules, and one running according to the new rules.

Nodes turn blue after upgrading. The previous yellow nodes refused to connect to the blue nodes, but the blue nodes can connect to each other.
Therefore, there are now two networks running in parallel. They will continue to produce blocks and transactions but will no longer work on the same blockchain. Before a blockchain network reaches a fork block, all nodes have the same blockchain (and the history still exists), but after that they will have different blocks and transactions.

Since the same history exists, if you held coins before the fork, you will have coins on both networks at the same time. Suppose you have 5 BTC in hand when the fork occurs at block height 600,000. You can choose to spend the 5 BTC on the original blockchain when the block height reaches 600,001, but the consumption at the 600,001 block height will not be recorded on the newly generated blockchain. Assuming the encryption method has not changed, these 5 tokens will still exist in your private key on the new forked network.
Another example of a hard fork was the one that occurred in 2017, when Bitcoin split into two separate chains, the original Bitcoin (BTC) and the new Bitcoin Cash (BCH). The fork occurred after much debate in the community over block size scaling. Bitcoin Cash (BCH) supporters wanted to increase the block size, while Bitcoin (BTC) supporters opposed the change.
Increases in block size require changes to the rules. This was done before the SegWit soft fork (more on that later), so nodes would only accept blocks smaller than 1MB. If you create a 2MB block, other nodes will refuse to verify it.
Only nodes that have upgraded their software and support block sizes above 1MB will accept these blocks. Of course, this makes them incompatible with previous versions, so only nodes with the same protocol can communicate with each other.
What is a soft fork
Soft fork is a software upgrade method that supports backward compatibility. Upgraded nodes can still interact with non-upgraded nodes. The upgrade method of soft fork is usually to add a new rule to the program, which will not conflict with the previous old rule.
For example, a soft fork can be used to reduce the block size. Let's use Bitcoin as an example again to illustrate this point: there is an upper limit on the block size in the Bitcoin network, but there is no lower limit on the block size. If you only want to accept blocks below a certain size, you can simply reject blocks larger than that.
However, doing so will not automatically disconnect you from the network. You can still interact with nodes that do not enforce these rules, but some of the information they pass to you will be filtered out.
A good example of this is the aforementioned Segregated Witness (SegWit), which occurred shortly after the split of Bitcoin and Bitcoin Cash. Segwit is an update that changes the format of blocks and transactions, and it’s designed in a clever way. Old nodes can still verify blocks and transactions (in formats that do not violate the rules), but for some fields they cannot read them. Only when the node is upgraded to a newer version will some fields become readable and other data can be parsed correctly.

Even more than two years after the activation of Segregated Witness, not all nodes have been upgraded. This has many benefits, such as no network interruptions and no urgency in upgrading.
Hard fork or soft fork, which one has more advantages?
Essentially, these two types of forks have different effects. A contentious hard fork upgrade will split the community in two, but a planned hard fork upgrade allows all participants to freely choose whether to modify the program.
Soft fork is a more stable option. Generally speaking, since new upgrades don't conflict with previous rules, you can only enforce certain restrictions. That said, if you can implement upgrades in a compatible manner, you don't need to worry about the risk of network fragmentation.
Summarize
Hard and soft forks are critical to the long-term success of blockchain networks. They enable changes and upgrades to be made in a decentralized system despite the lack of a central authority.
Forking allows blockchains and cryptocurrencies to integrate more new features as they are developed. Without these mechanisms, we need a centralized system with top-down control. Otherwise, we are stuck with hard-and-fast rules for the life of the software agreement.
➠For questions related to forks, please go to Ask Academy!


