Skip to main content

Double Spending: What It Is and How Blockchains Stop It

Double spending means paying with the same coins twice. How Bitcoin and Ethereum block it, real 51% attacks, and how many confirmations to wait.

· By ZIPMEX · 16 min read

Double spending is the attempt to pay with the same digital coins twice. On a public blockchain, every full node rejects any transaction that spends coins already spent in the agreed transaction history. So in practice the attack works only one way: the attacker gets that history rewritten. They either get a payment replaced before it is confirmed in a block, or they control enough mining or staking power to reorganise blocks that were already confirmed. Large networks make the second option very expensive. Smaller proof-of-work chains have been hit repeatedly. The most recent widely reported case is a six-block reorganisation of Monero in August 2025.

Why digital money has this problem

A digital payment is just data, and data can be copied. Banks and card networks deal with this by keeping one central ledger that decides which payment came first. The Bitcoin whitepaper (Satoshi Nakamoto, 2008) set out to remove that central party. It states the problem plainly: "The problem of course is the payee can't verify that one of the owners did not double-spend the coin." It also notes that the main benefits of electronic cash "are lost if a trusted third party is still required to prevent double-spending."

The whitepaper's answer is a public, timestamped chain of blocks secured by proof of work, with one rule for disputes: "Nodes always consider the longest chain to be the correct one and will keep working on extending it." In practice, nodes follow the valid chain with the most accumulated work.

How a double spend is attempted

Before confirmation: race and Finney attacks

A broadcast transaction sits unconfirmed until a miner includes it in a block. The Bitcoin Wiki describes two attacks that target merchants who treat an unconfirmed payment as final:

  • Race attack. The attacker pays the merchant and also sends "a conflicting transaction spending the coin to himself" to the rest of the network. If the conflicting transaction is mined first, the merchant's payment becomes invalid.
  • Finney attack. This one requires a miner. The attacker mines a block that pays the coins back to themselves and holds it back. They then pay the merchant with the same coins and release the hidden block once the goods are handed over. The attack is named after Hal Finney, who described it on the Bitcoin forum in 2011.

The Wiki also describes a Vector76 attack, which combines the two and can reverse a payment that has one confirmation.

After confirmation: the majority (51%) attack

If an attacker controls more than half of a network's hashrate, they can mine a private chain that grows faster than the public one. They pay a victim on the public chain and wait until the victim delivers. Then they publish the longer private chain, which leaves out that payment. Nodes switch to the chain with more work, and the payment disappears. The Bitcoin Wiki says such an attack has "a probability of 100% to succeed," and that no number of confirmations can prevent it.

Not every reorganisation is an attack. Short reorgs happen naturally when two miners find blocks at almost the same time. Size and intent make the difference.

How long should you wait before a crypto payment counts as final?

Answer a few questions about the chain, the amount and the attacker to see what the article says about waiting.

  1. Which kind of chain is the payment on?

  2. Is the amount large for you?

  3. Can hashpower for this coin's mining algorithm be rented in amounts close to the chain's total hashrate?

  4. Does the amount matter to you?

  5. How much of the network's hashrate could an attacker plausibly gather?

Wait for finality, about 15 minutes

On proof-of-stake Ethereum, a block finalises in about 15 minutes, once validators holding a two-thirds supermajority of the stake vote for its checkpoint. Reverting a finalised block would cost an attacker at least one-third of all staked ETH through slashing, so for large amounts wait for finality rather than relying on the latest block alone.

Still do not treat an unconfirmed payment as final

Race and Finney attacks work only against payees who accept zero confirmations. The article's finality advice targets large amounts; for a small amount, at least wait until the payment is included in a block, and be aware that only a finalised block carries Ethereum's economic protection.

Consider a payment channel

For frequent small payments, the Lightning Network settles them instantly off-chain. If a channel partner publishes an old, revoked state, the honest party can use a penalty transaction to take the channel's funds. Accepting an unconfirmed on-chain payment instead leaves you open to race and Finney attacks.

About 5 blocks keeps the risk below 0.1%

The Bitcoin whitepaper's table says an attacker with 10% of the hashrate has less than a 0.1% chance of catching up once you wait 5 blocks. The common six-confirmation rule gives roughly a 0.1% success chance against such an attacker. It is a convention, not a protocol rule, and the risk never reaches zero.

About 24 blocks keeps the risk below 0.1%

Against an attacker with 30% of the hashrate, the whitepaper's table needs 24 blocks to keep the attacker's chance below 0.1%. The more hashrate an attacker could gather, the more blocks you need to wait.

Confirmations alone will not protect you

An attacker with more than 50% of the hashrate can outrun any number of confirmations; the Bitcoin Wiki says such an attack has a probability of 100% to succeed. Small proof-of-work chains whose hashpower can be rented have been hit repeatedly. Watch for reorganisations far deeper than normal, which were the visible sign of every attack in the article's table.

This follows the article's general guidance only: it cannot measure a chain's real hashrate or rental market, it gives no confirmation count for any specific coin, and it does not cover wallet, custody or exchange risks.

What actually stops it

Each coin can be spent once

Bitcoin tracks coins as unspent transaction outputs (UTXOs). A transaction uses up specific outputs and creates new ones: the payment, plus change back to the sender. Once an output is spent in the accepted chain, every honest node rejects any later transaction that tries to spend it again. So two conflicting payments can never both be confirmed on the same chain. The only question is which one ends up in the accepted history.

Confirmations make rewriting expensive

Each block mined on top of a transaction is another confirmation. Section 11 of the whitepaper calculates the attacker's chance of catching up. To keep that chance below 0.1%:

Attacker's share of hashrate (q)Blocks to wait (z) for P < 0.1%
10%5
30%24

The widely used rule of waiting six confirmations on Bitcoin is a convention, not a protocol rule. The Bitcoin Wiki's example shows the reasoning: an attacker with 10% of the hashrate, facing a merchant who waits for six confirmations, has a success chance of roughly 0.1%. Bitcoin's finality is probabilistic. A reversal gets less likely with every block but is never mathematically impossible. And if the attacker's share passes 50%, waiting longer stops helping.

Proof of stake adds economic finality

Ethereum switched from proof of work to proof of stake in September 2022. Time is divided into 12-second slots and 32-slot epochs, and according to ethereum.org it "takes about 15 minutes for an Ethereum block to finalize." Checkpoints become final once validators holding a two-thirds supermajority of the stake vote for them. The thresholds, as ethereum.org describes them:

  • With one-third of the stake, an attacker can stop the chain from finalising, though not rewrite it. The protocol's inactivity leak then slowly drains the stake of validators who stop voting.
  • To revert a finalised block, an attacker "would commit to losing at least one-third of the total supply of staked ETH" through slashing.
  • With more than half the stake, an attacker can censor transactions and do short-range reorgs. With two-thirds, they can finalise the chain they prefer.

The protection is not that an attack is impossible. It is that reversing a finalised payment would cost the attacker a very large, provable loss.

Fixing transaction malleability

Before SegWit, a transaction's ID could be changed without invalidating its signature. That confused wallets and services that tracked payments by ID. Segregated Witness (BIP141) moved signature data out of the transaction hash, and the proposal says this makes "nonintentional malleability" impossible. SegWit activated on Bitcoin at block 481,824 on 24 August 2017. This fixed a bookkeeping weakness. It did not change the consensus rules against double spending.

Payment channels with penalties

The Lightning Network moves repeated small Bitcoin payments off-chain into payment channels. If a channel partner tries to cheat by broadcasting an old, revoked channel state, the Lightning specification (BOLT) lets the honest party use a "penalty transaction" that, using the revocation key, "spends all outputs of a revoked commitment transaction." In other words, the honest party can take the channel's funds.

Documented attacks

Every successful majority attack in this table hit a proof-of-work chain with far less hashrate than the largest network using the same mining algorithm.

DateNetworkWhat happenedReported amount
Aug 2025MoneroSix-block reorganisation, about 60 blocks orphaned, after the mining pool Qubic claimed majority hashrateNo double spends reported
6 Aug 2020Ethereum ClassicSecond attack in about five days, reorganising more than 4,000 blocksValue not reported at the time (The Block)
31 Jul–1 Aug 2020Ethereum ClassicPrivate chain published after 3,500+ blocks were mined in about 12 hours, using rented hashpower807,260 ETC, about $5.6 million (Bitquery)
Jan 2019Ethereum ClassicMajority attack with chain rewriteAbout $1.1 million spotted (MIT Technology Review)
Autumn 2018VertcoinSeries of 51% attacksAbout $100,000 (MIT Technology Review)
May 2018Bitcoin Gold51% attack; Bitcoin Gold's team said exchanges, not individual users, lost funds388,000 BTG, about $18 million (reported)
Mar 2013BitcoinAccidental chain split between versions 0.8 and 0.7"At least one large double spend" (BIP 50)

Reading these cases

  • Monero, August 2025. The Block reported on 12 August 2025 that Qubic's founder said the pool had "achieved 51% over Monero." Developer Luke Parker disputed the claim, saying Qubic "may have 51% of the estimated hash rate/mined blocks but less than 51% of overall hash rate." Halborn noted that a six-block reorg "doesn't necessarily mean that a 51% attack succeeded," since a large but non-majority miner can get lucky. Whether Qubic ever held a true majority remains disputed.
  • Ethereum Classic, 2020. Bitquery estimated that the attacker spent about 17.5 BTC (about $192,000) renting hashpower. This shows how cheap majority control of a small chain can be compared with the amount stolen. The block counts and amounts come mainly from that one analysis.
  • Bitcoin, 2013. The fork was not an attack. BIP 50 says the double spend was done by "someone experimenting to see if it was possible" and was "not intended to be malicious." It also shows that very large networks can face double-spend risk during software failures.

Practical checklist

For anyone receiving crypto payments:

  • Don't treat an unconfirmed payment as final if the amount matters to you. Race and Finney attacks work only against payees who accept zero confirmations.
  • Scale the wait to the amount and the chain. Use the whitepaper's table as a guide. The more hashrate an attacker could plausibly gather, the more blocks you need.
  • Be careful with small proof-of-work chains. If hashpower for a coin's mining algorithm can be rented in amounts close to the chain's total, confirmations give much less protection. A majority attacker can outrun any number of them.
  • On proof-of-stake Ethereum, wait for finality (about 15 minutes) for large amounts, rather than relying on the latest block alone.
  • Watch for deep reorganisations. On every chain in the table above, a reorg far deeper than normal was the visible sign of the attack.
  • Consider payment channels for frequent small payments. Lightning settles them instantly off-chain, with a penalty for publishing old channel states.
Updated on Oct 25, 2026