What is an orphan block?
- Author
- CRYPTO PORT Editorial
- Published
- Updated
- Reading time
- 4 min
In short
An orphan block is the common name for a validly produced block that ends up outside the accepted chain. It happens when two blocks appear at almost the same moment and one has to lose. This is normal behaviour for a distributed system, and the discarded block's transactions return to pending.
Key points
- A valid block that the network did not ultimately keep
- Caused by near-simultaneous production plus propagation delay
- Strictly speaking this case is called a stale block
- Its transactions go back to pending and are reprocessed
Definition
A block that was produced validly but was not kept once a longer chain won. Strictly, 'orphan' means a block whose parent is unknown, while a block with a known parent that lost is a 'stale' block.
A block propagates node by node, so another miner can find a block at the same height before the first has spread. For a moment the network holds two candidates. Once a further block is built on one of them, that branch wins and the other is dropped.
The transactions in the dropped block are not destroyed. Most return to the mempool and are included in a later block. If the winning block already contained the same transaction, it is simply confirmed there instead.
Terminology matters here: a true orphan is a block whose parent you do not have, while a block with a known parent that lost the race is a stale block. Bitcoin Core does not retain the former, so almost everything casually called an orphan is really the latter.
Watch out for
- · At one confirmation your transaction may sit in a block that loses, so do not treat it as settled
- · Rewards from a discarded block are never paid, so mining revenue models must exclude them
- · Some explorers hide discarded blocks, which makes histories look inconsistent between sites