Security & Resilience
The Finney attack, and the zero-confirmation assumption
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.
Related reading
- Security & ResilienceHow the network resists attack, and what happens when it is stressed.
- Can Miners Cheat?What a miner can and cannot do with the block it finds, and why invalid blocks fail.
- Double SpendingHow a double spend works, and why confirmation depth is the defence.
- 51% AttacksWhat a majority of hash rate can achieve, and what it cannot.
- Eclipse AttacksHow a node can be isolated from the honest network, and the defences against it.
- When Your Node Goes OfflineWhy a disconnected node is not a threat, and how it catches up on return.