This post was originally published in Bitcoin Magazine
There are various aspects of this digital money that lend itself to revolutionizing the transfer of private property.
The Wall Street Analyst’s Intro to Bitcoin:
THE HISTORY OF BITCOIN
In October of 2008, amidst a global recession resulting in government bailouts of the banking system, a white paper was released under the pseudonym Satoshi Nakamoto titled Bitcoin: A Peer-to-Peer Electronic Cash System. The paper summarized a confluence of technologies that, when combined, created the first successful form of digital money. These technologies were the product of 4 decades of attempts and failures to create digital money — below is a list of about 100 failed attempts:
PayPal is on that list — their original idea was cryptographic payments on hand-held devices. They were not able to execute on this idea, and survived by pivoting away from it. Many of the projects in the above table have a similar story of attempting to make something like bitcoin but coming up short. In hindsight we realize that their fundamental problem was that they tried to be a company in the first place. However, with each failure knowledge was gained, and the world came one step closer to digital money.
Many attempts to create digital money were spawned by the cypherpunk movement which originated in the 1990s along with the growth of the internet. Cypherpunks believed the internet would become a government surveillance apparatus unless defensive technologies were created.
Before governments implemented national firewalls, before social media websites were selling our personal data, before the NSA’s PRISM program,l and before big tech was systematically censoring political movements, the cypherpunks were at work anticipating this new world. They were able to anticipate it because of their uncommon intersection of various kinds of knowledge — including cryptography, computer science, Austrian economics and libertarianism.
Cryptography enables digital encryption, which removes the power of sovereign influence over the internet. However, an autonomous form of digital money is also required to have an economy free from government control. Digital money enables an encrypted online economy to freely transfer value and thus to freely organize in the digital world.
Here is a summary of the major events that ultimately lead to the creation of Bitcoin:
- Public-key cryptography: Started in the 1970s and allowed for public keys to be used over insecure communication channels. Governments attempted to control this new technology by invoking the narrative that criminals will use it. They ultimately lost this battle and this technology is now part of the underlying security for internet communications. It is used in a wealth of modern technologies for encryption.
- Digital signatures: Developed by David Chaum in 1989, who used it to found the company Digicash. This allowed an individual to produce a signature (like one on a check) that would prove they had a private key associated with a public key, without revealing the private key. This allowed people to anonymously verify that they are who they say they are. Chaum’s company, however, didn’t figure out a way to verify signatures without trusting a third party.
- Digital scarcity: Since digital money is just bits on a computer, what was to stop someone from copying it? Money needs to be scarce to have fundamental value. In the real world, scarce things are few in number or are incredibly hard to find. Adam Back recreated this real-world problem using computational puzzles in his proposal for HashCash in 1997. Computers are good at math but there are some math problems that they can only solve by guessing. If you use big enough numbers, these problems can become extremely hard for computers to solve by guessing. By tying the creation of money with solutions to these hard math problems, digital money was made scarce. In Bitcoin this concept is called the proof-of-work consensus algorithm which requires computers, known as miners, to solve a computationally demanding puzzle to create new bitcoin. This makes bitcoin costly to create and thus scarce.
- Blockchain: The concept of a blockchain can be traced back to a paper by Haber and Stornetta in 1991. The idea was for people to send different versions of a document to a server over time. The server would add a hash pointer to the prior document, a time stamp and a digital signature of the server to verify that it was in fact the server that signed off on this (i.e., verified it). This meant that the most recent version in the list had a link to its prior version, thus creating a chain between them all.
- A hash pointer is a hash function that hashes the prior document in a temporal list of documents. These functions compress large databases into strings of text for storage, and a single change in any part of the database would be reflected in the string of text. If each document created has a hash pointer to its prior version included, then any changes to its lineage would be apparent through a change in the hash pointer of the current document. Adding a time stamp to each document creates a temporal list, and then using a digital signature allows you to prove which server signed off on the document update. All of these measures combined produced a verified chain of information where any tampering with its history would be immediately apparent.
To recap, digital signatures create a verifiable method of confirming an identity digitally without disclosing it. This digital signature, when incorporated in a blockchain data structure, creates a temporally linked, immutable record of data. These technologies could be used to counteract problems native to digital money. However, the supply of that digital money needed to be scarce, and this problem was solved using computationally intensive puzzles (via hash functions) to regulate supply.
However, none of these advancements had found a way to resolve disagreement between nodes on the recorded ledger. Bitcoin resolved these final challenges. This may not make complete sense yet, but it will, so if you are confused please keep reading.
Bitcoin utilized digital signatures, the blockchain data structure and computational puzzles to successfully create, for the first time in history, decentralized digital money.
BITCOIN
Satoshi says he or she started coding Bitcoin around May 2007 and registered www.bitcoin.org in May 2008. In October 2008 he released the Bitcoin white paper and code. The Bitcoin network was up and running by the start of 2009. The first transaction was sent to Hal Finney and a community of cypherpunks began encouraging the use of bitcoin for peer-to-peer transactions.
The foresight of the cypherpunks is astonishing, and what they did took courage. Much of their quest to invent internet money was inspired by economists rooted in the Austrian school.
In 1984, Nobel laureate economist Friedrich Hayek stated:
“I don’t believe we shall ever have a good money again before we take the thing out of the hands of government, that is, we can’t take it violently out of the hands of government, all we can do is by some sly roundabout way introduce something that they can’t stop.”
In 1999 Nobel laureate economist Milton Friedman stated:
“I think that the Internet is going to be one of the major forces for reducing the role of government. The one thing that’s missing, but that will soon be developed, is a reliable e-cash, a method whereby on the Internet you can transfer funds from A to B, without A knowing B or B knowing A.”
In 2008 this vision began its journey toward reality. Satoshi created decentralized digital money while standing on the shoulders of giants.
WHAT BITCOIN DOES
What bitcoin does is a separate question from why it is valuable. What makes bitcoin valuable is the network of people who have decided to use it. To understand why these people have decided to use it you need to understand how it works. This can be challenging, as Bitcoin’s technology is a confluence of technical concepts unfamiliar to most people.
The Bitcoin protocol allows you to send scarce money to anyone in the world. This ability sounds simple, but it is powerful. Call your bank right now and ask them to wire a significant amount of money to somebody in another country for you. Enjoy spending the next week trying to make that happen and subsequently getting tracked by the government. The ability to move large amounts of value within minutes over a digital network does not exist anywhere else.
You might ask, what about Paypal or Venmo or Cash App?
These are all trusted third parties, and trusting third parties has consequences.
- You have to play by their rules
- You have to tell them who you are
- You have to trust they will keep your information safe
- You have to give them control over your money
Let’s append “trustless” to my last statement: the ability to move large amounts of value within minutes over a trustless digital network is incredibly powerful. It is trustless because you don’t have to trust a third party. This is possible because it is a decentralized network which has no third party intermediaries and thus nobody can control it; more on this later.
In April 2020, $1.1 billion in bitcoin was moved in a transaction for a cost of 68 cents, and it was done in a matter of minutes. This was done cheaply and efficiently without the transactors having to play by anybody’s rules, tell a third party who they are, trust anyone with their information or give anyone control over it. No other payment system in the world can move that amount of value, for that price, in that amount of time, without oversight from a third party.
To understand how this is possible we need to get technical. I will keep this high level — you can check out my book for a more in-depth explanation .
ONE-WAY CALCULATIONS
Bitcoin uses hash functions (also called hashes) in a variety of ways throughout the protocol. In the simplest sense it allows us to produce one-way calculations — a calculation where if A*B=C you can only find A or B if you know them (e.g., if you have A and C you cannot divide them to find B).
In Bitcoin, your public key is C, A is your private key, and B is known by everybody.
- A = private key: a random number you select.
- B = this variable is public and known by everyone and never changes (in bitcoin it is called secp256k1 which you can read more on at the link).
- C = public key: also known as your bitcoin address (but there is a small difference between the two).
One-way calculations work because they are dependent upon an unsolvable mathematical problem called the discrete log problem. In short, if you use finite field math over a field of an unfathomably large prime number then dividing for the solution is practically impossible. Much of modern cryptography rests on this unsolvable problem. If it is solved, most of our cryptographic systems will crumble. Computers could theoretically become fast enough to guess solutions through iteration (e.g., through quantum computing). However, this is very unlikely. To give you some perspective on this, the prime number used by bitcoin is 2256~ or 1077 digits long. The estimated number of atoms in the universe is 1080. A trillion computers doing a trillion computations every trillionth of a second for a trillion years is still less than 1056 computations.1
BITCOIN ADDRESSES AND DIGITAL SIGNATURES
Hash functions and digital signatures are used to create the basis of Bitcoin. They enable the creation of Bitcoin addresses. An address is where people can send and receive bitcoin to and a digital signature allows you to publicly prove you know the private key that unlocks your address without revealing it. To do this, Bitcoin uses the Elliptic Curve Digital Signature Algorithm (ECDSA) and below is a description of how this all ties together.
At a high level here is how the ECDSA works:
- A private key is generated as a random number. A good source of randomness is critical for security purposes.
- The private key is multiplied by a standard point on the Bitcoin elliptic curve to create a public key that can be shared without revealing the private key.
- The public key is then hashed to create a bitcoin address. If your private key used a poor source of randomness, your address could have a security issue.
- The ECDSA algorithm creates a digital signature from your private key. Using this signature and your bitcoin address you can now send bitcoin to other people on the network.
- When you send bitcoin, every node on the network that hears about your transaction verifies your signature with your address and checks that you have at least as much bitcoin as you are attempting to send. If verification of your signature fails, or if the amount of bitcoin you own is insufficient, your transaction is dropped from the network.
TRANSACTION MECHANICS
In Bitcoin every transaction has an input and output. When you send bitcoin the input is how much is at your address, and the output is the amount you are sending to another address.
Assume Kanye West sends one bitcoin to Mike Tyson:
Bitcoin exists at addresses, which are potential inputs and outputs for any transaction to come. Bitcoin participants maintain a list of all bitcoin in existence at each address called unspent transaction outputs (UTXOs). This list is what network participants reference to confirm that Kanye had the one bitcoin he sent to Mike. After the transaction, Kanye’s address decreased by one bitcoin and Mike’s address increased by one bitcoin. Mike now has one bitcoin to spend which can be verified from the updated list of UTXOs.
THE BLOCKCHAIN DATA STRUCTURE
Bitcoin allows people to create transactions and if the transactions pass verification from other nodes they are aggregated into blocks. These blocks are linked together to form a blockchain. The blockchain is used as a ledger that cannot be changed.
Each block has a block header that includes information for easy verification of blocks between nodes.
- All transactions are formed into a tree (merkle tree) and then combined and hashed until there is one hash left called a merkle root.
- The previous block hash is a hash of the block header in the previous block.
- The remaining categories are used in mining, to be discussed later.
This data structure links everything together which allows computers to quickly verify that the history of the Bitcoin ledger is consistent between one another.
So, all transactions are linked within blocks through a tree structure and the previous block hash links all blocks together forming a blockchain. Below you can see a block header that includes all the fields shown above as well as the size of the block and all the transactions in it.
Any change in a previous block will be instantaneously reflected in the current block because the previous block hash would change. This structure was implemented to quickly allow participants to understand that they are both working off the same history of bitcoin transactions. This is basically a method of version control that protects against bad actors. A full explanation of this requires an understanding of the Bitcoin network, covered in the next essay.
Lastly, it is important to understand the memory pool. There is a period between the creation of a transaction and its ultimate recording in the blockchain. During this period, a transaction is held by every participant who has heard of it in their respective memory pool. This is like a waiting room where it sits until a miner has solved the computational puzzle that publishes the transactions to the blockchain. The memory pool can vary for each network participant. The memory pool of the miner who ultimately found the next block is the one that will be inserted in the block chain; any transactions that were sent but not included by this miner will simply have to wait to be included in the next block.
We now understand the structure of the blockchain. This summary of the blockchain is incomplete without understanding the Bitcoin network. How does everyone hear about transactions? Does everyone agree on the same transactions? If not, how is consensus achieved among thousands of different participants when multiple versions of the blockchain are being referenced? The next essay will explain.
REFERENCES
- Mastering Bitcoin, Andreas Antonopolous, https://github.com/bitcoinbook/bitcoinbook