Excited to start learning how Bitcoin works?! Well, I am pretty darn excited to teach it — and to get us properly started, I am going to do something a little different! Ready?
We are going to read the Bitcoin whitepaper and understand it together, line by line. That way, you can understand Bitcoin exactly as Satoshi Nakomoto originally intended it to be, rather than what we want it to be or what it has evolved into today (for better or worse). Returning to the source is key for really understanding Bitcoin.
Another reason I want to teach you directly from the source is because you can then go and brag to your friends that you read the Bitcoin whitepaper. Most people have not taken the time to read the whitepaper, so you will be in the 1% that have. 🙂
How this will work
We will tackle one section of the whitepaper in each of 13 short, easy-to-digest posts. These include 12 posts, plus the abstract. By the end, you’ll have a good grasp of the foundational elements of Bitcoin.
Without further ado, let’s get started!
The abstract of any whitepaper provides a high-level summary of the entire paper. Take a minute to read Bitcoin’s abstract:
Satoshi Nakamoto begins by stating his vision for Bitcoin loud and clear:
“A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution.”
Translation? Bitcoin is digital money that can be sent directly from one person to another without a bank serving as an intermediary.
“Digital signatures provide part of the solution”.
How? A quick refresher on public key cryptography, which we learned about in the previous lesson:
Every user has two digital keys: a public key and a private key.
Any person can encrypt a message using the receiver’s public key, but that encrypted message can only be decrypted by using the receiver’s private key, which, clearly, only certain trusted individuals will be given access to.
How does this apply to Bitcoin, you ask? Well, if I want to send you a message, such as a digital transaction, I can encrypt the message using your public key, and only you can decrypt the message with your private key. Any two people can send digital money to each other using this public and private key system.
Digital signatures provide part of the solution to building this digital cash system, but Satoshi makes it clear that that is not enough:
“…but the main benefits are lost if a trusted third party is still required to prevent double-spending.”
In other words, digital signatures don’t solve the double-spend problem. If you need a refresher on that concept, reread the first two sections of Early Digital Predecessors post.
The problem we run into, which you may have already noticed, is that Bob can send Alice the same message (i.e., the same money) to two different people.
Satoshi goes on to propose a solution to the double-spend problem:
“a peer-to-peer network that timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work.”
Oof, that’s a mouthful! Let’s break that down. In the first part, he’s saying each digital transaction will be both time stamped and hashed.
To “hash” something means to take a message of any size and apply a “hash function” on it such that it turns into a fixed-size piece of data (i.e., the hash).
A good hash function must do the following:
- Be deterministic, meaning that the same message always results in the same output hash.
- Be quick to compute the hash value for any given message.
- Make it impossible to reverse the process that generated the given hash value (i.e., you can’t take the output hash and figure out what the input message was).
- Make it impossible to find two different messages with the same hash value (or at least is such a low probability that it doesn’t matter for all practical purposes).
- Be structured so that even a small alteration to the input message changes the output hash value so extensively that the new hash value seems uncorrelated with the old hash value (e.g., removing the “!” from “Good morning” drastically changes the output).
In the second part, Satoshi is saying that these time-stamped transactions will be hashed into…
“an ongoing chain of hash-based proof-of-work”
Every hash in the chain represents “proof-of-work” having been done by some peer in the network. In other words, to add a new hash to the chain, a certain amount of compute power had to be used by a peer in the peer-to-peer network.
Now you understand why Satoshi calls it a “hash-based proof-of-work.” This proof-of-work-based chain cannot be changed without redoing all the proof-of-work required to create it up until that point.
“forming a record that cannot be changed without redoing the proof-of-work”
The longest proof-of-work chain serves not only as proof of the transactions that happened in the network, but also as proof that the chain comes from the network of computers with the most compute power. As Satoshi says,
“The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power.”
As long as a majority of the computers in the peer-to-peer network are good actors, the longest proof-of-work chain will be valid. (We will understand why this is the case in subsequent lessons.)
Finally, Satoshi concludes the abstract by stating…
“The network itself requires minimal structure.”
This is in contrast to other peer-to-peer networks (such as the distributed systems we learned about in the previous lesson) that can have very complex architectures. In those networks, peers have to follow strict rules.
In contrast to those rules, peers in the Bitcoin network can join or exit the network whenever they want to. They are not required to be online for a certain amount of time. If a peer goes offline and comes back online, the person can simply accept the longest proof-of-work chain as proof for what happened while the individual went offline.
If you are lost, that is totally okay and even to be expected. This is complicated stuff! In the rest of the lessons, we will break these things down into parts that will help you get your mind wrapped around Bitcoin.
I’ll see you in the next lesson!