Table of Contents
The Bitcoin WhitePaper is a beautiful document, but quite a technical one. For those without a background in finance, computer science, or networking, it can be a difficult read.
This essay seeks to demystify the white paper, presenting its concepts in an accessible and straightforward manner for readers without a technical background.
The Bitcoin Whitepaper: Introduction
Imagine you want to send money to your friend online. Normally, you would need to go through a bank or payment service like PayPal to make sure the transaction is secure and your money doesn’t get spent twice (double-spending).
These banks or services act as a third party or middleman. They keep track of everyone’s money and make sure transactions are valid before approving them.
However, having to rely on a middleman has some downsides:
- Transactions can be reversed or stopped if the middleman decides there is a dispute or fraud. This makes it hard to make truly irreversible payments.
- The middleman charges fees, which increases costs, especially for small payments like a few cents.
- Because reversals are possible, merchants have to ask for more information from customers to verify identities and prevent fraud.
- There is no way to make payments directly between two people online without involving a middleman.
The goal is to create a new electronic cash system that doesn’t need a third party. Transactions would be secure thanks to cryptography (fancy math codes) rather than having to trust a middleman.
This would allow any two people to send money directly to each other over the internet without a bank, fees, or the risk of chargebacks. Sellers would be protected from fraud, and buyers could use escrow services if needed.
The key is solving the double-spending problem in a decentralized way, without a central authority. That’s what the rest of the paper describes — a peer-to-peer network and system for achieving this.
Transactions
In this system, money is represented by digital coins. But these coins aren’t physical objects. Instead, each coin is like a digital record or log of ownership.
Imagine there’s a piece of paper that says “This coin belongs to Person A”. When Person A wants to give that coin to Person B, they do the following:
- Person A gets the piece of paper representing the coin’s ownership.
- Person A writes on the paper: “I, Person A, am transferring this coin to Person B” and then digitally signs it with a secret code (like a super secure signature).
- The paper now has Person A’s signature showing they approved the transfer to Person B.
- Person A gives the updated paper with their signed transfer statement to Person B.
Now Person B has proof of ownership of that coin, because they hold the paper with Person A’s signature transferring it to them.
When Person B wants to spend that coin with someone else like Person C, they just add their own signed transfer statement to the same paper, saying “I, Person B, transfer this coin to Person C.”
So the paper trail or chain of ownership keeps growing with each transfer, with every new owner adding their digitally signed transfer statement.
This allows anyone to verify the full chain of ownership by looking at all the signatures on the paper trail for that coin.
However, there’s still one big issue. What if Person B tries to cheat by also giving a copy of that same coin’s paper trail to someone else, like Person D? This is called “double-spending” and it’s currently prevented by banks/third-parties keeping ledgers.
But in this new system, there needs to be a way to prevent double-spending without a third-party. That solution is described in the next sections.
Timestamp Server
To prevent the double-spending problem without a third-party, we need a way to prove which transaction for a coin happened first in time.
Imagine there’s a very reliable and trusted source that constantly publishes a record of current events and their exact times, like a newspaper.
When Person A wants to transfer a coin to Person B, they make an announcement to this timestamp source, saying “At 3:25pm on June 1st, I transferred my coin to Person B.”
The timestamp source then publishes this announcement in their next event record, proving the transfer was made at that specific time.
Now if Person A tries to double-spend by transferring that same coin to Person C later at 4:15pm, the timestamp record shows the earlier 3:25pm transfer to Person B happened first.
So by checking the widely-published and trusted timestamp record, everyone can see which transfer is the valid one that should be accepted.
Of course, we can’t rely on a single timestamp source like a newspaper, as that reintroduces a third-party we need to trust.
The solution is to use a decentralized network of computers, all maintaining their own timestamp records together, so no single entity is in charge.
Each computer records a batch of recent transactions in a “block”, stamps it with the current time, and links it to the previous block of transactions in a long “chain” of timestamps.
So the full chain of transaction blocks, secured by advanced cryptography, acts as the trusted public record of which transactions happened first, second, third, and so on.
This distributed timestamp server system run by the network itself prevents double-spends without needing a third-party authority.
Proof Of Work
In the previous section, we described how the network acts as a decentralized timestamp server by computers adding new blocks of transactions to a chain.
However, there needs to be a way to decide which computer gets to add the next block and update the official transaction record.
If anybody could just add blocks anytime they wanted, there would be conflicting records and no way to agree on which chain is the correct one.
The solution is to make adding new blocks very difficult and have the computers essentially race or compete to be the first to create the next valid block.
Here’s how it works:
- To add a block, a computer must find a special extremely difficult mathematical solution to a “puzzle.”
- This puzzle is so hard that even powerful computers can only get lucky and solve it through a very large number of random guesses.
- The first computer to finally guess the solution gets to add their block of new transactions to the chain.
- Once a computer succeeds, the puzzle resets and all computers start racing to solve the new puzzle for adding the next block.
This process of expending massive computing work to find the solutions and add blocks is called “Proof-of-Work.”
The key idea is that while any computer can try to create blocks, only one can succeed each time. And there’s no way to cheat, because solving these puzzles really does require that much computational effort.
So the longest chain of blocks is the trusted one, because that’s the chain with the most cumulative Proof-of-Work behind it from all the computers on the network.
As long as honest computers control more total power than any malicious group, they will create the longest valid chain that the entire network accepts.
Network
The network that powers this electronic cash system doesn’t have a central authority or server running it. Instead, it relies on the combined efforts of many computers (nodes) working together in a peer-to-peer fashion.
Here’s a step-by-step overview of how the decentralized network operates:
- When someone wants to transfer a coin, they broadcast the transaction details to the entire network so that every node gets the information.
- Each node collects several new transactions into a “block” like pages in a ledger book.
- The nodes then race to solve the difficult proof-of-work puzzle for their block, essentially competing to become the next record-keeper.
- Whichever node solves the puzzle first gets to broadcast their completed block to everyone on the network.
- The other nodes check that all transactions in this new block are valid (no double-spends) before accepting it.
- Once accepted, the new block gets cryptographically linked and added to the ever-growing chain of approved transaction blocks.
- All nodes then start working on the next block of transactions to add to that same chain.
The amazing part is that the network can keep running in this decentralized manner without any central oversight or point of failure. It’s self-sustaining.
Nodes can join and leave the network whenever they want. As long as there is a majority of nodes behaving honestly, the system works.
New transactions and blocks get constantly added to the shared transaction chain through competition and consensus among the nodes.
Since Satoshi Nakamoto created Bitcoin, the landscape of mining has evolved significantly. Initially, any participant could mine with general-purpose hardware like CPUs or GPUs.
However, the mining process is now predominantly performed by specialized hardware known as ASICs (Application-Specific Integrated Circuits), which are far more efficient at solving Bitcoin’s cryptographic puzzles.
Additionally, while many nodes continue to participate in transaction verification, a considerable number of these nodes now primarily focus on verifying and maintaining the blockchain without directly engaging in the mining process.
Incentive
For this decentralized network to work, we need incentives to encourage people to run the nodes that power it. Running a node takes effort, electricity and computing power.
So here’s how the system incentivizes participation:
Whenever a node manages to solve the proof-of-work puzzle and gets to add a new block to the chain, that block has a special first transaction in it.
This first transaction doesn’t transfer any existing coins, instead it creates brand new coins and assigns them to the node that created that block.
It’s like a reward or payment to the node for the work it did to construct a valid new block.
This process of generating new coins to reward nodes for their proof-of-work is how all coins initially get created and introduced into the system.
It’s similar to how gold miners expend effort and resources to extract new gold and bring it into circulation.
Over time, as more and more blocks get added, more and more new coins get created and distributed to the nodes doing the proof-of-work.
Additionally, regular transactions can also include small fees payable to the node that includes those transactions in their block. This provides another incentive.
By incentivizing with newly created coins and transaction fees, the system motivates a network of nodes to power it through their combined efforts without anyone being in charge.
The hope is nodes will have more incentive to play fairly than try to disrupt the system, as that would devalue the coins they earn.
Reclaiming Disk Space
As more and more transactions get added to the chain of blocks over time, the total data size will keep growing. This chain has to be stored by all nodes on the network.
If nodes had to keep absolutely every transaction record forever, even really old ones, eventually they would run out of disk space on their computers to store the massive chain.
To prevent this problem, the system allows nodes to discard or “prune” some of the really old/spent transaction data while still keeping the integrity of the overall chain intact.
Here’s how it works:
- Instead of just listing all transactions one after another, they are grouped and organized in a special way using something called a “Merkle Tree”.
- This tree structure allows for portions of the old transactional data to be mathematically summarized or compressed into a tiny unique “fingerprint” code called a hash.
- Only this small hash code needs to be stored and kept, not the full data for those old transactions.
- Newer blocks in the chain only record the hash representing the historical data, not the actual data itself.
- So nodes can discard the underlying old transactional data that’s already been summarized and replaced by these tiny hash codes in the newer blocks.
This pruning process is like cutting off branches of a tree (the old data) but still keeping intact the trunk and roots (the chain’s history encoded in hashes).
By only storing these compact hash codes instead of full transaction data, the size of the chain that nodes need to store is vastly reduced over time without compromising integrity.
This reduction in storage requirements enables even older computers to participate as nodes in this optimized blockchain system. Consequently, this fosters greater decentralization, as it allows a broader range of devices to contribute to and maintain the network, enhancing its robustness and resilience.
Simplified Payment Verification
Normally, to fully verify if a transaction is valid and really part of the approved chain, you need to be running a full node on the network. A full node means you have to download and store the entire blockchain data.
However, there is a “lightweight” method that allows you to still verify payments without having to store the full chain. This makes it easier for devices like mobile phones or simple wallets to still confirm transactions.
Here’s how the simplified verification works:
- Instead of storing the entire chain, you only need a copy of the block headers — which are like the summaries or titles of each block, not the full transaction data inside.
- You can get this copy of block headers by asking a few different nodes on the network and cross-checking that you have the longest valid chain from the majority.
- When you receive a transaction, you’re also provided with a special code called a Merkle Branch that links the transaction to a specific block in the chain.
- Using this Merkle Branch, you can cryptographically confirm that the transaction is indeed embedded into that block, without needing the full data.
- Since you have the block headers with hashes linked all the way down, you can verify that the block belonged to the longest chain accepted by nodes.
So in essence, you rely on verifying that the transaction is found in a block that was approved by the honest majority of nodes as part of the valid chain, rather than checking every transaction yourself.
This lightweight method allows secure verification of payments by even simple wallets, as long as the network itself remains secure and properly decentralized among honest nodes.
Combining and Splitting Value
In the system described so far, we’ve treated coins as whole individual units that get transferred from owner to owner.
However, in reality, we often need to combine or split values when making payments and receiving change.
For example, if you want to pay $7 but only have $5 and $3 coins, you’d need a way to combine their values. Or if you pay $10 for something that costs $7, you’d want $3 back in change.
This section explains how the system handles those kinds of combined transactions:
- Instead of having just one input and one output, transactions can have multiple inputs and multiple outputs.
- For a payment, the inputs are unspent coin amounts you already own that add up to the desired value to transfer.
- The outputs are split into two parts — the payment amount itself going to the recipient, and any remaining change going back to you as a new output.
- This allows values to be flexibly combined from multiple input coins to make a payment output, and also create change outputs from leftovers.
- It’s sort of like exchanging two $5 bill to buy a $7 item, where you seamlessly get $3 one dollar bills back as change.
This flexible input/output model gets around the limitation of having to transfer whole coin values at a time.
It enables micro-payments down to tiny amounts by letting you combine as many inputs as needed. And it ensures there is no lost value by outputting change.
The splitting and combining is all handled seamlessly within transactions in the blockchain.
Privacy
When you make a transaction through a traditional bank, your personal information like name and account numbers are kept private and only accessible to the bank and parties involved.
However, in Bitcoin’s decentralized system where all transactions are publicly announced across the network, some level of privacy is still needed. We don’t want everyone to see which real-world identities are associated with each transaction.
Here’s how Bitcoin achieves a reasonable degree of privacy:
- Instead of using names or accounts, transactions only refer to digital “addresses” which are long random-looking strings of numbers and letters.
- These addresses act like anonymous identities or aliases. You can have as many addresses as you want, and they are not linked to your real-world identity by default.
- When you make a transaction on the network, your addresses sending and receiving the bitcoin are publicly visible, but not your real name or identity behind those addresses.
It’s similar to how a public stock market shows trading data like the time, amount and price of trades, but doesn’t reveal the real identities of the buyers and sellers behind each trade.
- To further improve privacy, you can generate and use a brand new address for every transaction you make. This helps prevent different transactions from being linked back to the same originating address/identity.
- The downside is that if someone is able to link one of your addresses to your real identity through other means, all transactions involving that address could then also be linked to you.
So while not 100% secure, Bitcoin provides a reasonable level of privacy by dissociating real-world identities from the public blockchain, similar to the pseudonymity of online usernames or nicknames.
The goal is to find a balance between privacy and verifiability that is suitable for an open digital currency system.
Calculations
This section does some math to analyze how secure Bitcoin’s system really is against potential attackers trying to disrupt or manipulate the transaction history.
Imagine an attacker (like a hacker or malicious group) is trying to modify the public ledger of transactions for their own benefit, like redirecting payments that were sent to someone else.
They will attempt to build their own separate blockchain that rewrites the parts they want to change. This is known as a “fork” from the main accepted chain.
The key question is: What are the odds that the attacker’s fork could actually outpace and overtake the legitimate chain maintained by honest nodes on the network?
The calculations show that the probability of an attack succeeding drops exponentially as more blocks get added to the legitimate chain over time.
Essentially, as long as honest nodes control more computational power for mining than the attacker, they will keep extending their chain faster than the attacker’s fork.
The more the attacker falls behind, the more impossibly difficult it becomes to catch up due to the intense Proof-of-Work requirements.
Unless the attacker can somehow get control of the majority of the network’s computing power, their odds of successfully rewriting the established blockchain become infinitely small.
So while an attack is theoretically possible, Bitcoin’s system makes it practically infeasible for any single attacker to override the authoritative transaction record, as long as the network retains decentralization.
Conclusion
The conclusion and key innovation of Bitcoin is the creation of a decentralized, secure system for digital cash that doesn’t require trust in any central authority.
By combining key concepts like a public blockchain, Proof-of-Work mining, and economic incentives, Bitcoin allows anyone in the world to cheaply and fairly participate in a globally neutral currency system.
No longer do we need to rely on governments, banks or payment processors to verify, approve or control our digital money transfers and ownership records.
Instead, through decentralized consensus mechanisms and cryptographic verifiability, Bitcoin puts the power into the hands of its global peer-to-peer network participants.
For the first time, we have a way for online payments to be transferred in a truly peer-to-peer fashion, without intermediaries, interventions or unnecessary costs.
Bitcoin unlocks the possibility of a globalized, open, neutral digital cash system that is natively internet-based and belongs to the public commons, just like no single entity can claim ownership over the air we breathe.
This is what makes Bitcoin extraordinarily important — it takes us away from centralized controlling authorities and into a new era of decentralized global finance and currency for and by the people.
Never Stop Learning
Bitcoin is a complex journey that reshapes our understanding of money and value.
This essay aimed to simplify the Bitcoin White Paper, making Satoshi Nakamoto’s groundbreaking ideas more accessible. Just as air is indispensable and universally used, Bitcoin could become essential for digital transactions, offering a new way to think about and use money.
Humanity is still at the forefront of Bitcoin’s adoption. By learning about it now, you’re positioning yourself in a movement that’s set to revolutionize finance. Your efforts today could be remembered by future generations as foundational in creating a fairer and more prosperous world.
Keep diving deep into Bitcoin. Every bit of knowledge not only enlightens but also paves the way for innovative opportunities.
Decentralized, bottom-up systems like Bitcoin flourish when knowledge and adoption spread far and wide. So never stop learning, your journey through Bitcoin might just be the start of something monumental.