Bitcoin solves a number of fundamental problems in financial services. Bitcoin was designed to:
- Be a form of money that was inflation-resistant. There is a limited supply of 21 million bitcoins. Unlike traditional fiat money, no additional bitcoins can be created by any authority based on economic conditions that the authority wants to control.
- Be a form of money that can be programmed to execute payments between multiple parties based any any financial contracts they agree between themselves, without an intermediary being required.
- Be a payment system that is peer-to-peer and that does not need a bank or any other financial intermediary.
- Be a payment system that can create the trust between participants. In traditional payments this trust would normally be provided by central authorities and a variety of intermediaries who are legally mandated to ensure that people’s money is safely transferred between payer and payee.
- Be a payment system that is borderless/transnational and that cannot be controlled, influenced or censored by any regulatory body anywhere in the world.
Understanding today’s payment system challenges is most likely the easiest starting point to understand why Bitcoin was designed the way it is. It also provides the platform to demonstrate why the blockchain is only one of the foundational technologies that truly gives Bitcoin payments its magic.
Payment system challenges that Bitcoin addresses
Bitcoin was designed to solve the following fundamental monetary and payment issues:
- Commerce and transactions across the globe have come to rely on many different codependent financial institutions (central banks, banks, custodians, etc.), credit card companies, payment processors, etc., all of whom add layers of costs for the role they play in the value chain. The diagram below is a simplified illustration of a Mastercard transaction, but nevertheless demonstrates all the complexity behind card transactions. All of this complexity and multiple role players impacts the costs of transactions. High transaction costs was therefore a key problem to be solved;
- Successful commerce requires that banks and other payment companies are trusted by society (which is why the regulation of large institutions is enforced, to engender this trust);
- In fact, the nature of the payments system is such that everyone, from the payer to the payee, and all payment facilitators in-between, needs to be trusted. To ensure this trust, all kinds of control measures such as KYC (Know Your Customer), AML (Anti-Money Laundering), ID&V (Identification and Verification), PCI DSS (Payment Card Industry Data Security Standards) etc. is required. Banks have to remain compliant with regulations for consumer protection purposes, and therefore run costly compliance departments. This also adds to the cost of processing transactions. A mechanism was therefore needed to create trust in a system that did not require any regulated intermediaries or centralized authorities;
- Completely non-reversible transactions are not really possible today. Being able to reverse or ‘undo’ transactions/records enables fraud;
- Cash can be counterfeited, which leads to something called double-spending. Avoiding double-spending was therefore another matter to be dealt with;
- Financial institutions wield an enormous amount of power. They have the abilities to for example freeze your bank accounts or limit one’s ability to transact. This power can be abused. Bitcoin therefore aimed to remove the ability of any one entity in the value chain to censor, stop, reverse, alter, hide, or otherwise control payments, and to ensure that transaction records were transparent to everyone participating in the payment network;
- Central banks and governments are able to print money and control money supply in their efforts to manage the economy. However, inappropriate practices taken by central authorities that led to for example, the 2008 financial crisis, or the hyperinflation in Zimbabwe, etc. further fueled the need for a currency that could not be created at will or that is subject to changing economic policies of individuals in power.
In essence, Bitcoin aimed to create a peer-to-peer network for payments that:
- Did not require trust in any one individual or entity. The term frequently used to describe this aspect is ‘trustless’;
- Was not under the control of any one individual, group or financial/governmental institution. In other words, it had to be censorship-resistant;
- Created transaction records that were tamper-proof, unhackable, immutable, and irreversible;
- Prevented double-spending;
- Was decentralised in that decision-making was distributed across the network of payment participants, and not given to one or a few decision-makers. Furthermore, the records of these payments would be replicated across the network, so that in order to steal money or tamper with transactions, you would have to attack the entire network, not just one central unit such as bank;
- Legitimately created money, as opposed to central banks who can print additional money as needed.
Bitcoin’s solution – very high level overview
Bitcoin’s solution to the trust and censorship problem was to create a mechanism whereby all the participants participating in this payment system could agree on the validity of transaction records, and all keep identical copies of those records. This is different to today’s situation where for example banks, card companies and central banks for example own, reconcile and validate the transaction records. In blockchain speak, these participants are called nodes (computers). All nodes have to agree on the validity of transactions, before these transactions can be confirmed and committed to the the same record or ledger or database of transactions that each node runs. This is a form of Distributed Ledger Technology (DLT). The database or ledger is replicated and distributed between all the nodes on the network.
Creating the blocks:
The first step towards making the records in this database tamper-proof or immutable, the transactions, or blocks of transactions to be more accurate, are cryptographically linked or chained together. Hence the term, blockchain. This means that if a bad actor tampered with any particular transaction within a particular block, the links between all subsequent blocks on the chain of that particular node would have to be recalculated. Furthermore, the rest of the participants would somehow need to agree that the new chain of blocks containing the fraudulent transaction is now the valid chain before they all update their copies of the blockchain.
The process by which blocks are chained together is deliberately designed to be computationally intensive, requiring an immense amount of computing power. The process is also such that only the first node that is able to create a block of transactions with the correct cryptographic link to continue the chain, is rewarded with bitcoins. This nodes block of transactions will then be added to the blockchain, and all other nodes will add this block to their copies of the blockchain as well.
So if a perpetrator were to create a fraudulent transaction, such as rolling back transactions or creating double-spend transactions, this perpetrator would have to be able to mine a block containing these fraudulent transactions before any other node on the network. The perpetrator would have to be the first to generate the next and the next block first as well, so that it’s chain of blocks become recognized by the network as the valid chain of blocks.
Only then will other nodes add these blocks to their chains and discard the blocks that were created by other nodes. However, in order to continuously generate the first block would require an immense amount of computing power relative to the computing power of other nodes on the network. So for a very large network that is very decentralized, i.e. no one party has a major proportion of the network’s computing power, it becomes virtually impossible to do this.
This then provides the solution for making transactions impractical to reverse. The entire system is designed in such a way that recalculating the links and convincing other nodes that the new set of blocks are legitimate requires an inordinate amount of computing power relative to the rest of the network.
Making the blocks tamper-proof:
In addition to the cryptographic chaining of the blocks, all the nodes need to cooperate by adhering to an agreed upon process for how to add blocks to the blockchain. Put another way, there needs to be a mechanism, process or algorithm that nodes execute that will ensure that they reach consensus for how to add new blocks to the chain. There also needs to be an incentive mechanism that will encourage nodes to validate transactions and in the process adding to the security of the network. Bitcoin and other cryptocurrencies tackle this problem using a concept called Proof of Work. Proof of Work is a mechanism whereby nodes are incentivized to perform the work required to validate transactions and maintain the integrity of the blockchain. Nodes have to compete with one another to produce a valid block (a computationally difficult process) that can be added to the blockchain. The nodes have to perform a considerable amount of work (computational power) to create the next block, and the winning node is given a block reward, i.e. cryptocurrency, once the entire network agrees to the validity of the block.
Very simplistically, the Proof of Work consensus algorithm requires nodes to ‘mine’ for a difficult-to-find number called a nonce. The nonce is a particular number that when it is added to a block’s header, the hash of that block header (which includes the nonce) has a value that is less than a specific target value that the network agrees to. There is no simple way to find this nonce. Nodes literally have to loop through billions of numbers per second until it finds the nonce that yields the appropriate hash.
The block’s header also includes a specific numeric parameter, the target. The target is a 256-bit number (extremely large) that all Bitcoin clients share. The SHA-256 hash of a block’s header must be lower than or equal to the current target for the block to be accepted by the network. The lower the target, the more difficult it is for a node to generate a valid block. The Bitcoin network tries to regulate the production of one block to be every 10 minutes. After every 2016 blocks (which should take two weeks if this goal is kept perfectly), every Bitcoin client compares the actual time it took to generate these blocks with the two week goal and modifies the target accordingly. This makes the proof-of-work problem either more or less difficult.
The Bitcoin network regulates the average time for the creation of a block through a parameter called the ‘Difficulty’. The difficulty is a measure of how difficult it is to find a header hash below a given target (stored in the block header). The difficulty and the target are related by a mathematical formula and the target is adjusted every 2016 blocks when the network difficulty is adjusted.
If a node attempts to create fraudulent transactions, it would have to have superior computing power to have a high probability of creating the winning block that contains its fraudulent transactions. Even if this fraudulent mining node manages to create the winning block (e.g. block 2 or 5 below), all other nodes will detect the conflict with other winning blocks being created during those ten minutes. At this time, the blockchain ‘forks’ and two possible chains exist.
In this case, nodes will continue to monitor all the subsequent blocks being mined, building two chains in the process. Because creating a winning block is more likely with massive computational power, the fraudulent node will have to have an inordinate amount of computational power to continuously create more winning blocks to extend the chain on top of its fraudulent block.
The probabilities are such that unless this fraudulent node has massive proportion of the entire network’s computing power, say more than 50% of the computing power, it becomes virtually impossible to continuously beat other miners and extend its chain by even 3, 4 or 5 blocks. This forked, dishonest chain will then be discarded as the network only adds blocks that required the most cumulative computational power to be created. The diagram below is a simplistic but very intuitive analogy to convey this concept.
The important take-outs here are:
- A blockchain is a costly and computationally demanding database to maintain;
- Immutability, censorship-resistance and irreversibility are not properties of the blockchain (this is the conventional but incorrect thinking). Instead, these attributes are the result of the significant decentralisation in conjunction with the Proof of Work mechanism; and
- A blockchain derives its immutability from the Proof of Work and consensus algorithms, not just the ‘hashing-together’ of blocks (which can be done with normal and more efficient databases). It is Proof of Work, rather than blocks ‘hashed’ together that eliminates the need or trust between any of the participants.