Double-spending is a potential flaw in a digital cash scheme in which the same single digital token can be spent more than once.
The prevention of double-spending has taken two general forms: centralized and decentralized.
Centralized is usually implemented using an on-line central trusted third party that can verify whether a token has been spent.
Decentralized was implemented in Bitcoin. It uses a cryptographic protocol called a proof-of-work system to avoid the need for a trusted third party to validate transactions. Instead, transactions are recorded in a public ledger called a blockchain:
“We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work,” wrote Satoshi Nakamoto in Bitcoin’s white paper.
It is, however, possible to double-spend in the Bitcoin network provided one conducts a 51% attack, a race attack, a brute force attack, or a Finney attack. We will cover those in our next posts.