Skip to content
buybitcoinsmart

Glossary / Mining & consensus

Orphan block

Definition
An orphan block is a block whose parent your node has not seen yet, so it cannot be validated or connected, which is not what most people mean when they say the word.

The word has two lives. In the protocol it describes a block arriving out of order, with no known ancestor to attach it to; in everyday use, and on most block explorers, it labels a valid block that simply lost a race, which is properly called a stale block. Bitcoin Core stopped keeping orphan blocks at all in version 0.10, released in February 2015.

How it works

An orphan block exists only in the gap between receiving a block and knowing where it belongs.

Validation is sequential. To check a block you need the unspent output set as it stood immediately before it, and you build that by applying every earlier block in order. Hand a node a block whose parent is missing and it can verify the proof of work in the header but nothing else: not the fees, not the subsidy, not whether any input was already spent. The block is unverifiable rather than invalid.

Older versions of Bitcoin Core parked such blocks in memory and waited for the missing parent to turn up. That was necessary because blocks were requested by announcement, so a peer could easily deliver them out of sequence. Headers first sync removed the need. A node now downloads and checks the chain of 80 byte headers before it asks for a single block body, which means it always knows where an arriving block belongs and can request bodies from several peers at once without confusion. The orphan block pool was deleted in the same release, and on a modern node a true orphan block is essentially impossible to produce.

One thing did keep the name. Bitcoin Core still maintains an orphan transaction pool for transactions whose inputs it has not seen, holding up to 100 of them by default, on the reasonable bet that the missing parent transaction is seconds behind. So when the word appears in Core's own logs or configuration, it is talking about transactions, never blocks.

Where you see it

The word orphan survives mainly in places that are describing something else.

Block explorers are the biggest source of confusion: several of them publish an orphaned blocks page listing valid blocks that were dropped when a competing block won, and news coverage copies the label. Mining pool dashboards do the same, reporting an orphan rate that is really a stale rate. Altcoin documentation, much of it copied from bitcoin's early wiki, uses the term for both meanings interchangeably.

Bitcoin Core does not. Ask it for the competing branches it knows about and it reports each tip with a status of active, valid fork, valid headers, headers only, or invalid. There is no orphan status, because the situation the word once described no longer arises.

For a reader, the useful test is whether the block in question was ever checked. If somebody can tell you its height, its transaction count and the pool that mined it, the block was fully validated and lost a race, so the word you want is stale.

Orphan block vs stale block

An orphan block cannot be verified because its parent is unknown. A stale block was verified, was completely valid, and was abandoned only because another block of the same height got built on first. Almost everyone who says orphan means stale, including several explorers, so it is worth asking which one a source means before drawing conclusions from it. Neither costs you anything as a user: payments in a dropped block go back to the mempool and are normally mined again within a block or two.

Not to be confused with

Frequently asked questions

Is an orphan block the same as a stale block?

No, although most people use the words interchangeably. An orphan block has no known parent and cannot be checked. A stale block is fully valid and simply lost the race to be part of the main chain, which is what explorers listing orphaned blocks are actually showing you.

Do I lose money if my transaction was in a block that got dropped?

No. Transactions that do not make it into the winning chain return to the mempool and are almost always mined into the next block or two. The only real exposure is treating a payment as final after a single confirmation.

Read next

Related terms

More in Mining & consensus