One of the vital reasons that Bitcoin is so successful is that it has proven that it can retain value very well, a lot like gold. One reason Bitcoin retains value well is that the creator Satoshi Nakamoto eliminated the possibility of double-spending.
Double-spending is just as it sounds; using the same money to pay for two different transactions. Bitcoin avoids the double spending problem by implementing a confirmation mechanism. The confirmation mechanisms rely on the cryptographic algorithms the program uses, and the public ledger of the blockchain.
If you think about trying to double-spend with cash, it would be pretty tricky. But, hypothetically, to double-spend with cash, you would have to use the same bill twice for two different purchases. For example, it would be as if you paid for a coffee with a $5 bill. Then, you managed to take the cash back when the cashier wasn’t looking. And then you used the same $5 bill to buy some donuts.
Early attempts at digital money struggled to overcome the serious problem of double- spending. In fact, before the success of Bitcoin in 2008, there were many attempts to create completely digital cash. They were, however, unsuccessful because they could not properly mitigate the problem of double-spending. As it turns out, it is pretty easy to copy simple electronic bits and reuse them multiple times.
How then did Bitcoin overcome double-spending? Bitcoin’s digital currency seamlessly blends several essential functions that make it nearly impossible to reproduce the same digital transactions after it has already been spent. I will explain why it is “nearly impossible” to reproduce a Bitcoin transaction shortly.
The Elimination of Bitcoin Double-spending:
- Blockchain and hash-function SHA-256
- Confirmation Recommendations
- The Computational Cost of Attacking the System
Blockchain
The foundation of Bitcoin’s construction is blockchain technology. Satoshi did not invent the blockchain, but he was the first one to successfully implement it. The Bitcoin blockchain is a public digital ledger, that is managed by a large collective of decentralized networks. So, each transaction made on the network is recorded on the Bitcoin’s ledger.
Moreover, each transaction is also cryptographically bound to the blocks before and after it. The blocks on Bitcoin’s blockchain are maintained as chronologically-ordered, time-stamped transactions. The ledger continues to increase since its realization in 2009, which adds to its validity.
About every 10 minutes, a new block is added to the Bitcoin blockchain. The program maintains the difficulty rate of addition. Each participating network keeps a copy of each of the blocks on their individual computer.
SHA-256
Another important aspect of the Bitcoin blockchain is the SHA-256 hashing algorithm that the system relies on. Each new transaction relies on the SHA-256 cryptographic hash function. This function works because it uses many many variables, is highly sensitive, and each cryptographic hash is bound to the others in the chain. These features make it computationally impossible to reproduce and reuse the same transaction.
The Confirmation Process
But the ledger and the SHA-256 hash are not the only preventative measures in place to stop Bitcoin double spending!
To send Bitcoin to pay for something, the transaction is transmitted to the network as an unconfirmed transaction. So if you try to quickly resend the same transaction, only the first confirmed transaction is approved. The network rejects the other transaction because it is recognized as a duplicate.
Here’s how that works with the confirmation process:
Confirmations are the blocks of other transactions added to the blockchain. As I mentioned, each block is cryptographically bound to the others in the chain.
Transactions can be simultaneously received by the network. However, the transaction with the largest number of confirmations is the transaction that is added to the blockchain, not both. This is in part because of the time lag.
The current recommended standard is 6 confirmations before a transaction is added to the blockchain. 6 confirmations indicates that after your transaction was added to the blockchain, 6 more blocks of other transactions were added after yours. So the chain is sufficiently long enough to prove your transactions completion and permanent status in the blockchain ledger.
So, if you send the same transaction to two different merchants, and one of them does not wait for a minimum of 6 confirmations, they would be out for their product, as they would never receive that payment.
The Computational Cost of Attacking the System
The reason the Bitcoin system functions is because of the cryptography that Bitcoin relies on. Because each block of data is bound to the next, to change one block is to change them all. This is computationally infeasible. This goes back to what I said about it being “nearly impossible” to duplicate or undo a transaction.
The size of the transactions, the energetic and financial cost, along with time lag to add blocks to the chain, all make duplication's and attacks nearly impossible. However, theoretically, if an attacker had enough computational power to work backward through the blockchain, changing blocks, and maintaining the length of the chain, they could attack the whole system. However, the amount of computational power necessary to do this is truly unreal, and so there has yet to be a successful attack on Bitcoin’s blockchain.
Potential Issues: Attack 51% & Race Attack
If an attacker were able to capture 51% of the hash power of the network, double spending is possible. This is referred to as a 51% attack. In that case, the attackers would conceivably get a hold of at least 50% of the hash power of the network. In doing this, they could temporarily control the network, and control transactions and confirmations.
A Race Attack is another potential concern. This is when an attacker sends the same transaction in quick succession to two different addresses. But as I mentioned earlier, only one of the transactions will be included. Which means the duplicate transaction is automatically rejected.
Avoiding the Problem of Bitcoin Double Spending
To avoid being the victim of a double-spend, make sure to wait for a minimum of 6 confirmations before you accept the conditions of the transaction. As this article explained, you cannot duplicate or forge a Bitcoin transaction, nor can you change the other transactions in the blockchain.
But it is possible for someone to send the same transaction to two different addresses. And if one or both of those recipients does not wait for 6 confirmations from the network, then the attacker will be successful. This is because if the attacker sends the same transaction to different places, and still receives his product from both merchants, he only actually pays for the one of the two. And the network rejects the duplicate transaction.
Remember, cryptocurrencies are irreversible and under-regulated. So once your money is gone, there is no way to get it back. The Bitcoin script and decentralized network are able to solve the problem of Bitcoin double-spending. However, it is up to the user to behave intelligently and use all available precautions.
If you're interested in diving deeper into how Bitcoin works, I'd recommend a book called - 'The Bitcoin Shortcut: Quickly Learn How Bitcoin Works, How to Invest, and Why It’s Changing the World' - and it's available on Amazon here https://amzn.to/3W123H7