A blockchain fork can be described as a unique method of version upgrade specific to blockchain networks. Applications like WeChat and Taobao, which we use in our daily lives, are centralized. Periodically, the creators of these apps, such as Tencent and Alibaba, upgrade the programs to add new features or fix bugs.
When these centralized apps are upgraded, teams like Alibaba or Tencent complete the code and deploy it on their backend servers. The servers are upgraded first, and then users can update the client-side application. Ultimately, the content of these upgrades is uniform, decided by the centralized company, and all users upgrade to the same version.
In contrast, a blockchain system is a decentralized database that anyone can participate in. Its code is open-source, and the entire network is decentralized. This means there is no centralized company to make upgrade decisions or define version changes—there isn’t even a central server.
Therefore, when a blockchain undergoes a version upgrade, it requires a completely different approach compared to centralized products. This is where forks come into play.
Although blockchains lack centralized maintenance or a central server, anyone can participate. This means that during a version upgrade, the changes are collectively decided by the participating miners. Disagreements among miners can even lead to multiple versions, unlike the internet, where a single entity dictates upgrades without alternatives.
Additionally, blockchains have clients (nodes), each connected to the large distributed database. Data is packaged into blocks and linked together to form a chain structure.
The principle works like this: When a blockchain undergoes a version upgrade, the clients initiate the upgrade. Users can download, install, and upgrade the software within their respective communities. The upgraded clients then reconnect to the blockchain network to process and share data.
During the upgrade process, there is inevitably a period where old and new versions coexist. When these versions process data, the existing blockchain splits. Starting from a specific block, it connects to two different versions of processed blocks, which then link to new blocks, forming two separate chains. It’s like branches on a tree—they share the same trunk (the data before the split) but diverge afterward.