Confirmations and reorgs: how final is final?

·7 min read·By SSP Editorial Team
SSP Academy cover: blockchain confirmations, reorgs and finality

Confirmations and reorgs: how final is final?

Your transaction confirmed. You saw the checkmark. The money is settled — except that "settled" turns out to be a spectrum rather than a state, and where you sit on that spectrum depends on the chain, the amount, and how much it would cost someone to undo it.

This is one of the few pieces of blockchain mechanics where the details change what you should actually do, so it's worth twenty minutes of your attention.

What a confirmation actually counts

A confirmation is not a stamp of approval from anyone. It's a depth measurement.

When your transaction gets included in a block, that block sits at some height in the chain. Every block mined on top of it buries it one layer deeper. The confirmation count is simply how many blocks are stacked on yours, inclusive of its own.

SSP computes this the standard way: tipHeight - blockheight + 1. That +1 is not an off-by-one error — a transaction sitting in the newest block has one confirmation, not zero. Zero confirmations means it's still in the mempool, broadcast but not yet included anywhere.

The reason depth means anything is that reversing your transaction requires replacing the block containing it, plus every block built on top. Each additional block makes that job harder. Nothing is ever impossible to reverse on a proof-of-work chain; it just gets steadily more expensive, and at some depth the cost exceeds what anyone could gain.

Reorgs are normal, not an attack

Here's the part that alarms people unnecessarily: short chain reorganisations happen routinely, and almost none of them are malicious.

Two miners on opposite sides of the world can solve a block within seconds of each other. For a moment the network genuinely disagrees about which block is the tip. Then the next block lands on one of them, that branch becomes longer, and the other block is orphaned. Any transaction that was only in the orphaned block goes back to the mempool and gets mined again shortly after.

This is the protocol working exactly as designed. It's also precisely why one confirmation is weaker than it looks — a one-deep transaction lives in a block that could still lose a coin-flip.

Deep reorgs are a different animal. Those require either an enormous amount of hashrate or, occasionally, something stranger: Ravencoin's consensus bug forced a rewrite far deeper than any ordinary reorg, not because someone attacked it but because nodes disagreed about what the rules were. That's rare. It's also a reminder that "the chain cannot change" is shorthand, not physics.

Where six confirmations came from

The six-confirmation convention is not a magic number and was never meant as a universal law.

It comes from the Bitcoin whitepaper's own probability calculation: given an attacker controlling some fraction of hashrate, how likely are they to catch up from behind after a given number of blocks? The answer falls off exponentially with depth. Six blocks puts the success probability into negligible territory for an attacker holding a modest minority of hashrate on a chain as large as Bitcoin.

Every part of that italicised clause matters, and this is where people go wrong. Six confirmations on Bitcoin represents roughly an hour of the most expensive computation on earth. Six confirmations on a small proof-of-work chain may represent an amount of hashrate someone can simply rent for an afternoon.

This is not hypothetical. Smaller proof-of-work chains — Ethereum Classic and Bitcoin Gold among them — have suffered real 51% attacks with genuine double-spends against exchanges. The industry response was not to abandon those chains but to raise the confirmation requirement drastically, sometimes into the thousands. That asymmetry is the whole lesson: confirmation depth is only meaningful relative to how much security the chain actually buys per block.

Proof of stake changes the question

On a chain with explicit finality, the model is different in kind, not just degree.

Ethereum's validators periodically vote to finalise checkpoints. Once a checkpoint is finalised — which takes about two epochs, on the order of thirteen minutes — reverting it isn't a matter of out-computing anyone. It requires a very large fraction of all staked ether to have voted for conflicting checkpoints, which is detectable and gets that stake destroyed. The guarantee isn't "this would be expensive to undo", it's "whoever undoes this provably loses an enormous amount of money."

That's a genuinely stronger statement than probabilistic depth, and it's why waiting for finality on Ethereum is a different kind of waiting than counting blocks on Bitcoin. Solana draws a similar distinction between an optimistically confirmed transaction and a fully rooted one.

Practically: on proof-of-work chains you count depth. On proof-of-stake chains you want to know whether the block containing your transaction has been finalised, which is a yes-or-no question rather than a running total.

The asymmetry nobody mentions

Confirmations matter when you are receiving. They barely matter when you are sending.

If you've paid someone, your transaction being reversed by a reorg is mildly inconvenient — it returns to the mempool and confirms again, and the recipient just waits a bit longer. You haven't lost anything.

If someone has paid you, and you hand over goods, release funds, or ship a product on the strength of a shallow confirmation, a reorg means you gave something away for a payment that no longer exists. All the double-spend attacks that have ever mattered worked this way: they targeted parties who acted too early on incoming money.

So the honest rule is simple. When you're spending, one confirmation tells you the transaction is real and you can stop worrying. When you're accepting value from a stranger, the depth you require should scale with the amount at stake and shrink your trust in exactly the chains where blocks are cheap to produce.

What SSP shows you, and what it doesn't

SSP's activity list gives you a binary chip — confirmed or unconfirmed. That's deliberate, because for the overwhelming majority of everyday use the binary is the whole answer. Expanding a transaction row gives you the live confirmation count and block height, computed against the current chain tip.

Now the honest limitation: nothing in SSP gates on confirmation depth. The wallet will not warn you that three confirmations is thin for the amount you just received, and it has no concept of "enough" — it reports the number and leaves the judgment to you. No wallet can really do otherwise, because "enough" depends on what you're about to do with the money, which the wallet cannot know. But it does mean the interpretation is your job, and a green checkmark is not the same claim as "irreversible."

It's also worth remembering that the confirmation count you're reading comes from whatever node your wallet is talking to. During the kind of incident where depth suddenly matters most — a contentious fork, a consensus bug, a chain split — that is exactly when a single source is least trustworthy.

Rules of thumb worth keeping

Zero confirmations is not payment. It's an announcement of intent to pay. For small, low-risk, in-person amounts that may be fine. For anything else it is not a settled transaction.

One confirmation is real but shallow. Fine for spending. Thin for accepting anything meaningful from someone you don't trust.

Six is a Bitcoin-scale convention, not a universal constant. On a chain where hashrate is cheap to rent, six confirmations may be worth very little, and the right number could be orders of magnitude higher.

On proof-of-stake chains, ask about finality rather than counting. Finalised means something categorically stronger than deep.

Scale depth to value. Thirty seconds of patience is cheap. An irreversible mistake is not.

The underlying idea is quietly reassuring once it clicks. Nothing in crypto is final in the way a mathematical proof is final. What you get instead is a cost of reversal that climbs steeply with time, and the ability to decide for yourself how high that cost needs to be before you act. That's a weaker guarantee than most people assume they have — and a much more honest one than any bank will give you about a payment that can still be clawed back months later.

Share this article

Related articles