Evolution of Money (pt.2) - Introduction to Bitcoin
Following the COVID-19 epidemic and the massive fiscal stimulus in the developed economies, the Ukrainian war with energy price shocks and other factors drove inflation to levels we have not seen for decades. Such acceleration with central banks struggling to keep up with the pace only accentuates the loss of value of fiat currencies and makes an interesting case for Bitcoin.
However, given Bitcoin's and crypto's extreme volatility and loss of value, it reiterates the question whether Bitcoin or other crypto will be able to serve the role of a medium of exchange. Nonethless, whatever the price movement, we need to understand the underlying technology behind it to have a fair shot of answering that question. To do tha, let us first briefly revisit some sections from the previous article to refresh concepts about traditional money.
Sound money needs a high stock-to-flow ratio. In other words, new supply should be very difficult and costly to produce, so that it becomes very small compared to the already existing supply and therefore cannot be easily inflated.
Surrogates of money as well as money itself lose their value when their supply is inflated. The same is obviously true for fiat money. Since President Nixon took the US Dollar off the Gold standard, the money supply of all major fiat currencies increased dramatically and with that their value decreased.
Figure 1 - Money supply growth of the US Dollar
Figure 2 - Money supply growth of the Swiss Franc
The Gold standard was virtually the last form of sound money. Many of us have never experienced a monetary system with hard money and without someone having the ability to control its supply. In layman’s terms, having bank notes in our wallets that actually have some intrinsic value.
... I don't believe we shall ever have good money again before we take the thing out of the hands of the government, that is, we can't take it violently out of the hands of the government, all we can do is by some sly roundabout way introduce something they can't stop." - Friedrich Hayek
The quote from 1984 lacking knowledge about the actual form of that “something they can’t stop” looks like a prelude to Bitcoin.
Back to Bitcoin
Why is Bitcoin so outstanding and possibly revolutionizing? Let us revisit the three distinct dimensions of the problem of coincidence of wants.
The coincidence in scales: Bitcoin can be divided into smaller units, called Satoshis.
The coincidence of locations: Bitcoin can be sent around the world fast and relatively easily. All one needs in order to send or receive Bitcoin is an internet connection and a Bitcoin wallet.
And thirdly, the coincidence of time. Does Bitcoin hold its value in the future? By looking at the fundamentals one could argue that it does. Bitcoin has a limited supply of 21 million units, meaning it cannot be inflated and therefore its value should not decrease because of a rising supply.
On this basis, Bitcoin could therefore be considered as hard or sound money, which could have large implications for the whole world, if successful.
How exactly does Bitcoin work
As described by its anonymous creator, Satoshi Nakamoto, Bitcoin is a “…purely peer-to-peer version of electronic cash [that] would allow online payments to be sent directly from one party to another without going through a financial institution.”
The most basic explanation is that Bitcoin is a file where accounts and their respective amounts are listed (ledger). A copy of this file is stored and updated simultaneously on a large number of computers (nodes). In order for you to participate, you don't have to maintain a ledger just to use Bitcoin to send and receive money - this is for people who want to help maintain the system.
To send money, you broadcast to the network that the amount on your account should go down, and the amount on a receiver’s account go up. Nodes, or computers, in the Bitcoin network apply that transaction to their copy of the ledger, and then pass on the transaction to other nodes. This is the most basic explanation of Bitcoin, a system that lets a group of computers maintain a ledger.
The difference to a bank, which also maintains a ledger of transactions, is that the file is maintained by a large number of participants. This is important for various reasons.
First of all, unlike with a bank, where you only see your own transactions, in the Bitcoin network it is possible to see every transaction of every user. The second important difference is that you are dealing with strangers. This is where Trust comes into play. With a Bank you trust your Bank to keep your money safe and to facilitate the transactions. Bitcoin, however, is amazingly designed so that no trust is needed; only special mathematical functions that protect the system and remove the need for trust
Step by step
I agree, there are a lot of new words and vocabulary and it may be confusing - let’s look at a model transaction in the Bitcoin network.
If user A wants to send Bitcoins to User B, they have to broadcast that transaction to the whole network. Every node will update their ledger (or a copy of all the transactions) and add the transaction to the ledger. The difficult part is to make sure the transaction is valid and authentic. Bitcoin requires a digital signature to authenticate the transactions. This is similar to a handwritten signature, only with the difference that it is dynamic and changes with every transaction.
That way, the user sending money does not have to reveal his signature (or password) to other users since transactions on the Bitcoin network require dealing with complete strangers.
Figure 3 - Transaction messages
To generate this signature, two different keys are required. A private key to create the signature and a public key, which is used by other nodes to check the signature. You can think of the private key as the true password, and the signature as an intermediary that proves you have the password without requiring you to reveal it. Public keys are also the addresses of the Bitcoin wallet, which is typed in when entering the destination of the Bitcoins a user is sending.
To spend money a user must prove that they are the true owner of a public key. This is done by generating a Digital Signature from a transaction message and the private key. Other nodes in the network can then use the signature in another function to verify that the signature corresponds to the public key. Since the message is different from every transaction it cannot be reused by someone else for a different transaction.
Instead of balances, ownership of funds is verified through links to previous transactions. To send 5.0 BTC to User B, User A must reference other transactions where they received 5 or more Bitcoins. These referenced transactions are called “inputs.” Other nodes verifying this transaction will check those inputs in their ledger to make sure User A was in fact the recipient, and also that the inputs add up to 5 or more Bitcoins.
Figure 4 - Bitcoin transactions illustration
Once a transaction has been used once, it is considered spent, and cannot be used again. Otherwise, someone could double-spend an input by referencing it in multiple transactions.
So, when verifying a transaction, in addition to the other checks, nodes also make sure the inputs haven’t already been spent. For each input, nodes check every other transaction ever made to make sure that input hasn’t already been used before. This is a crucial step to prevent fraud, i.e. somebody double spending the same coins by sending money to themselves.
Instead of a ledger of balances, Bitcoin nodes keep track of a giant list of transactions. Owning Bitcoins means that there are transactions in this list that point to your name, and haven’t been spent, or, in other words, used as inputs in other transactions.
We have now learned that nodes in the system check if the user, who is sending the Bitcoins, has enough Bitcoins to make the transaction and that the user is the owner behind the signature.
But there is still one problem that needs to be solved. At this point, it would still be possible to double spend the Bitcoins - that is because the order of the transaction is different for every node in the network, depending on how fast they receive the update for the new transaction.
For example, User A could send Bitcoins to User B for the payment of a product he would like to buy. User A could then wait for User B to send the product and then initiate a second transaction and send the same coins to himself.
Because of differences in the speed when distributing the transaction to the network, some nodes on the network would receive the second transaction before the transaction from User A to User B for the payment of the product. When a transaction of User B arrives, the nodes would consider it invalid because it’s trying to re-use an input.
Figure 5 - Nodes network
That is where blockchain technology comes into play. The Bitcoin system orders transactions by placing them in groups called blocks, and linking those blocks together into a chain, thus creating a blockchain.
Each block has a reference to the previous block, therefore placing them after one another. It is possible to go back and look up all transactions all the way to the very first group of transactions ever made.
Figure 6 - Order of blocks
Part of Bitcoin’s solution is that each valid block must contain the answer to a very specific mathematical problem. Computers run random guesses through something called a cryptographic hash until the output is below a certain threshold.
A hash function (any function that can be used to map data of arbitrary size to fixed-size values) creates a short digest from any arbitrary length of text, in our case, the result is a 32 byte number. Here are some examples of the specific hash function SHA256, which Bitcoin uses.
SHA256("The quick brown fox jumps over the lazy dog")
SHA256("The quick brown fox jumps over the lazy dog.") (extra period added)
In the example above, it is noticeable how much the output changes as a result of a single extra period at the end of the second example. The output is completely unpredictable, so the only way to find a particular output value is to make random guesses.
It’s very much like guessing the combination of a lock. You might get lucky on your first guess, but on average, it takes many guesses. In fact, it would take a typical computer several years of guessing to solve a block. However, since all computers guess numbers in the Bitcoin network, it takes about 10 minutes on average for someone to find a solution.
The first computer (or node) to solve the math problem broadcasts its blocks and gets to have its group of transactions accepted as next in the chain. The randomness in the math problem effectively spreads out when people find a solution, making it unlikely that two people will solve it at the same time. It may happen that two blocks are broadcast very close to one another, which creates two chains. Then the general rule is that you always immediately switch to the longest branch available.
Figure 6 -
This makes it nearly impossible to double spend coins. In order to double spend the coins now, one has to outpace other nodes in the network for several confirmations in a row.
Figure 7 -
In order to be able to generate the next block with a high probability, one would have to have more than 50% of Bitcoin computing power and since the general rule is to wait 3 to 6 confirmations until a transaction is final, the probability that one person is able to outpace the whole network for several blocks in a row is next to zero.
However, if such an actor had a very high percentage of the whole computing power, the incentive is to reduce the computing power. If everybody knew such an actor with the possibility to validate several blocks in a row exists, the coins would become worthless. Therefore, if everybody knows the system is not secure anymore, users would stop using it, making their coins, as well as the coins of the actor worthless.
Another possibility would be to validate blocks beforehand and then broadcast several blocks together to create a longer chain. But each block references the previous one and it is only possible to solve the mathematical equation of the next block if the previous block is validated and broadcasted to the network.
Figure 8 -
In conclusion, Bitcoin is a mathematically protected digital currency that is maintained by a network of peers and therefore able to eliminate the need for a trusted third party because trust is maintained through code and mathematical equations. That has many real world implications for our day-to-day lives.
Bitcoin promises many interesting ideas, such as insulation from government meddling, and potentially lower transaction fees. However, since the saying goes “Code is law”, the problem of human errors exists and once a private key is lost the coins are lost forever.
It is estimated that about 3 to 4 million coins are already lost and can never be retrieved again. And without a third party, it is quite difficult to call the support center of Bitcoin to get your coins back.
At the end of the day, it is undeniable that Bitcoin kick-started a revolution, which is still in its baby-phase. It brings many advantages to our incumbent monetary and fiscal system, and it may influence how the world works for many years to come.
One thing is for sure - crypto is here to stay and we are here not only to observe but to participate in this systemic change.
If you still have trouble with all the vocabulary, here is a link to all the technical terms and their descriptions.
If you are interested in learning more about Bitcoin, I highly recommend reading the whitepaper (which is only 9 pages long).
And to go deeper down the rabbit hole of Bitcoin here are some great resources to get started.
Thank you for reading!