The Double Spending Problem – Bitcoin’s Solution to the Internet of Money
The Information Age
Back in the ’90s, when the Internet started to come around, it showed a lot of promise. Among people technically equipped to handle the innovation, it seemed like a new age was about to dawn. The ability to transfer information at speeds that were unprecedented, along with the fact that it was completely free of centralized hierarchy, portrayed a sense of liberation for millions. The advent of the Internet quickly came to be known as the “Age of Information”.
The Internet handled the flow of information unlike any other information infrastructure humans had ever designed. Through decades of innovation in computer systems, distributed technologies and information theory, we humans had finally devised an infrastructure that handles the flow of information with great efficiency, which only grew further as more people joined the network. By copying files from one node to another, the speed of information transfer was increased by several orders of magnitude. The Internet connected not just a village or town, city or country, but the entire world.
What the Internet Couldn’t Do
The Internet is literally a copying machine. It was built on the TCP/IP protocol, which is a set of rules for the propagation of information from one node in the network to another. How the internet achieves inter-connectedness is by copying any text or file that needs to be sent, breaking it down into small packets and transferring them to the final destination through other nodes in the network. Even if some information was lost along the way, it could be recovered as only a copy of the initial information was sent. This quickly revolutionized the world and it developed into what we know today, as the Internet.
Yet, there remained a very crucial problem that none initially realized – the transfer of information that shouldn’t be copied. Say Alice wanted to send $10 to Bob, who was on the other side of the world. With the infrastructure of the internet, it was a tough task. The Internet would copy the $10 from Alice and send it to Bob, meaning that at the end both Alice and Bob would have the $10. Somehow, both Alice and Bob ended up having $10, although only one of the 2 of them should have had the $10. If a person gives another person something valuable, only one person should end up having it, and not both.
This problem, of transfer of value over the Internet, quickly came to be known as the Double Spend Problem.
Solving the Double Spend Problem
The Double Spend Problem is a flaw in transferring value over the Internet. It describes the difficulty of verifying the ownership of a digital token in a system. To transfer value, one has to transfer the entire ownership of the asset, without having any trace of ownership to the initial holder. This problem prevailed on the Internet, which was ultimately capitalized by Centralized Corporations, who saw this as an opportunity.
Centralized Entities such as Google, Facebook, MasterCard, Visa, etc., built their entire business exploiting this problem. They portrayed themselves as Trusted Agents, who maintained centralized ledgers allowing persons to verifiably send value over the internet, for a fee.
Bitcoin’s Solution to the Double Spend Problem
In 2008, Satoshi Nakamoto (a pseudonym) recognized this problem and put forward his solution for two of the biggest problems on the Internet: Double Spend Problem and the Byzantine General’s Problem. His solution proved to be a revolution, as it effectively managed the flow of value without the loss of trust.
Bitcoin uses a consensus mechanism known as Proof-of-Work, to avoid the need for a centralized party like the ones mentioned above. Instead of requiring a trusted third party to verify that transactions are not double-spends, a decentralized group of individuals known as miners perform this task. All Bitcoin transactions are also included in a shared public ledger known as a blockchain, which ensures that it can be proven that any party wishing to spend bitcoins has those bitcoins.
To show an example of the solution, imagine that you have 1 BTC and you attempt to spend it twice in two separate transactions. You could attempt to do this by sending the same BTC to two separate bitcoin wallet addresses. Both of these transactions will then go into a pool of unconfirmed transactions that will be taken up by miners. The first transaction would be approved via a confirmation mechanism and then verified as new blocks are mined. However, the second transaction would be recognized as invalid by the confirmation process and would not be verified.
If both transactions are pulled from the pool for confirmation simultaneously, the transaction with the highest number of confirmations will be included in the blockchain, while the other one will be discarded.
This elegant and simple solution to the Double Spend Problem has brought immense innovation in the world of the Internet. Finally, a mechanism was developed that did not betray the initial promise of the Internet – Decentralization. Bitcoin’s solution to the Double Spend Problem has since been copied and tweaked for thousands of times in other applications that involve the transfer of value.