When blockchain software is upgraded, the blockchain is split into two chains, one chain following the underlying rules (protocols) of the original software and another following the rules of the new version. This split is called a fork. Due to the decentralized nature of blockchain, users will need to each choose which chain to continue using. Forks may be created to add new functionality or address security concerns.
There are two different types of blockchain forks: soft forks and hard forks.