Bitcoin's White Paper Is Not a Bible – Stop Worshipping It
Software evolves, read-only text documents do not.
Samson Mow is chief strategy officer at Blockstream.
This exclusive opinion piece is part of CoinDesk's "Bitcoin at 10: The Satoshi White Paper" series.
It's been 10 years since Bitcoin's white paper was released, and the world has had 10 years to understand the profound impact of Bitcoin. We've also had 10 years of development to improve usability and scaling.
Yet despite all this time to evolve our understanding, we somehow have had the emergence of zealots that attempt to interpret the Bitcoin white paper as if it were scripture.
The Bitcoin white paper is not a bible, it wasn't even meant to be definitive.
Case in point, Bitcoin's white paper was released in October 2008, just a few months before the source code for version 0.1 was made publicly available. But, the software itself had already been in development for a year and a half and contained features and important consensus rules that were not mentioned at all in the white paper.
The white paper was intended as an introductory text for the cypherpunk community. Satoshi went as far as to say he was "better with code than words" in an email to Hal Finney shortly after the white paper's release.
This will prove obvious to those who know the code, as there are quite a few things not mentioned in the white paper, and it even included some claims that were incorrect.
- 21 million coin cap. Although a 'predetermined number' is referred to, Satoshi only provided the schedule and cap when he announced the release of the code.
- Longest chain. The chain representing the majority-accepted transaction history is frequently referred to as the "longest chain," when today we know that this is not the case. The change from 'Height' to 'ChainWork' was authored by Satoshi in July 2010. The white paper itself was not updated.
- ASIC mining. CPU mining is mentioned throughout the paper. Satoshi later stated that "compute clusters will eventually hog all the generated coins" and that he didn't "want to hasten that day." Looking back, it's inevitable that a successful Bitcoin would result in CPU mining becoming irrelevant.
- Difficulty algorithm. As outlined in the white paper, this would have used a moving average and not the set 2016 block periods implemented in the code, seriously altering the incentives to resist change.
- Bitcoin script or smart-contract system. Satoshi would later suggest that Bitcoin scripts could be used for "escrow transactions, bonded contracts, third party arbitration, multi-party signature," but script capability was not mentioned at all in the white paper.
Text in the Wind
But if the white paper quickly fell out of date, Satoshi didn't seem to notice.
He didn't even bother to correct the white paper to make it more accurately reflect the code he released. I imagine that his focus was very much on the live network's code base and not a paper that was already becoming irrelevant.
This is important to note as despite changes that altered the design of the live network substantially, the white paper has become a pseudo-religious text for some who seemed to view the subsequent open-source evolution of the code as tantamount to sacrilege. This still baffles me.
Of course, Satoshi continued to comment on and commit code to Bitcoin long after its initial release. This was a period where Satoshi was finally able to discuss with others how the system might evolve over time. His ideas were not always perfectly thought out and he didn't present himself as being infallible, yet he continued to have flairs of ingenuity.
One idea, which eventually caught the imagination of others, was payment channels or "high frequency trades" as he called them. This allowed users to repeatedly update the state of an unconfirmed transaction prior to it being broadcast and leveraged some of the features present in Bitcoin's code, which (*gasp*) weren't mentioned in the white paper.
This particular "post-white paper" idea, along with Dr. Christian Decker's "Duplex Micropayment Channels" paper, formed the basis of today's Lightning Network. As other developers took the concept, addressed security issues, and extended it, we now have created a rapid, peer-to-peer Bitcoin micropayments network.
The point I'm making with these examples of white paper omissions and differences to the implementation itself is that while software evolves, read-only text documents do not. The white paper was an attempt at a high-level introduction by someone who had already put far more time and care into writing the code itself.
It omitted many details that have been key to Bitcoin's success so far, and yet some people have tried elevating it to the position of holy scripture in misguided attempts to force minority design decisions.
Evolution in Progress
All this goes to show that the software itself defines what Bitcoin is and that it's been shaped by the collective vision of the majority over the years to programmatically express what rules they want to see enforced on the network.
The written word is open to personal interpretation. The execution of code isn't, and for the rules encoded in a consensus critical system, the code is all that matters.
When he published Bitcoin's source code, I think Satoshi knew that he was handing over a creation of great social value to the public, but I don't think he could have imagined how far it would come in just 10 years.
Putting the price and other distractions aside, the amount of human effort being poured into Bitcoin's infrastructure today is something that encourages me, especially as so much work is carried out by volunteers. Just consider that the latest major release (0.17) contains over 700 pull requests and 135 developers contributed to it.
Sync times are improving even though the blockchain continues to grow; we can still sync the entire Bitcoin blockchain from genesis block to chain tip in under two-and-a-half hours. Ethereum, not so much.
We have new technologies like G'Root, Bulletproofs, Confidential Transactions, Confidential Assets, PSBT, and Signature Aggregation (Schnorr) for the base layer, while the Lightning Network allows developers to experiment permissionlessly without needing consensus changes to the base protocol.
With the launch of the Liquid Network, we're starting to realize the promise of sidechains with the first real solution to improving inter-exchange settlement. All of these developments will allow innovation in the Bitcoin space to accelerate at an unprecedented pace.
A New Course
There's no question that Satoshi did everyone a great service when he released the Bitcoin source code. He used economic and social incentives to solve a problem computer scientists had been working on for years.
Perhaps an equal stroke of genius was his decision to leave the project.
By removing himself as a single point of failure and definitively handing over control of the protocol to everyone else, he let the world have a say in its evolution through the majority consensus mechanism his code incentivized.
Before Steve Jobs passed, he left these words of advice to Tim Cook. It makes sense because it wouldn't be productive or effective for Apple employees to spend their time guessing what Jobs would have wanted.
The future is always changing and past wisdom alone cannot serve as a crutch for making the correct decisions to move forward.
I'm sure Satoshi also wouldn't have wanted people to try and divine the future from his white paper, especially since the Bitcoin codebase has been extensively amended by both himself and others. You certainly can't hold up a piece of 10-year-old text and expect it to have any authority over a decentralized network of individuals making personal choices.
STORY CONTINUES BELOW
Let the code speak for itself.
Image via Samson Mow