Introduction

If an application update window pops up on our smartphone, we activate it without hesitation. Phones can be updated without even notifying the user. After all, updates are necessary—without installing the latest software, you risk disrupting services on your device.

In open source cryptocurrencies, things are different. To work with Bitcoin, you don't need to study lines of code in detail, but it should still be possible. Since there is no single governing body that can carry out updates and make changes at its discretion, adding new features to the blockchain can be quite difficult.

In this article, we will look at how cryptocurrency networks are modernized without the participation of a central governing body. This is why hard forks and soft forks are used.


Who makes decisions on the blockchain network

To understand how forks work, you need to understand who makes decisions (or exercises control) in the network.

There are three groups of participants in the Bitcoin network: developers, miners and full node users, who make the main contribution to the network. Light nodes (i.e. wallets on phones, laptops, etc.) are widely used, but are not “participants” of the network.


Developers

Developers create and update code. Any user with coins can make changes to it, since the code is publicly available and makes it possible to send any suggestions to the developers.


Miners

Miners protect the network. They run the cryptocurrency code and provide the resources to add blocks to the blockchain. For example, the Bitcoin network uses the Proof of Work algorithm for these purposes. For their work, miners receive block rewards.


Full node users

Full nodes are the backbone of a cryptocurrency network. They validate, send and receive blocks and transactions, and also store a copy of the blockchain.


The listed categories of participants may often coincide. For example, a developer can be a full node at the same time, or a full node can be a miner at the same time. Anyone can act as all three or none of them. In fact, cryptocurrency users generally refer to those who do not fulfill any of these roles. Instead, they use lightweight nodes or centralized services.

Taking into account the above, we can agree that decisions on the network should be made by developers and miners. Developers create the code: without them there would be no software and no one to fix bugs or add new features. Miners protect the network: without healthy competition in mining, control of the chain can be seized by attackers.

However, if miners and developers tried to impose their desires on other network participants, nothing would work. Many people believe that real control belongs to full nodes. However, it's all about the seamless network update feature where users can choose which software they want to use.

Developers do not force users to download Bitcoin Core binaries at gunpoint, nor are miners able to issue an ultimatum and make their changes.

These participants are not all-powerful managers - they only support the operation of services. If users lose interest in the network, the value of the coins will drop, which will directly affect the income of miners (their reward in dollars will decrease). As for developers, users can simply ignore them.

The point is that software is not anyone's property. Users can make any changes and interact with those using the modified software. This is done by forking the software and creating a new network.


What is a fork

A fork is the creation of a copy of software and modification of it. At the same time, the original project continues to function, but the fork develops separately in its own direction. Let’s assume that serious disagreements arose within the team of a certain cryptocurrency website regarding further development. Then one part of the team can recreate the site on a different domain, where they will host different content.

Both of these projects are built on the same foundation and share a common history, just as one road splits into two different directions.

Please note that forks can only occur in open source projects, and such cases occurred long before the advent of Bitcoin or Ethereum. However, hard forks and soft forks can only be carried out on blockchain networks. Let's take a closer look at them.


➟ Thinking about where to start working with cryptocurrencies? Buy Bitcoin on Binance!


Hard forks and soft forks

Despite similar names and tasks, hard forks and soft forks are significantly different. Let's look at each of them in more detail.


What is a hard fork

Hard forks are software updates that are incompatible with previous versions. This usually happens when nodes add changes that conflict with the existing rules of older nodes. New nodes can only communicate with nodes running the new version. As a result, the blockchain is split into two separate networks: one with the old rules and one with the new ones.

После обновления ноды становятся синими. Старые желтые ноды отвергают их, а синие соединяются друг с другом.

After the update, the nodes turn blue. The old yellow nodes reject them, and the blue ones connect to each other.


So now the two networks are running in parallel. They will both continue to work with blocks and transactions, but not on the same blockchain. All nodes were running on the same blockchain before the fork was created (this fork will have the same history as the original blockchain), but in the future their blocks and transactions will be different.

форк блокчейна на блоке 600 000.


Since the networks have a common history, user funds are duplicated in the new network if they had coins before the fork. Let's say at the time of the fork you had 5 BTC on block 600,000. Even if you spend those 5 BTC on the old chain in block 600,001, they will remain in block 600,001 on the new blockchain. If the fork uses the original currency, your private keys will also contain funds from the original fork.

An example of a hard fork is the 2017 fork, which resulted in Bitcoin being split into two chains—the original Bitcoin (BTC) and the new Bitcoin Cash (BCH). The fork came about as a result of much debate about the best approach to scaling. Bitcoin Cash supporters wanted to increase the block size, while Bitcoin supporters opposed the change.

The block size can only be increased by changing the rules. This happened before the SegWit soft fork (more on that later), so nodes only accepted blocks smaller than 1 MB. Even a 2 MB block that met all other requirements would still be rejected.

In the fork, only nodes with new software were able to approve blocks larger than 1 MB. Of course, this meant complete incompatibility with the original version, so only nodes with the same modifications could interact.


What is a soft fork

A soft fork is a backwards-compatible update, meaning updated nodes can communicate with older nodes. Usually a soft fork occurs when new rules are added that do not contradict the old ones.

For example, using a soft fork you can reduce the block size. Let's illustrate this with the example of Bitcoin: although there is a maximum block size allowed, there is no minimum block size. That is, to approve blocks smaller than a certain size, you simply need to reject larger blocks.

This will not automatically disconnect you from the network. The softfork nodes will still be able to interact with nodes from the original blockchain - they will simply filter the information they receive.

A good example of a soft fork is the aforementioned Segregated Witness (SegWit) fork, which occurred shortly after the Bitcoin/Bitcoin Cash split. The SegWit update was carefully thought out and changed the format of blocks and transactions. The old nodes could still validate blocks and transactions (the format change was not against the rules), but they simply did not understand them. To read certain fields and analyze additional data, a switch to new software is required.

Даже через два года после активации SegWit не все ноды были обновлены. Обновление имеет свои преимущества, но никакой срочности в этом нет, посколько изменения не оказывают деструктивного влияния на сеть.


Even two years after SegWit was activated, not all nodes have been updated. Upgrading has its benefits, but there is no urgency as long as the changes do not have a disruptive effect on the network.


Hard forks vs soft forks - which is better?

Essentially, each type of fork serves its own purpose. Hard forks born out of disagreement can divide a community, but planned forks allow software to be freely modified by mutual consent.

A soft fork is a milder option. It implies changes with certain restrictions that do not contradict the old rules. In any case, if the update can remain compatible, then there is no need to worry about network fragmentation.


Summary

Hard forks and soft forks are critical to the long-term success of blockchain networks. They allow changes and updates to be made to decentralized systems, despite the lack of a single governing body.

Forks are an opportunity for blockchains and cryptocurrencies to integrate new features as they are developed. Thanks to these mechanisms, the need for a centralized system with vertical management disappears. Without them, the development of blockchains would be hampered by the same rules.