The word 'fork' gets tossed around a lot in the Bitcoin world. Many people use it to mean different things. In today's edition of Bits & Pieces, I'll try to explain what Bitcoin forking is all about.
In the ancient years BC (before cryptocurrency), forking referred to changing a program's source code and creating a new, similar-but-different program. The differences could be as significant or as minor as desired. Today, in most computer-related contexts, the word still means exactly that, but with Bitcoin it is slightly more specific.
Two Kinds of Forking
One type of Bitcoin forking involves changing the code in such a way that an entirely new cryptocurrency is created. It runs on a brand new network with its own miners and a separate blockchain. Tons of people have created forks like this, leading to hundreds of altcoins. Some are nearly identical to Bitcoin, while others have significantly different mining algorithms, coin distribution timelines, etc.
The other type of forking involves changing Bitcoin, but keeping it Bitcoin. This happens when the developers update Bitcoin Core, changing the rules for how blocks can be mined. When this happens, the new wallets and miners still work with Bitcoin, they use the same blockchain, and all of the same bitcoins still exist, but the rules of the network are different. And just to keep things interesting, this 'still-Bitcoin' forking can happen in two different ways.
More Forks: Hard and Soft
The difference between hardforking and softforking really comes down to backward compatibility. On a good day, important changes can be made to Bitcoin without too much disruption. This is called softforking. It does not require everyone to update their software immediately and it does not lead to competing blockchains, which are quite dangerous. The updated software is perfectly tolerant of the old, and vice versa.
Hardforking, on the other hand, is a huge deal. When the core devs make significant changes, sometimes the network's new rules are looser than the old, allowing new nodes to break the old rules. This means that the old nodes will see some of the new blocks as invalid. All users must update their software immediately, to avoid a blockchain split and wallet misbehavior. Hardforking is rare nowadays, because it's risky, and too many people now significantly depend on Bitcoin.
Hardfork Debates
Because of this, hardforking has been the subject of some important debates in the Bitcoin community. Most of the conversation focuses on what changes should or shouldn't be included in the next hardfork. Some people think we should make lots of changes and just get the forks over with. Others favor a more gradual approach, because too many changes at once could cause unpredictable behavior.
This is an important conflict to understand, as it determines the future of Bitcoin. We could leave well enough alone. Or we could take some risks and end up with a much better product. Or we could take some risks and... well... ruin the system.