Content

  • Introduction

  • Who makes the decisions in a blockchain network?

  • What is a fork?

  • Hard forks vs. soft forks

    • What is a hard fork?

    • What is a soft fork?

  • Hard forks vs. hard forks soft forks – which is better?

  • Final considerations


Introduction

When you're notified of an update to your digital banking app on your smartphone, you probably don't think twice about accepting it. Maybe your phone updates automatically without you noticing. After all, it is a necessary process – if you don't install the latest version of the software, you run the risk of not being able to use its services when you need it.

However, when it comes to open-source cryptocurrencies, it is different. You don't need to read every line of code in the Bitcoin system to use it, but having the option to do so is important. There is no hierarchy and no bank that can simply send updates and make changes as it sees fit. Therefore, implementing new features in blockchain networks can be a challenge.

In this article, we will discuss how cryptocurrency networks can be updated despite there being no central authority. For this, two different mechanisms are used: hard forks and soft forks.


Who makes the decisions in a blockchain network?

To understand how forks work, it is important to first understand the participants involved in the network's decision-making (governance) process.

In the Bitcoin system, we can distinguish three subsets of participants – developers, miners and full node users. These are the parties that actually contribute to the network. Light nodes (such as wallet applications on cell phones, laptops, etc.) are widely used, but they are not really “participants” when it comes to the functioning of the network.


Developers

Developers are responsible for creating and updating code. Considering a typical coin, anyone can contribute to the process. The code is publicly available, meaning you can submit changes for other developers to review.


Miners

Miners are responsible for securing the network. They run the cryptocurrency code and dedicate resources to adding new blocks to the blockchain. On the Bitcoin network, for example, they do this through Proof of Work. Miners are rewarded for their services through block rewards.


Full Node Users

Full nodes are the core of the cryptocurrency network. They validate, send and receive blocks and transactions. Furthermore, full nodes also maintain a copy of the blockchain.


It is common to find overlaps in these categories. You could, for example, be a developer and a full node user at the same time. Or a miner and a full node user. It is possible to act in all three categories or none. In fact, many cryptocurrency users do not perform any of these roles. Instead, they choose to use light nodes or centralized services.

Looking at the descriptions above, we can be convinced that it is developers and miners who make network-related decisions. Developers create the code – without them, there would be no software running and no one to fix bugs or add new features. Miners protect the network – without healthy mining competition, the chain can be stolen or grind to a halt entirely.

However, if these two categories tried to force the rest of the network to follow their wishes, it wouldn't work very well. Many consider that power over the network is, in reality, concentrated in full nodes. Probably because the network is opt-in, meaning users can choose which software they want to run.

Developers don't break into your house armed and force you to download Bitcoin Core binaries. If miners adopt an authoritarian stance forcing unwanted changes from users, users will simply leave the network.

These participants are not sovereigns – they are service providers. If people decide not to use the network, the currency will lose its value. The loss of value directly affects miners (their rewards are worth less when denominated in dollars). As for developers, they can simply be ignored by users.

As we can see, it's not like the software owns the network. You can make whatever changes you want, and if other people run your modified software, everyone can maintain the connection. In this case, you would have forked the software and created a new network in the process.


What is a fork?

When software is forked, it is copied and modified. The original project continues to exist, but separately from the new one, which takes a different direction. Suppose the team at your favorite website, in terms of cryptocurrency content, has a big disagreement. One part of the team can replicate the site to a different domain. However, after the split, they would post different content than the original website.

The projects have a common basis and share part of their history. Just like a road that splits into two, there is now a permanent divergence in the paths of each project.

Note that this type of thing happens a lot in open-source projects and has been happening long before the emergence of Bitcoin or Ethereum. However, the distinction between hard forks and soft forks is almost exclusive to blockchain environments. Let's discuss this a little more.


➠ Thinking about investing in cryptocurrencies? Buy Bitcoin on Binance!


Hard forks vs. soft forks

Despite having similar names and essentially the same purpose, hard forks and soft forks have significant differences. Let's evaluate each one.


What is a hard fork?

Hard forks are software updates that are incompatible with previous versions. Typically, it occurs when nodes add new rules that conflict with the rules of older nodes. The new nodes are only able to communicate with others that operate the new version. As a result, the blockchain splits, creating two distinct networks: one with the old rules and one with the new ones.


Os nodes ficam azuis quando são atualizados. Os nodes amarelos (mais antigos), os rejeitam, enquanto os azuis se conectam entre si.

Nodes turn blue when they are updated. The yellow nodes (older) reject them, while the blue ones connect to each other.


So now there are two networks running in parallel. Both will continue to propagate blocks and transactions, but they are no longer working on the same blockchain. All nodes shared the same blockchain up until the fork point (this history remains unchanged), but after that, they will have different blocks and transactions.


fork da blockchain no bloco 600.000.


Considering this shared history, if you have held coins since before the fork, you will have coins on both networks. Suppose you have 5 BTC when a fork occurs at block 600,000. You could spend these 5 BTC on the old chain, on Block 600,001, but they will not be spent on Block 600,001 of the new blockchain. Assuming there was no change in encryption, your private keys still hold five coins on the forked network.

An example of a hard fork was the one in 2017 that divided the Bitcoin chain into two – the original, Bitcoin (BTC), and a new one, Bitcoin Cash (BCH). The fork occurred after much discussion about the best approach to scalability. Bitcoin Cash proponents wanted to increase the block size but members of the original Bitcoin network opposed the change.

An increase in block size requires modification of the rules. This was before the SegWit soft fork (we'll discuss this shortly), so nodes would only accept blocks smaller than 1 MB. If you created a 2 MB block that would be valid, other nodes would reject it due to its size.

Only nodes that made the software change to allow blocks larger than 1 MB could accept these blocks. Of course, this would make them incompatible with the previous version, therefore, only nodes with the same protocol modifications could communicate.


What is a soft fork

A soft fork is an update that is backwards compatible, meaning updated nodes can still communicate with those that have not yet updated. In a soft fork, a new rule is usually added that does not conflict with the previous rules.

For example, a block size reduction can be implemented through a soft fork. Using Bitcoin as an example again: although there is a limit to the maximum size of a block, there is no limit to the minimum size. If you only want to accept blocks smaller than a specific size, simply reject larger ones.

However, this does not automatically disconnect you from the network. You still communicate with nodes that haven't implemented the new rules, but some of the information they transmit to you is filtered.

A good real-life example of a soft fork was the aforementioned Segregated Witness (SegWit), which occurred shortly after the Bitcoin/Bitcoin Cash split. SegWit was an update that changed the format of blocks and transactions, but it was meticulously designed. The old nodes could still validate blocks and transactions (the update didn't break the rules), but they just didn't fully understand them. Some fields could only be read when nodes switched to the latest software, which allowed additional data analysis.


Mesmo dois anos após a ativação do SegWit, nem todos os nodes foram atualizados. A atualização completa apresenta algumas vantagens, mas não há urgência, já que não se tratam de mudanças que prejudicam o bom funcionamento da rede.


Even two years after SegWit was activated, not all nodes were updated. The complete update has some advantages, but there is no urgency, as these are not changes that harm the proper functioning of the network.


Hard forks vs. hard forks soft forks – which is better?

Fundamentally, the two types of forks have different purposes. Controversial hard forks can divide an entire community, but well-planned ones provide freedom to modify the software when everyone agrees.

The soft fork is a less radical option. In general, the possibilities are more limited, as new changes cannot conflict with existing rules. That said, if your update can be crafted in a way that remains compatible, there is no worry of network fragmentation.


Final considerations

Hard forks and soft forks are crucial to the long-term success of blockchain networks. They enable changes and updates in decentralized systems, even in the absence of a central authority.

Forks allow blockchains and cryptocurrencies to integrate new functionality as they develop. Without these mechanisms, we would need a centralized system with top-down control. Otherwise, we would be stuck with exactly the same rules for the entire time the protocol existed.


➠ Questions about forks? Access Ask Academy!