When you pay with cash in a store, you hand over physical coins and notes. It’s just you and the storekeeper. No banks, credit card companies or other middlemen. This is how money has worked for most of human history.
The Double Spend Problem
But when you pay online, or by card in a store (which amounts to the same thing), things have to be handled differently. That’s because the payment involves sending data electronically. Data can easily be copied, raising the problem that the merchant might copy your payment instruction and charge you over and over again. This is known as the Double Spend Problem. You can’t spend the same $10 bill twice, but you could spend the same funds twice electronically.
In the mainstream financial world, this problem is addressed using trusted intermediaries like banks and credit card companies. They manage our accounts for us. When you use a bank to transfer funds to another person, you are not sending them money, you are actually asking the bank to debit your account and credit the recipient’s account.
Conventional ‘solutions’ to the Double Spend Problem are all centralised and trust based. They involve handing over control of our money to other parties – who can then also charge us whatever they want for the service, block or reverse transactions, or even make payments without our consent. What’s more, these companies are what’s known as Single Points of Failure. They are the gatekeepers to our money, and that also means that if they fail for one reason or another – insolvency, mismanagement, a run on a bank, a cyber attack – then you lose access to your money.
It’s nothing like physical cash, over which you have complete control. But until Bitcoin, there was no alternative to trusting a bank or middleman if you wanted to make online payments.
Blockchain: Solving the Double Spend Problem
Bitcoin’s creator, an anonymous developer known as Satoshi Nakamoto, solved this problem in an ingenious way. The Bitcoin white paper describes how a special kind of database called a ‘blockchain’ could be used to allow users to send money directly between each other, much like handing over physical cash, while removing all points of centralisation and trust. (Bitcoin was the first cryptographic currency, or cryptocurrency, to use a blockchain.)
Bitcoin’s blockchain is really a community-run database, maintained by thousands of nodes (computers running the Bitcoin software) distributed around the world. Anyone can add entries to the database, but no one can change existing entries. When you send funds to someone else using Bitcoin, the computers responsible for processing transactions – known as miners – check the blockchain right back to when those coins were first created, tracing them along the chain to your account (or ‘address’) to ensure you really do have the money to transfer to the recipient. If you do, the new transaction is recorded forever on the blockchain. If you don’t, it’s ignored. (You can only spend the funds in an address if you hold the private key – a kind of password that is too long and complicated for anyone else to guess.)
Bitcoin therefore solves the problem of having to trust someone else to keep accounts by throwing open the process of recording transactions to everyone – not just a single, centralised party like a bank. So long as a majority of the network agrees on the contents of the ledger of transactions, there’s no possibility of a malicious user managing to fake a transaction and spend funds they don’t have. Essentially, by trusting everyone, Bitcoin trusts no one.
Keeping the system honest
It’s a little more complicated than this in practice, because it’s not enough simply to trust a large network of computers. A wily attacker might create hundreds or thousands of new nodes, crowding out the honest nodes and allowing the hacker to submit fraudulent transactions successfully. This is known as a Sybil Attack.
Bitcoin deals with this problem by making it expensive to run a node. In order to process a new batch of transactions, a Bitcoin miner must produce the solution to a labour-intensive mathematical problem. It’s a problem so hard that the entire network of thousands of Bitcoin miners, carrying out many trillions of calculations every second, only finds one answer on average every ten minutes. Specialist hardware is required to do this effectively, and in the process, the network as a whole consumes more electricity than Argentina.
It is therefore very expensive to add a new batch of transactions to the blockchain. At the same time, it’s very easy for other nodes to check whether those transactions are valid, since anyone can check the blockchain. Honest nodes are rewarded for this work by receiving newly-minted bitcoins and the fees charged on the transactions they process. But nodes that try to process fraudulent transactions are ignored by the rest of the network. That not only means they pass up the opportunity of earning valuable new bitcoins for their efforts: they have also spent time and money trying to trick the system, all for nothing.
Bitcoin therefore incentivises the network as a whole to join together and act in the interests of the majority. Any single node, or even group of nodes, that tries to trick the rest of the network is penalised financially. It’s far easier to earn money by processing transactions honestly.
Regular users don’t need to worry about running a node, or even how the Bitcoin network operates – just like they don’t need to know about how their smartphone works to use it to browse the web and download apps. The Bitcoin network has never been hacked. Over time, the network has grown, making it so secure that it would now very likely be impossible – or at least prohibitively costly – for anyone to gather the computing power needed to attack it successfully.
Of more concern for day-to-day users is keeping their private keys safe or, if they are holding them on exchanges, ensuring they only use reputable platforms and active two-factor authentication wherever possible. Bitcoin is an extremely robust and secure system, but a (block)chain is only as strong as its weakest link. Rather than attacking the network itself, it’s far easier for hackers to try to trick you into revealing information that can give them access to your crypto.