Bitcoin is gaining rapid popularity and adoption across the world. It redefines the way we use money as the world’s first fully functional digital currency.
It may surprise you to know that even before bitcoin, there were attempts to create a sustainable digital monetary system. But all these attempts failed because an obvious problem with digital money is that transactions can be copied and spent twice.
What Does Double Spending Mean?
Double spending means spending the same money twice.
But Bitcoin is digital money, not physical cash. Hence, bitcoin transactions are likely to be copied and rebroadcasted. This opens the possibility that the same BTC could be spent twice by its owner.
How?
When you shop in the market and make payment with cash payment will be instantly approved and verified by another person. But with digital currency such as BTC, this could lead to double spending if the verification mechanism is lacking.
Anyone can just copy this digital money and pay elsewhere.
And here lies the unique invention…
Bitcoin, although a digital currency, solves the problem of being copied and spent twice.
How Bitcoin Is Handling The Double Spending Problem
Bitcoin manages the double-spending problem by applying an approval mechanism similar to the traditional cash money system and maintaining a universal ledger (called a“blockchain”).
Bitcoin’s blockchain maintains a chronologically sequential, time-stamped book of transactions from the beginning of its operation in 2009.
Every 10 minutes, one block (i.e. a group of transactions) is added to the ledger. And all the nodes in the Bitcoin network hold a copy of this global ledger (blockchain).
Let’s see how the Bitcoin network curbs double spending:
Let’s suppose you have 1 BTC to try to spend twice.
1 you made the BTC transaction to a trader. Now, to try and trick the trader, you re-sign and send the same 1 BTC to another bitcoin address.
Both transactions fall into the unconfirmed transaction pool. But only your first transaction received approval and was confirmed by the miners on the next block. Your second transaction failed to get sufficient approval because the miners judged it to be invalid, so it was pulled from the network.
But wait … what if both transactions were taken by the miners at the same time?
When miners withdraw transactions from the pool at the same time, whichever transaction receives the maximum number of approvals from the network is included in the blockchain and the other is discarded.
You can say this is unfair to the trader as they may fail to receive transaction approvals. Yeah, that could happen!!!
Traders are therefore advised to expect at least 6 approvals.
There is “6 approvals” simply means that after one transaction is added to the blockchain, another block 6 containing several other transactions is added after that.
“Approvals” are nothing more than more blocks with more transactions added to the blockchain. Each process and blocks are mathematically related to the previous one.
All these approvals and transactions are time-stamped on the blockchain, making them irreversible and impossible to tamper with.
So if a trader gets his / her minimum number of approvals, he/she may be positive that he/she was not spending a couple by the shipper.
Why can the Trader be sure?
To be able to double that money, the sender has to undo and reverse all transactions in the 6 blocks added after their transaction, which is computationally impossible.
How Double Spending Attacks Could Happen
- Attack 51%
If somehow an attacker captures 51% of the network’s hash power, it could be double-spending.
“Hybrid power” means computational power that validates operations and blocks. If an attacker has that control, he or she can reverse any transaction and make a special blockchain that everyone will think of as real.
But there has been no such attack so far because controlling 51% of the network is high-cost intensive. It depends on the current difficulty of mining, the price of hardware, and the cost of electricity, all of which are not possible to achieve.
- Race attack
When an attacker sends the same money quickly to two different addresses, the obvious conclusion is that only one will be included.
Now, if you’re not waiting for payment approvals as a trader, then in a case like this, you have a 50% chance of double-spent money (and you won’t get that money).
Let’s see how…
Your customer may trick you if he/she sends the same coins again to his / her address.
Once the customer has made both transactions, both transactions go to an unverified transaction pool. Which process is first verified and 6 approvals are accepted and the other is discarded.
As a trader, you can get 6 approvals first, but if the attacker gets the approvals first, you won’t get your money. That’s why he’s said to be waiting for at least 6 approvals.
So far, no such attack has been successful in Bitcoin’s 8-year history. The bitcoin mechanism of keeping a universal transaction book based on approvals has yet to be tricked.