TECHNICAL_DOC // BLOCKCHAIN / ORPHAN-STALE-BLOCKS
ORPHAN /
STALE
BLOCKS
STALE
BLOCKS
When two miners find valid blocks at nearly the same time, the network temporarily holds two
competing chain tips. As subsequent blocks are built, one chain becomes longer and wins.
The losing block — valid but not on the main chain — is called a stale block
(colloquially "orphan"). Its miner receives no reward.
HOW_STALE_BLOCKS_OCCUR
SIMULTANEOUS BLOCK DISCOVERY
Height 840000:
...→ [Block A] ← miner in USA finds this first
...→ [Block B] ← miner in Asia finds this first (same parent)
Both A and B are valid. Propagation delay means:
USA nodes see: ...→ [Block A] as chain tip
Asia nodes see: ...→ [Block B] as chain tip
Network is temporarily split — two valid chain tips exist
RESOLVED BY NEXT BLOCK
RESOLUTION — LONGEST CHAIN WINS
Next block found by a miner building on A:
...→ [Block A] → [Block A+1] ← now longest chain (2 blocks ahead)
All nodes switch to the A chain.
Block B becomes STALE:
- Its transactions return to the mempool
- The miner of Block B loses the block reward
- Confirmed txs in Block B are now unconfirmed again
TERMINOLOGY_CLARIFICATION
Stale vs Orphan — Precise Terminology
IMPORTANT
These terms are often used interchangeably but have distinct technical meanings in bitcoin-core/">Bitcoin Core.
Stale Block:
A valid block that was part of the longest chain at some point,
but is no longer on the main chain due to a chain reorganization.
The parent is known. This is the common "orphan" scenario.
Orphan Block (Bitcoin Core internal term):
A block whose PARENT is not yet known — the node received a child
block before its parent. The node stores it temporarily while
requesting the missing parent via getdata.
Uncle Block (Ethereum term, not Bitcoin):
Not applicable in Bitcoin. Bitcoin has no reward for stale blocks.
In casual usage, "orphan" refers to a stale block. In Bitcoin Core code, an orphan is a block awaiting its parent.
IMPACT_AND_STATISTICS
STALE BLOCK RATE
Pre-SegWit: ~0.3–0.5% of all blocks were stale.
Post-compact blocks (BIP 152): reduced to <0.1%.
Faster propagation = fewer simultaneous discoveries.
1-CONFIRMATION RISK
A transaction with only 1 confirmation can be "unconfirmed" again if its block goes stale.
6+ confirmations make reversal statistically negligible.
mining/">Selfish Mining & Stale Block Manipulation
ATTACK VECTOR
A miner with significant hashrate can strategically withhold a found block to gain an advantage,
causing honest miners to waste work on blocks that will go stale.
Normal mining: broadcast block immediately upon discovery
Selfish mining (theoretical attack):
1. Find block → withhold it (don't broadcast)
2. If honest miners find a competing block → broadcast yours
3. Network switches to your chain → honest block goes stale
4. You saved one block of "work" → effective hashrate > actual
Profitable threshold: ~33% of network hashrate (Eyal & Sirer, 2013)
In practice: extremely difficult and risky — not observed at scale
TERMINOLOGY_INDEX
Stale Block
A valid block whose chain was overtaken by a longer chain. Miner receives no reward. Txs return to mempool.
Orphan Block
In Bitcoin Core: a block whose parent is unknown. In common usage: synonym for stale block.
Chain Reorg
The process of switching from one chain tip to another when a longer chain is discovered.
Selfish Mining
An attack strategy where miners withhold blocks to waste honest miners' work.
Propagation Delay
The time for a block to reach all nodes. Higher delay = higher stale block rate.