• BTC$77,566.00+0.88%
  • ETH$2,257.13+0.97%
  • USDT$1.00+0.05%
  • BNB$702.85+0.52%
  • ICP$2.52-0.98%

Security & Resilience

The Finney attack, and the zero-confirmation assumption

A Finney attack is a double spend that needs no race and no majority. A miner prepares a block that pays the same coins back to itself, waits for a merchant to accept a conflicting payment on zero confirmations, and then releases the prepared block. The attack works only because the merchant accepted the payment before the block existed.

Protocol referenceSource: Finney, H. (2011), Bitcoin Talk forumThe attack is described as a zero-confirmation risk; no price or fee figure is quoted here.

Written by
The Bitcoin Data Guide editorial team
Reviewed by
Protocol review desk
Dates
Published 2026-10-31 · Last reviewed 2026-10-31

Fact

A miner can prepare a block that conflicts with a payment a merchant has already accepted on zero confirmations, and release it to invalidate that payment.

Forecast

The practical risk to any given merchant depends on how much value it releases on zero confirmations and how well it can identify the payer, which the attack model does not measure.

The attack model

The attacker is a miner, and the attack uses the one power a miner has that no one else does: the ability to choose what goes into a block. The miner first sends coins to itself in a transaction and mines a block containing that transaction, but does not publish the block. It now holds a valid block that pays it, ready to release at any moment. The coins it spent are still unspent from the network's point of view, because the block that spends them is private.

The miner then spends the same coins a second time, this time to a merchant, and the merchant sees a valid, well-formed transaction with no conflicting spend on the public chain. If the merchant releases the goods or the service on zero confirmations, the miner has what it wanted. It then publishes the prepared block. The block confirms the payment to itself and conflicts with the payment to the merchant, and because the block is valid and extends the chain, the network accepts it and the merchant's transaction is discarded.

The attack is a double spend, but it is not a race. The miner does not have to outrun the honest network, because the merchant never waited for a confirmation. It does not need a majority of hash rate, because it never competes for the longest chain. It needs only one block, prepared in advance, and a merchant willing to accept a payment before that block is published.

The assumptions the attack needs

The first assumption is zero-confirmation acceptance. If the merchant waits for even one confirmation, the attack fails: the prepared block would have to be published before the merchant's transaction confirms, and once the merchant's transaction is in a block the conflict is resolved against the attacker. The entire attack is a bet that the merchant treats an unconfirmed transaction as final.

The second assumption is that the attacker can mine a block at all. The attack requires the attacker to be a miner, because only a miner can produce the prepared block. A merchant that knows its customer is not a miner, or that a miner would have to be the counterparty, can discount the risk. This is why the attack is described as a merchant risk rather than a network risk: it targets a specific counterparty, not the ledger.

The third assumption is that the merchant cannot identify the attacker. The prepared block pays the attacker, so the coins are traceable to the address the attacker controls, and the merchant that recorded the payer's identity has a record of who took the goods. The attack is profitable only when the value released exceeds the cost of being identified and refused service in future.

What the defence actually is

The defence is confirmation depth, and it is a decision the merchant makes rather than a rule the protocol enforces. A merchant that waits for one confirmation has closed the Finney attack, because the attacker's prepared block can no longer conflict with a transaction that is already confirmed. The cost of waiting is latency, and the merchant trades that latency against the value at risk. A coffee purchase and a car purchase do not warrant the same number of confirmations.

The attack is worth understanding because it is the cleanest illustration of why "unconfirmed" is not the same as "settled". The double spending page sets out the confirmation-depth argument in full, and the race attack page covers the variant that does not require the attacker to be a miner.

Sources

Finney (2011)
The original forum description of the attack that now carries his name.
Nakamoto (2008)
Bitcoin: A Peer-to-Peer Electronic Cash System, section 8 — the confirmation-depth argument the attack sidesteps.