Orphan Block Meaning
What is an Orphan Block?
An orphan block is a legitimate block with a nonexistent or unknown parent block. It is also known as an orphan, detached block, stale block, or extinct block.
Orphaned blocks were more common in the earlier version of Bitcoin Core software. This was when nodes could accept blocks that lacked information about their parent blocks (they were basically invalid blocks). This is no longer possible in the current versions of the software. However, the term is still widely used to refer to valid blocks disregarded by the main blockchain, despite having data about their ancestry.
How Do Blocks Become Orphaned?
A blockchain is composed of a series (chain) of blocks. One block contains information regarding the previous block. Once it has been added to the blockchain, it passes its information to the next block. The preceding block is the parent block and the new block is the child. Stale blocks are potentially caused by factors such as block size, speed of the node hosting the blockchain copy, network lags, propagation delay, and the length of the blockchain copy.
Detached blocks are produced when two valid child blocks are simultaneously mined or opened from the same parent block. This forces the blockchain to divide into two competing copies of the network until one of the child blocks is abandoned. But because new blocks are constantly generated, miners may add them on top of one of the chains. One chain will eventually grow longer than the other. Thus, nodes in the network discard the shortest chain and adopt the longer one. The orphaned chain can be only a block long or more.
So what happens to the orphaned blocks?
The blocks in the detached chain do not just disappear. Instead, they are sent back to the mempool for validation and to be included in a new chain. Stale blocks happen completely naturally or by chance. In some cases, they can be generated by attackers in an attempt to create a separate valid chain to carry out an attack on a network, such as a 51% attack.