A fork is said to have happened when there is a conflict among the nodes regarding the validity of the blockchain, that is, more than one blockchain happens to be in the network. There are three kinds of fork: regular, soft, and hard.
A regular fork is said to be happening when there are two or more blocks at the same height. It is a temporary conflict and is resolved automatically. This is resolved by nodes by selecting the most accurate blockchain. For example, in proof-of-work, if two miners mine a block at the same time then it creates a regular fork. And, this is resolved by selecting the blockchain with the highest difficulty as the most accurate one.
A soft fork, by contrast, is any change to the blockchain protocol that's backward- compatible. Say, instead of 2 MB blocks, a new rule might only allow 1 MB blocks. Non-upgraded...