Erhalten Sie Zugang zu diesem und mehr als 300000 Büchern ab EUR 5,99 monatlich.
Bitcoin Development Philosophy is a comprehensive guide aimed at developers who have a foundational understanding of Bitcoin concepts and processes such as Proof-of-Work, block building, and the transaction life cycle. This book delves into the intricacies of Bitcoin's design trade-offs and philosophy, offering insights and context that help developers absorb over a decade of development lessons and debates. The book is organized into several chapters, each focusing on pivotal topics within Bitcoin, such as decentralization, trustlessness, privacy, finite supply, and scaling, among others. Every chapter is enriched with links and QR codes leading to recommended articles or videos, written by seasoned Bitcoin developers. It not only provides practical insights but also encourages independent exploration and critical thinking about contradictory ideas prevalent in the Bitcoin community.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 139
Veröffentlichungsjahr: 2024
Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:
Bitcoin Development Philosophy
Foreword
Preface
Acknowledgements
Decentralization
Miner decentralization
Full node decentralization
Neutrality
Grokking decentralization
Conclusion
Trustlessness
Don’t trust, verify
Conclusion
Privacy
What does privacy mean?
Why is privacy important?
Pseudonymity
Blockchain privacy
Non-blockchain privacy
Fungibility
Privacy measures
Conclusion
Finite supply
Block subsidy and transaction fees
Conclusion
Upgrading
Vocabulary
Historic upgrades
Risks
Conclusion
Adversarial thinking
Not only for Bitcoin experts
Threats
Conclusion
Open Source
Software maintenance
Permissionless development
Pseudonymous development
Selection cryptography
Review
Funding
Culture shock
Conclusion
Scaling
History
Scaling approaches
Conclusion
When shit hits the fan
Responsible disclosure
Traumatic childhood
Conclusion
Discussion Questions
Decentralization
Trustlessness
Privacy
Finite supply
Upgrading
Adversarial thinking
Open source
Scaling
About the Book
About the Authors
Sources
Cover
titlepages
toc
Start
© Chaincode Labs
This work is licensed under CC BY 4.0.
To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/
Edited by Marta Turchetta
Cover design and typesetting by Konsensus Network
ISBN 978-9916-723-58-6Hardcover
978-9916-723-59-3Paperback
978-9916-723-60-9E-book
https://konsensus.network
The realm of Bitcoin is vast, housing within its domains various concepts, processes, and systems that are both revolutionary and intricate. It demands not just technical acuity but a holistic understanding of its fundamental principles and inherent trade-offs. Bitcoin Development Philosophy seeks to journey through this realm, unraveling the different aspects of Bitcoin, and serving as a guide for those who wish to delve into the complex world of Bitcoin protocol development. It is a guide, a companion, and a lens through which the significance of Bitcoin can be appreciated in its full spectrum.
Bitcoin Development Philosophy is a contemplative exploration into the very essence of Bitcoin. It aims to equip developers with a good understanding of the philosophical underpinnings and design paradigms of Bitcoin, enabling them to navigate its complex realms with informed discretion and curiosity. This book is the culmination of lessons learned over a decade of Bitcoin development and public debate, designed to provide context and clarity to both seasoned and novice developers.
Our profound gratitude to Chaincode Labs for commissioning and funding this insightful piece of work and to every individual who contributed their insights and expertise in the making of this guide. We extend our heartfelt thanks to Kalle Rosenbaum, the main author, and Linnéa Rosenbaum, the co-author, whose invaluable insights and efforts have shaped this book. The pursuit of knowledge is a collective endeavor, and this work is imbued with the wisdom and experiences of many brilliant minds from the Bitcoin development community.
This chapter analyzes what decentralization is and why it’s essential for Bitcoin to function. We distinguish between the decentralization of miners and that of full nodes, and discuss what they bring to the table for censorship resistance, one of Bitcoin’s most central properties. The discussion then shifts to understanding neutrality - or permissionlessness towards users, miners, and developers - which is a necessary property of any decentralized system. Lastly, we touch upon how hard it can be to grasp a decentralized system like Bitcoin, and present some mental models that might help you grok it.
A system without any central point of control is referred to as being decentralized. Bitcoin is designed to avoid having a central point of control, or more precisely a central point of censorship. Decentralization is a means to achieve censorship resistance.
There are two major aspects of decentralization in Bitcoin: miner decentralization and full node decentralization. Miner decentralization refers to the fact that transaction processing isn’t performed nor coordinated by any central entity. Full node decentralization refers to the fact that validation of the blocks, i.e. the data that miners output, gets done at the edge of the network, ultimately by its users, and not by a few trusted authorities.
There had been attempts at creating digital currencies before Bitcoin, but most of them failed due to a lack of governance decentralization and censorship resistance.
Miner decentralization in Bitcoin means that the ordering of transactions isn’t carried out by any single entity or fixed set of entities. It’s carried out collectively by all the actors who want to participate in it; this miners’ collective is a dynamic set of users. Anyone can join or leave as they wish. This property makes Bitcoin censorship-resistant.
If Bitcoin were centralized, it would be vulnerable to those who wished to censor it, such as governments. It would meet the same fate as earlier attempts to create digital money. In the introduction of a paper titled “Enabling Blockchain Innovations with Pegged Sidechains”, the authors explain how early versions of digital money weren’t equipped for an adversarial environment (see also Adversarial thinking):
— Enabling Blockchain Innovations with Pegged Sidechains (2014)
It became clear that using a central server to order transactions was not a viable option due to the high risk of censorship. Even if one replaced the central server with a federation of a fixed set of n servers, of which at least m must approve of an ordering, there would still be difficulties. The problem would indeed shift to one where users must agree on this set of n servers as well as on how to replace malicious servers with good ones without relying on a central authority.
Let’s contemplate what could happen if Bitcoin were censorable. The censor could pressure users to identify themselves, to declare where their money is coming from or what they’re buying with it before allowing their transactions to enter the blockchain.
Also, the lack of censorship resistance would allow the censor to coerce users into adopting new system rules. For example, they could impose a change that allowed them to inflate the money supply, thereby enriching themselves. In such an event, a user verifying blocks would have three options to handle the new rules:
Adopt: Accept the changes and adopt them into their full node.
Reject: Refuse to adopt the changes; this leaves the user with a system that doesn’t process transactions anymore, as the censor’s blocks are now deemed invalid by the user’s full node.
Move: Appoint a new central point of control; all of the users must figure out how to coordinate and then agree on the new central control point. If they succeed, the same issues will most likely resurface at some point in the future, considering that the system remained just as censorable as it was before.
None of these options are beneficial to the user.
Censorship resistance through decentralization is what separates Bitcoin from other money systems, but it is not an easy thing to accomplish due to the double-spending problem. This is the problem of making sure no one can spend the same coin twice, an issue that many people thought was impossible to solve in a decentralized fashion. Satoshi Nakamoto write in his Bitcoin whitepaper about how to solve the double-spending problem:
In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions.
— Satoshi Nakamoto – Bitcoin: A Peer-to-Peer Electronic Cash System (2008)
Here he uses the peculiar-sounding phrase “peer-to-peer distributed timestamp server”. The keyword here is distributed, which in this context means that there is no central point of control. Nakamoto then goes on to explain how proof-of-work is the solution. Still, no one explains it better than Gregory Maxwell on Reddit, where he responds to someone who proposes to limit miners’ hash power to avoid potential 51% attacks:
A decentralized system like Bitcoin uses a public election. But you can’t just have a vote of ’people’ in a decentralized system because that would require a centralized party to authorize people to vote. Instead, Bitcoin uses a vote of computing power because it’s possible to verify computing power without the help of any centralized third party.
— Gregory Maxwell – r/Bitcoin subreddit (2019)
The post explains how the decentralized Bitcoin network can come to an agreement on transaction ordering through the use of proof-of-work. He then concludes by saying that the 51% attack is not particularly worrisome, compared to people not caring about or not understanding Bitcoin’s decentralization properties.
A far bigger risk to Bitcoin is that the public using it won’t understand, won’t care, and won’t protect the decentralization properties that make it valuable over centralized alternatives in the first place.
— Gregory Maxwell – r/Bitcoin subreddit (2019)
The conclusion is an important one. If people don’t protect Bitcoin’s decentralization, which is a proxy for its censorship resistance, Bitcoin might fall victim to centralizing powers, until it’s so centralized that censorship becomes a thing. Then most, if not all, of its value proposition is gone. This brings us to the next section on full node decentralization.
In the paragraphs above, we’ve mostly talked about miner decentralization and how centralizating miners can allow for censorship. But there’s also another aspect of decentralization, namely full node decentralization.
The importance of full node decentralization is related to trustlessness (see Trustlessness). Suppose a user stops running their own full node due to, for example, a prohibitive increase in the cost of operation. In that case, they have to interact with the Bitcoin network in some other way, possibly by using web wallets or lightweight wallets, which requires a certain level of trust in the providers of these services. The user goes from directly enforcing the network consensus rules to trusting that someone else will. Now suppose that most users delegate consensus enforcement to a trusted entity. In that case, the network can quickly spiral into centralization, and the network rules can be changed by conspiring malicious actors.
In a Bitcoin Magazine article, Aaron van Wirdum interviews Bitcoin developers about their views on decentralization and the risks involved in increasing Bitcoin’s maximum block size. This discussion was a hot topic during the 2014-2017 era, when many people argued over increasing the block size limit to allow for more transaction throughput.
A powerful argument against increasing the block size is that it increases the cost of verification (see the Scaling chapter). If verification cost rises, it will push some users to stop running their full nodes. This, in turn, will lead to more people not being able to use the system in a trustless way. Pieter Wuille is quoted in the article, where he explains the risks of full node centralization.
If lots companies run a full node, it means they all need to be convinced to implement a different rule set. In other words: the decentralization of block validation is what gives consensus rules their weight. But if full node count would drop very low, for instance because everyone uses the same web-wallets, exchanges and SPV or mobile wallets, regulation could become a reality. And if authorities can regulate the consensus rules, it means they can change anything that makes Bitcoin Bitcoin. Even the 21 million bitcoin limit.
— Pieter Wuille – The Decentralist Perspective or Why Bitcoin Might Need Small Blocks (2015)
There you go. Bitcoin users should run their own full nodes to deter regulators and big corporations from trying to change the consensus rules.
Bitcoin is neutral, or permissionless, as people like to call it. This means that Bitcoin doesn’t care who you are or what you use it for.
bitcoin is neutral, which is a good thing, and the only way it can work. if it was controlled by an organisation it’d just be another virtual object type and I would have zero interest in it
— wumpus on freenode IRC (punctuation added) #bitcoin-core-dev 2012-04-04T17:34:04 UTC
As long as you play by the rules, you’re free to use it as you please, without asking anyone for permission. This includes mining, transacting in, and building protocols and services on top of Bitcoin.
If mining were a permissioned process, we would need a central authority to select who’s allowed to mine. This would most likely lead to miners having to sign legal contracts in which they would agree to censor transactions according to the whims of the central authority, which defeats the purpose of mining in the first place.
If people transacting in Bitcoin had to provide personal information, declare what their transactions were for, or otherwise prove that they were worthy of transacting, we would also need a central point of authority to approve users or transactions. Again, this would lead to censorship and exclusion.
If developers had to ask for permission to build protocols on top of Bitcoin, only the protocols allowed by the central developer granting committee would get developed. This would, due to government intervention, inevitably exclude all privacy-preserving protocols and all attempts at improving decentralization.
At all levels, trying to impose restrictions on who gets to use Bitcoin for what will hurt Bitcoin to the point where it’s no longer living up to its value proposition.
Pieter Wuille answers a question on Stack Exchange about how the blockchain relates to normal databases. He explains how permissionlessness is achievable through the use of proof-of-work in combination with economic incentives. He concludes:
Using trustless consensus algorithms like PoW does add something no other construction gives you (permissionless participation, meaning there is no set group of participants that can censor your changes), but comes at a high cost, and its economic assumptions make it pretty much only useful for systems that define their own cryptocurrency. There is probably only place in the world for one or a few actually used ones of these.
— Pieter Wuille – Stack Exchange (2019)
He explains that, in order to achieve permissionlessness, the system most likely needs its own currency, thereby “limiting the use cases to effectively just cryptocurrencies”. This is because permissionless participation, or mining, requires economic incentives built into the system itself.
A compelling aspect of Bitcoin is how hard it is to grasp that no one controls it. There are no committees or executives in Bitcoin. Gregory Maxwell, again on the Bitcoin subreddit , compares this to the English language in an intriguing way:
Many people have a hard time understanding autonomous systems, there are many in their lives things like the english language-- but people just take them for granted and don’t even think of them as systems. They’re stuck in a centralized way of thinking where everything they think of as a ’thing’ has an authority that controls it.
Bitcoin doesn’t focus on anything. Various people who have adopted Bitcoin chose of their own free will to promote it, and how they choose to do so is their own business. Authority fixated people may see these activities and believe they’re some operation by the bitcoin authority, but no such authority exists.
— Gregory Maxwell – r/Bitcoin subreddit (2022)
Fish schools have no leaders.
The way Bitcoin works through decentralization resembles the extraordinary collective intelligence found among many species in nature. Computer scientist Radhika Nagpal speaks in a Ted talk about the collective behavior of fish schools and how scientists are trying to mimic it using robots.
Secondly, and the thing that I still find most remarkable, is that we know that there are no leaders supervising this fish school. Instead, this incredible collective mind behavior is emerging purely from the interactions of one fish and another. Somehow, there are these interactions or rules of engagement between neighboring fish that make it all work out.
— Radhika Nagpal – What intelligent machines can learn from a school of fish (2017)
