Overview
Double-spending is the unauthorized spending of the same money (either digital or conventional) more than once. As with counterfeit money, double-spending leads to supply inflation by creating a new amount of copied currency that did not previously exist. It can also devalue the currency and diminish user trust in the currency.
There are many fundamental cryptographic techniques to prevent double-spending while preserving anonymity in a transaction, including the introduction of a centralized authority (proof-of-authority) for blind signatures and, particularly in offline systems, secret splitting. Other methods to mitigate the double-spend problem include decentralized consensus protocols such as proof-of-work and proof-of-stake.
Centralized digital currencies
Prevention of double-spending is usually implemented using an online central trusted third party that can verify whether a token has been spent. This normally represents a single point of failure from both availability and trust viewpoints.
Decentralized digital currencies
In a decentralized system, the double-spending problem is significantly harder to solve. To avoid the need for a trusted third party, many clients must store compatible copies of a public transaction ledger. As transactions (requests to spend money) are broadcast, they will arrive at each client at slightly different times. If two transactions attempt to spend the same tokens, each client will consider one transaction to be valid while rejecting the other transaction. Conflicting transactions or blocks will cause a chain-split.
Decentralized systems reduce the risk of double-spending by using consensus protocols where clients agree on which is the valid chain, also known as the canonical chain. Two notable types of consensus mechanisms are proof-of-work and proof-of-stake.
By 2007, a number of distributed systems for the prevention of double-spending had been proposed.
3 sources for this section
- 1Double-spending — Wikipedia, revision 1365268963
- 3Jaap-Henk Hoepman (2008). "Distributed Double Spending Prevention". arXiv:0802.0832v1 [cs.CR].
- 4Osipkov, I.; Vasserman, E. Y.; Hopper, N.; Kim, Y. (2007). "Combating Double-Spending Using Cooperative P2P Systems". 27th International Conference on Distributed Computing Systems (ICDCS '07). p. 41. CiteSeerX 10.1.1.120.52. doi:10.1109/ICDCS.2007.91. S2CID 8097408.
Proof-of-work
The cryptocurrency Bitcoin implemented a protocol to address the double-spending problem in early 2009. It uses a proof-of-work consensus mechanism where transactions are batched into blocks and chained together using a linked list of hash pointers (blockchain). Any miner can produce a block after winning a lottery race that's determined by finding a valid hash of the block with a sufficient number of leading zeroes.
Bitcoin's proof-of-work protocol has probabilistic finality where transactions are never technically "final" because a conflicting chain of blocks can always outgrow the current canonical chain. However, as blocks are built on top of a transaction, it becomes increasingly costly and thus unlikely for another chain to overtake it. Because competing chains and reorgs can arise naturally, it is recommended that participants wait a number of blocks (i.e. "confirmations") before accepting the probabilistic finality of the transaction.
The more confirmations a participant waits, the less risk of encountering a reorg or double-spend.
Not waiting for sufficient confirmations (race attack)
Proof-of-work blockchains naturally allow for blocks to reorg and thus have probabilistic finality. Competing miners race to submit blocks and build the longest chain. If a competing miner takes over as the longest chain, the blocks of the losing chain are reorged and no longer considered canonical. Any client or merchant that doesn't wait for a sufficient number of confirmations is at risk of experiencing a double-spend if the tokens they received are reverted during a natural reorg.
3 sources for this section
- 1Double-spending — Wikipedia, revision 1365268963
- 5Prypto (25 February 2016). Bitcoin for Dummies. John Wiley and Sons. pp. 142–144. ISBN 978-1-119-07613-1. Retrieved 13 December 2025.
- 6Ruj, Sushmita; Kanhere, Salil (7 March 2024). Blockchains: A handbook on Fundamentals, Platforms and Applications. Springer. pp. 87–89. ISBN 3031321464. Retrieved 13 December 2025.
The source notesEvidence & further reading6 sources
- Double-spending — Wikipedia, revision 1365268963 Wikipedia contributors · Reference source · accessed 2026-09-22
- Mark Ryan. "Digital Cash". School of Computer Science, University of Birmingham. Retrieved 2017-05-27. cs.bham.ac.uk · Reference source · link imported 2026-09-22
- Jaap-Henk Hoepman (2008). "Distributed Double Spending Prevention". arXiv:0802.0832v1 [cs.CR]. arxiv.org · Reference source · link imported 2026-09-22
- Osipkov, I.; Vasserman, E. Y.; Hopper, N.; Kim, Y. (2007). "Combating Double-Spending Using Cooperative P2P Systems". 27th International Conference on Distributed Computing Systems (ICDCS '07). p. 41. CiteSeerX 10.1.1.120.52. doi:10.1109/ICDCS.2007.91. S2CID 8097408. citeseerx.ist.psu.edu · Reference source · link imported 2026-09-22
- Prypto (25 February 2016). Bitcoin for Dummies. John Wiley and Sons. pp. 142–144. ISBN 978-1-119-07613-1. Retrieved 13 December 2025. google.com · Reference source · link imported 2026-09-22
- Ruj, Sushmita; Kanhere, Salil (7 March 2024). Blockchains: A handbook on Fundamentals, Platforms and Applications. Springer. pp. 87–89. ISBN 3031321464. Retrieved 13 December 2025. google.com · Reference source · link imported 2026-09-22
Selected and reformatted from Double-spending, by its contributors, under . Revision 1365268963. Sections and formatting have been shortened; the linked revision provides the full context and contributor history. This reference text remains under the same license. Its additional citation links are imported from that revision and have not been independently checked here.