Bitcoin: A Peer-to-Peer Electronic Cash System, the white paper, addresses the problems, proposed solution(s), and purposes behind bitcoin. The white paper is the starting point in understanding bitcoin. The Abstract of the white paper, with some additional context and definitions, provides a solid starting point for further discussion.
Too many of us were given overly simplified or overly technical explanations of the bitcoin network. Both of those can create distorted understandings and cause educational hurdles later on down the road. I believe the best way to communicate is somewhere in-between. Complex systems can be understood by most people, but the starting point is not talking to adults like 5-year-olds. The Abstract is as follows;
“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. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. 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 CPU power is controlled by nodes that are not cooperating to attack the network, they’ll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone.” - Satoshi Nakomoto, October 31st, 2008
Line by line, let’s explain what all of this means and give it some more information.
“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.”
Peer-to-peer refers to the bitcoin infrastructure being distributed between users with the software working from one user to another. Bitcoin does not require a trusted centralized authority to oversee transactions. Bitcoin (the network) relies solely on its users, or those using it, to maintain the network.
This is in sharp contrast to Visa, any bank, or other “online” payment services like PayPal or Venmo. This is important because a system other than peer-to-peer could be censored, disrupted, or manipulated by a central authority with motivations that differ from the end user. Financial institutions have historically excluded specific individuals based on ideological, political, religious, national, or other such individual characteristics.
Censorship on bitcoin is not possible. If you use a currency, bitcoin is an alternative and assures that no one can take away your ability to interact with others on a monetary basis. Peer-to-peer systems such as bitcoin also have a lower barrier to entry, allowing for an easier network spread.
“Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending.”
Digital signatures, also called cryptographic signatures or simply signatures, are a mathematical scheme that allows someone to prove ownership. Digital signatures are used in bitcoin when someone makes a transaction. A transaction is “signed” by a cryptographic key that proves the owner is making that transaction of those coins, and the network should accept the transaction. Whoever controls the keys controls the bitcoin.
This mechanism is called “private-public key cryptography” as it utilizes two strings of numbers called keys, one private and one public. These keys allow the network (and individuals) to quickly and efficiently validate that a transaction is legitimate. Think of this as the marker confirming your $100 bill is real, but it is 100% accurate and works instantly.
Double spending is the spending of the same bitcoin more than once. Until now, solutions to the double spend problem have been centralized and rely on a trusted third party. If someone spends $20 at two places through PayPal simultaneously, this is resolved by PayPal. That situation requires everyone to trust PayPal to do what is right. Without a central authority to mediate this problem, we require a digital signature to verify ownership and a network-wide consensus mechanism to enforce a single spend of those coins.
“We propose a solution to the double-spending problem using a peer-to-peer network.”
Bitcoin is the solution, and double spending can be solved by utilizing digital signatures and validation from everyone on the network to ensure the authenticity of all transactions.
“The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work.”
This is the real meat of the network.
A hash is the output of a hash function. A hash function is an algorithm that takes data and outputs a fixed length unique string of numbers and letters.
Getting the output from a hash function is fast and simple. But, this process can not be done backward. You can not put in the hash function's output and get the inputs. If you are able to do that, you have solved a system that underpins multiple security layers of the internet and digital communication, and the NSA would like to speak to you.
The output is a sort of secret code, and the input is the password. If my friend gives me the output: ec5cf069dd8ab476d43466fa6c2ff8760c6a1997, I don’t know the input until my friend tells me. When they tell me I can easily verify by running the input through the function and checking if the outputs match.
Party at my house tonight! -> Hash Function (SHA1) -> ec5cf069dd8ab476d43466fa6c2ff8760c6a1997
The smallest change in the input has an avalanche effect and drastically changes the output. For example:
Using a hash function, we can make a chain of outputs that include a prior output. This would form a record from one to the other. If all of the data in the inputs are known, then the series of outputs could be easily verified.
If one of them changed, even in the slightest, it would corrupt everything following in the chain.
Each piece of the chain is called a “block.” Add a time to the block, and now we have a timestamped hash-based chain of blocks.
This is great, but we run into a problem, what if a single person controls a majority of the peers on the network? They could simply edit the data, and because they control the majority of peers, they could force consensus on the network. The solution is to add a piece of difficult-to-reproduce work into the chain. This is done by requiring peers on the network to guess a special number that, when put into the block, creates an output with zeros at the beginning. This special number is called a “nonce.”
Because the hash function can not be done backward, peers on the network are forced to guess nonces randomly until they get an output with sufficient leading zeros. This exponentially increases the amount of work required to finalize a block, thus increasing the cost an attacker would have to undertake to manipulate the network. Those peers on the network finding the nonce are compensated with newly minted bitcoin when they find the correct nonce. This distribution of newly minted bitcoin distributes bitcoin fairly because only those building the network receive compensation.
“The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended.” - Satoshi Nakomoto.
“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 CPU power is controlled by nodes that are not cooperating to attack the network, they’ll generate the longest chain and outpace attackers.”
It is possible for two blocks to be created simultaneously and for there to be two chains. This two-block situation is temporary and will be solved by peers on the network defaulting to the longest chain.
Defaulting to the longest chain is done NOT by counting blocks, but by measuring “difficulty” or the total computational (CPU) power put into the chain. This proves that the main chain, the active chain with a root to the very first block, is the strongest and most resilient to manipulation.
An attacker would have to instantly spin up an identical amount of computer power to continue the propagation of their malicious block. When the network was tiny and supported by a handful of peers, the concern that pools of network participants would manipulate the network was high. As the network has grown globally, this is far less of a problem. Again, the resources required to alter the network are orders of magnitude greater than the monetary reward one would receive.
“The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone.”
The entire bitcoin network could be run on a single laptop with a stable internet connection. All additional resources on the network increase its stability and security for everyone.
Messages (transactions) are broadcast to the network by those initiating the transaction. Delivery is on a best-effort basis, meaning there is no definitive end or guarantee that the message will reach its destination.
This is done to simplify the transmission process and reduce potential avenues of attack on the network. Transactions are broadcast to a peer, connected to peers, which is connected to more peers, etc., etc.
This setup allows anyone to join or leave the network freely. There are no commitments or contracts to be on the network. When rejoining the network, a peer will utilize the mechanisms from above to validate the appropriate chain and continue work.
If you can reiterate everything in this blog and, in doing so, explain the purpose behind why the network is set up the way it is, you have a deeper understanding than 90% of those in the "crypto" industry. Knowledge is power, and the whitepaper abstract is only the start of understanding the technology.
To learn more about us and how we can work with you, start here.
*Some of the descriptions are not 100% technically accurate (referencing: nodes, miners, wallets, transactions, signatures, etc.). If you are able to point out minor inaccuracies, you are not the intended audience. This technical inaccuracy was intentional to make the material easier to understand for beginners. If you want to yell at us about it, do it on Twitter; that's what it's for.