A large part of the mainstream blockchain ecosystem relies on miners. Mining new blocks keeps the system running. Problems arise, however, when two or more miners mine a new block at a similar time. In this event, only one block will prevail as the block added to the main chain.
While they may look deceptively similar, two blocks of the same kind may differ from one another in terms of how they are treated by various blockchain protocols. There are three major types of such blocks that you may come across, namely orphan, uncle and stale blocks.
There is a lot of confusion surrounding these blocks, and one type is often mistaken for another. As a result, blocks that are actually stale blocks are often referred to as orphan blocks. This article aims to shed light on this topic. Once you have finished reading, you will be able to tell whether a discarded block is an orphan, an uncle or a stale block.
Orphan, uncle and stale block essentials
- Orphan, uncle, and stale blocks are blocks that do not form part of the main chain.
- Orphan blocks are not valid since their parent block is unknown.
- Uncle blocks are valid since their parent block is known.
- Uncle blocks are rewarded on the Ethereum blockchain.
- Stale blocks are valid but are no longer part of the main chain.
Orphan blocks
Bitcoin was the first-ever blockchain, so it makes sense that blocks that are no longer part of the main chain debuted there. Let us take a look at how a block becomes orphaned on the Bitcoin blockchain.
In the mining process, a time lag in the acceptance of a given qualifying block may lead to blocks not being accepted in the blockchain. If another qualifying block is processed without lag, the first qualifying block is rejected, or orphaned. While valid and verified, orphan blocks have no known parent or preceding block.
This means that a transaction might already have had a confirmation, but that still does not guarantee its finality. Once the block with that transaction is recognized as an orphan block, the transaction will go back to the memory pool. It will only be confirmed as it accumulates sufficient confirmations in the blocks to follow.
Uncle blocks
Blocks in the blockchain that do not count as a part of the main chain are regarded differently across various blockchains. One such type of blocks are called uncle blocks in the Ethereum blockchain. They are sometimes also called aunt or ommer blocks. The latter is just a gender-neutral expression for the same phenomenon.
Whereas uncle blocks do not appear on the Bitcoin blockchain, and surface either as orphan or, as we shall see later, stale blocks, they are quite common on Ethereum. Since block time on Ethereum is only about 15 seconds, more than one miner often produces a completely legitimate and valid block at the same time. In these cases, each successful miner receives a portion of the mining reward and all the transactions in their blocks are considered valid. However, only the block that demonstrates the most difficulty (it has the best proof of work) continues the main chain. The rest become uncle blocks.
Once the Casper protocol is fully implemented, uncle blocks might actually contribute to the weight of a block branch, making it heavier. As a result, a branch with an uncle block will be more likely to be adopted as the main chain than a branch with no uncles.
Stale blocks
The third special kind of blocks presented in this article are stale blocks. Seeing how they are most often mistaken for orphan blocks, some clarification is in order. Neither orphan nor stale blocks make up part of the longest valid chain. For orphan blocks, this is due to its parent being unknown. For stale blocks, by contrast, it is because that part of the chain is no longer the longest and most difficult to recreate (it does not have sufficient proof of work).
Put simply, stale blocks are well-formed blocks that are no longer part of the longest (in terms of complexity) and most well-formed blockchain. If, for instance, you or your mining pool forked the blockchain and demonstrated the proof that you have done the most work (meaning your chain would be most difficult to mine), you would establish a new main chain. The miners who failed to switch to your chain would be working on stale blocks. Due to that, they would not not be eligible to receive a mining reward.
Why do these block types matter?
For the reasons specified above, orphan, uncle and stale blocks are important for miners and developers. After all, they shape blockchains and affect their security in terms of double-spending attacks. However, even a mere trader should be familiar with these concepts. It is important that everyone should only trade what they understand.