The Bitcoin network has been functional for 99.9831889470 % of the time since its inception on Jan 3, 2009, 02:54:25 GMT.
Thanks to its four essential pieces of technology that has kept it together:
- Peer to peer network (Gossip protocol)
- Proof Of Work (Hashcash SHA256)
Out of these proof of work consensus, is very special because it allows the Bitcoin network to agree with the state of Bitcoin’s ledger.
We will talk more about it but first, let’s pause for a moment and think:
- Why Bitcoin only succeeded when there have been attempts in the past to make digital currencies.
Well, that’s because all the previous attempts to create digital currencies couldn’t solve the problem of ‘double-spend.’ And Bitcoin solves the problem of ‘double-spend.’
Furthermore, that’s the reason today we are going to talk about ‘what is double-spend and how Bitcoin prevents it?’
So let’s get started:
What Is Double Spending?
Double spend is the act of spending the same money twice.
This problem is a problem of economics and finance which remained unsolved in the digital realm. But now with the advent of Bitcoin and cryptocurrencies, it is solved.
Before the advent of Bitcoin’s blockchain, digital currencies could be copied, and the same coin could then be used over and over. Using the same coin for spending it twice or more is called double spending.
This problem lurked for so long because digital coins or transactions are merely digital files that can be copied and used again. That’s why it is impossible to tell which coins at the time of the transaction aren’t already spent, and that’s why we always had central parties verifying this important thing in previous implementations of digital currencies.
Because of this, there was always a central point of failure and too much authority vested in the party overseeing the operations of digital currencies.
But all this changed in 2009 when Satoshi Nakamoto launched Bitcoin.
Double Spending Example
So simply put spending the same money twice or more is double spending.
But a thing to note, this problem doesn’t exist in the physical realm.
Let’s look at this example:
You go to Starbucks for coffee with your friend and pay $20 for two cups of coffee. The cashier receives the cash and gives you the purchase receipt after verifying the money you handed over to the cashier.
By all means, now that $20 bill is gone and there is no way for you to get it back to spend it somewhere else.
Of course, unless you steal !!
But if we see in the digital realm like Bitcoin, the transactions are just digital files which can be copied and rebroadcasted again to the Bitcoin network. To make the matter more complicated, Bitcoin network doesn’t verify transactions instantly because transactions first go to Bitcoin mempool where they stay in ‘unconfirmed’ state.
So how does Bitcoin solves this problem of being copied thus preventing the ‘double-spend,’ let’s see that:
How Bitcoin Prevents Double Spending?
Bitcoin prevents double spending by maintaining a universal public ledger (blockchain) through proof of work consensus mechanism.
Well, let me simplify it for you.
Bitcoin network’s heartbeats every 10 minutes and new blocks are added to the Bitcoin’s chain.
These blocks contain 100s and 1000s of Bitcoin transactions which are verified and time-stamped by miners. (This process is called Bitcoin Mining which is very costly and energy intensive).
In other words, you can say that Bitcoin miners earn the right to write on the Bitcoin’s blockchain because they perform the energy-intensive process of mining.
Now let say you have 1 BTC that you want to double spend.
You went to a merchant’s shop who accepts Bitcoin and transferred 1 BTC to the merchant’s BTC address for the purchase you made.
Now this transaction goes to Bitcoin mempool- the pool of unconfirmed Bitcoin transactions. (Let say this is transaction A)
Now, almost at the same time, you send the same 1 BTC to another Bitcoin address that you control, and this transaction also goes to Bitcoin mempool. (Let say this is transaction B)
Randomly, the transaction A is first picked up by the miners and gets one or two confirmations while you transaction B hasn’t still got any confirmations yet.
So in this case, you transaction B is ignored by the network, and 1 BTC goes to the merchant who anyways was the rightful owner. (Confirmations, are merely the number of blocks added to the Bitcoin’s blockchain your after your transaction was recorded on the blockchain.)
Now let consider another scenario, you are smart and know a thing or two about Bitcoin mining. So in the other case, you try to trick the noob merchant.
Immediately after making the second transaction, i.e. B, you message you miner friend to include transaction B in the block that he is mining.
In this case, since the transaction B is already picked up by your miner friend, it has higher chances of getting first confirmation, and on the other hand, the noob merchant doesn’t stop you from leaving his store because he isn’t aware of the concept of confirmations.
He is still thinking that his 1 BTC will arrive anytime while your miner friend is already mining the second transaction B, which is ultimately going to your address only.
In this case, when the mining of transaction B is completed, the merchant’s transaction A will anyhow be discarded.
But what if miners picked both transactions at the same time?
Well, in that case, a race between miners will start and the whichever transaction first gets minimum of 6 confirmations will be considered final, and the other will be discarded.
In this case, you might think that it is unfair on the part of merchant because his transaction will not get the required confirmations.
Well, this can very well happen !!
That’s why it is highly recommended for the BTC recipient to wait for ‘6 confirmations’ before finalizing any deal because after ‘6 confirmations’ it is computationally infeasible for anyone to mine the fraudulent transaction.
Plus, after sufficient confirmations, the transaction is recorded on the public ledger which can be viewed by the two or more parties thus they can agree with the state of their transaction because the ledger is now serving as a single source of truth.
So this is how proof of work and cryptography solves the double spending problem of the blockchain.
Conclusion: Double Spending Problem and Cryptocurrencies
Double spending problem is a prevalent problem in cryptocurrencies, and almost all currencies solve it the way Bitcoin solves.
But this problem is not unique to cryptocurrencies as double spending problem can happen in banks also.
But banks are centralized entities; it is quite easy for them to do and come to a consensus about the state of their centralized ledger whereas you need proof of work in Bitcoin.
Moreover, Bitcoin’s transaction layer is irreversible; it doesn’t understand the intent behind transactions, it only understands whether the transaction is acceptable according to the rules of the protocol.
That’s why attackers try to game the Bitcoin’s system but so far they haven’t been successful in doing so.
So that’s all from my side in this Bitcoin 101 series, and I hope this knowledge will help you use Bitcoin safely.
If you liked this article, do share it with others on Facebook & Twitter to keep growing together in the crypto ecosystem !!