How does the bitcoin source code define its 21 million cap?
Many of bitcoin’s staunchest critics have expressed doubt about its 21 million cap, but perhaps the most mindless criticism relates…,
This article was prompted by the overwhelming response to an earlier version of the diagram below as tweeted by our good friend Taylor Pearson:
Imagine yourself to be a University Dean in the position of creating a new course on blockchains. To which department would such a course belong? Computer Science or Business? Mathematics or Economics? Sociology? Political Science? Finance? Philosophy?
In fact, any of these departments would be appropriate. Blockchains today are still cutting edge and mysterious, but one day they will be as ubiquitous as cars, computers, or the Internet. And, just like any of these more familiar technologies, one day many academic departments will offer courses on them, each with their own particular viewpoint. Blockchains are interdisciplinary.
The diagram projects blockchains and several similar concepts and technologies onto a Venn diagram. Think of it as “taking the spectrum” of the concept of a blockchain, breaking the pure white light into its constituent colors.
Blockchains are just as much a new socioeconomic pattern as they are a new kind of technology, and the split between “technical” disciplines on the left (Distributed Systems & Cryptography) and “non-technical” disciplines on the right (Politics & Economics) emphasizes this.
By discussing systems that are like blockchains but are somehow still not blockchains, we will increase the contrast and render our main subject of blockchains in a clearer light.
Let’s begin by discussing each of the individual, base disciplines of the diagram.
Blockchains use cryptography to create asymmetries and what Vitalik Buterin calls a defender’s advantage:
Cryptography is truly special in the 21st century because cryptography is one of the very few fields where adversarial conflict continues to heavily favor the defender. Castles are far easier to destroy than build, islands are defendable but can still be attacked, but an average person’s ECC keys are secure enough to resist even state-level actors. — Vitalik Buterin
I can easily control my coins with my private key, and not even a nation state’s worth of hacking can break my control (unless they somehow acquire a $5 wrench). To enjoy the defender’s advantage, you must have a basic understanding of cryptography (what it does, not how it does it). The video below does a particularly excellent job of demonstrating Diffie-Hellman key exchange, a central practice in modern cryptography:
These kids are named Pippa & Barnaby which literally could not be more British. [Source]
These physical analogies are very helpful when first approaching the subject, but, like all analogies, it is important to know where they fail. Cryptographic locks are not really like lockboxes of wood and metal that can be taken out back and cracked open. Forgetting or losing your private key puts on you the wrong side of the defender’s advantage, in the position of having to hack yourself (as Mark Fraunfelder’s recent article wonderfully illustrates).
This leads to two tradeoffs that together create a Defender’s Dilemma:
If you truly understand the power of strong cryptography, you understand why it is both so useful and, at the same time, why it is so difficult for average users to wield effectively.
This is why cryptography, for a very long time, was only wielded by the powerful, first by governments and then by corporations. It was only during the rise of the Internet that the average person would encounter any real personal benefits from cryptographic protocols such as HTTPS (which was once dependent on the Diffie-Hellman key exchange depicted in the video above).
It is not coincidental that the average person’s first interaction with distributed systems technology was the Internet. Distributed systems and cryptography are a natural fit for two reasons:
But what are distributed systems?
The Internet is in many ways a highly centralized system, but there are several truly distributed systems that operate within it. BitTorrent was just as distributed as any blockchain and laid the technical foundation for systems like Bitcoin. P2P protocols also bridged socially legitimate (distributing open-source software) and illegitimate (pirating) use cases, just as Bitcoin and other cryptocurrencies such as Monero or Zcash have done.
Distributed systems have some clear strengths over their centralized counterparts. They are more robust than centralized systems because they usually have high amounts of built-in redundancy. They can operate at a larger scale and do more things at once since they are aggregating capacity and throughput across all their individual members.
But distributed systems also have to deal with inter-agent communication and coordination overhead that can sometimes make them slower or more unwieldy than their centralized counterparts. Trustless distributed systems such as Bitcoin, which are intended to operate in an adversarial environment, have additional overhead.
There is a famous result from distributed systems theory known as the CAP theorem, the essence of which is that the price we pay for the greater robustness and scale of distributed systems is that they have difficulty being 100% consistent about recent changes. They require some time for such changes to propagate and get stored throughout the network. This abstract theorem is the ultimate reason for crypto folk-wisdom such as, “Wait for six confirmations before you spend any funds from an incoming Bitcoin transaction.”
The screenshot below is from an online distributed systems simulator and shows a network in the middle of synchronizing data:
Many kinds of distributed systems adopt the common strategy of the append-only log: a continuously growing data structure that is only ever written to and never deleted from. These append-only logs give each agent within a distributed system a full copy of the global history or state of the system. This helps the agents self-verify and recover if they ever get “lost” or out-of-sync with the rest of the crowd.
Blocks in a blockchain form a Merkle tree, a cryptographic summary of all the transactions the block contains, braided together into a single summary statistic called the Merkle root. If any of the details of any of the transactions in the block (or their ordering) change, the Merkle root will change. Each new set of candidate transactions combines its own Merkle root with that of the prior block, and this twinned alloy is forged with hashpower from miners into a new block, extending the chain. From the perspective of distributed systems, the blocks in a blockchain are cryptographically connected entries in an append-only log. All participants in the network can independently validate that the blocks they receive are cryptographically linked back to the original genesis block.
It is often repeated that a blockchain is a “distributed ledger” or “distributed database,” but if we were to judge it against other distributed databases, it would make a poor showing. In comparison to modern distributed databases, blockchains are slow, ponderous, unnecessarily redundant and overly paranoid. The distributed databases that power Facebook and Google handle millions of requests per second and accumulate obscene amounts of data over time. Bitcoin’s blockchain is still only capable of processing a few tens of transactions per second. (Visa, the usual comparison in this argument, is somewhere between the scale of Bitcoin and Facebook.) You would never want to use a blockchain to power your cloud computing stack, or your social media application, or your global financial system.
Blockchains are the right engineering implementations only for those applications that require a fully distributed system in an adversarial environment. Blockchains achieve this by combining cryptography and distributed systems with an economically valuable token (such as BTC, ETH, etc.). This combination allows blockchains to become history’s first distributed consensus technology.
Many bankers have told me that they understand why blockchains are going to change the back-office IT of the financial industry — because of their greater transparency and the ease with which they can track data — but they just don’t understand why people have to value the tokens of a blockchain. This leads to the shibboleth: “Blockchain is valuable but Bitcoin isn’t”— a way of signaling, “I’m a forward-thinking financier but, hey man, I’m no anarchist.”
If you have built your career in finance or economics it is tempting to believe that all the benefits of blockchains (whatever they may be) are achievable without the concept of cryptocurrency or tokens with real economic value. But this is a category error. Blockchains are not just a new kind of database or technology. A block chain without an economically valuable token reduces to a centralized system or database.
This is because the consensus mechanisms used by blockchains (Proof-of-Work and Proof-of-Stake, the algorithms that generate the blocks of any chain) are ultimately rooted in the economic self-interest of the miners and/or stakers. A blockchain without an economically valuable token lacks the incentive to encourage consensus and will promptly either stop functioning or be overtaken by spam.
Many blockchains have the concept of a testnet that runs in parallel, like a little sidecar, alongside the mainnet. The testnet is designed for developers to test the applications they write, and so the testnet works exactly the same way as the mainnet: it has mining/staking, transactions, balances, keys, etc. The only difference between a testnet and a mainnet is that we all share the hallucination that the tokens of the mainnet are valuable while the tokens of the testnet are worthless. Developers don’t have to worry about the “cost” when spending (and potentially losing) testnet tokens as they build their applications. This leads to better software, which is a boon to everyone.
TestNet coins are worthless, but useful. They are useful because they are worthless. If you will add value to them, they will be useless, therefore worthless. — aphorism from a popular Bitcoin testnet faucet
Unfortunately, the lack of a valued token can also lead to a collapse of the incentive structure designed to keep blockchains functioning. A historical example of this is the early Ethereum testnets vs. Kovan, the current Ethereum testnet used by Parity, a popular (though beleaguered) Ethereum node implementation. The early testnets had tokens that, by design, were worthless, so developers could freely spend them during testing. Someone(s) decided to amass a large amount of testnet Ether and use it to spam the network and prevent others from transacting. The same attack would have been much harder to execute in the Ethereum mainnet because the attackers would have had to pay the market price for the Ether they used to fund the attack. In the testnet, this market price was zero, so they could obtain a large amount of tokens quickly and spend them with impunity.
The modern Kovan testnet uses a different consensus algorithm dryly called “Proof-of-Authority.” This is a centralized “consensus” in which only members of a list of authorities can decide how blocks are attached to the testnet chain. This list of authorities only includes companies with good intentions for Ethereum and, therefore, no incentive to spam its testnet.
It is telling that the best solution to operating a blockchain without a valued token is to enforce centralization. The blockchain becomes “just a database”, (and a bad one, as we understand from the distributed systems discussion above). A centralized authority again becomes responsible for maintaining the network and creating consensus.
Blockchains replace the centralized organization with a valuable token. Bitcoin can be thought of as a “corporation” that hires workers (miners) to compete to perform consensus, incentivized through block rewards, and validated via Proof-of-Work.
Blockchains can incentivize participants (“hire workers”) around the globe using a protocol that these participants cannot violate or cheat. This is a powerful feature that has profound implications for human governance.
If you don’t already believe that Bitcoin was and is a fundamentally political project, read the words Satoshi Nakamoto (creator of Bitcoin) embedded into the very first Bitcoin block:
The Times 03/Jan/2009 Chancellor on brink of second bailout for banks — Bitcoin Genesis Block
Considering the context in which they appear (the first minting of a completely new, distributed system of money) these words are calling for revolution. To see why, recall the film V for Vendetta. This movie came out in 2006, which means it was contemporaneous with Satoshi Nakamoto’s invention of Bitcoin. Satoshi may even have seen it.
During the course of V for Vendetta, the character V blows up the the Old Bailey (a courthouse) and then performs a wide-net signal intrusion to deliver his rabble-rousing speech to the people of post-WW3 London: the system you’re in sucks; let’s all meet in a year’s time and burn this motherfucker down. During the next year, V convinces charmingly normal Natalie Portman to shave her head, adopt his worldview, and join him in his creative destruction. By the film’s climax, V sacrifices himself to save his ideals, and Natalie Portman must decide if she believes in V’s vision enough to complete his plans.
Reading Satoshi’s whitepaper was for many people like hearing V’s speech: the system you’re in sucks; let’s all gather online in crappy forums and build a new financial system…so we can burn this motherfucker down. During the next ten years, many charmingly normal programmers, libertarians, technologists and — in these heady days — even economists, bankers, and investors have taken up Satoshi’s worldview and bought into Bitcoin and blockchains. Satoshi disappeared without spending any of the $8B he is worth (in Bitcoin!), sacrificing himself to save his ideals, just like V. In a way, walking away was the greatest thing Satoshi ever did, greater even than conceiving of Bitcoin. Now the rest of us must decide how we proceed with Satoshi’s gift: the world’s first distributed consensus algorithm.
But the consensus algorithm that extends a blockchain is not itself political. It is a set of rules, a thing made of code, shaped by thermodynamics and the need to balance disparate economic self-interests.
The process of determining consensus rules, however, is intensely political. Blockchains are often presented as cold, calculating, and pre-ordained. But behind their pristine protocols are committees and foundations and cabals and tribalism: all the familiar ogres of geopolitics.
Power remains strong when it remains in the dark; exposed to the sunlight it begins to evaporate. — Samuel Huntington
The main difference between the politics of blockchains and traditional governance is that blockchains provide much greater transparency. On-chain transactions, while pseudo-anonymous, generate information about cashflows at both both micro and macro levels, making data about corruption, theft, usage patterns, engagement, and manipulation all available for real-time and post-hoc analyses. (For example, this report discusses historical spam attacks on Bitcoin.)
Participants in a blockchain are also literally wired together into a global, real-time network. Any participant can use the metadata within this network as a form of instantaneous, complete polling about meta-issues like chain governance. When you hear of “increasing support” or “greater signaling” for some hard fork, think of it as a crypto Gallup poll, a real-time survey of public opinion from miners and users of the network. Except unlike traditional political polling, which is rife with sampling errors leading to unreliable conclusions, crypto-polling has the potential to be total, directly calculating population averages instead of extrapolating them from sample averages.
Using the network to measure consensus on some political decision is extremely important, because blockchains such as Bitcoin have no leaders to officially represent them. This can be a weakness when decisiveness is needed but is an incredible strength when building robust political systems. There is no Robert Mugabe to encourage to abdicate power. There is no UN Security Council with coveted seats for stakeholders. There is no Julian Assange whose (alleged) personal misdeeds can color the public perception of political goals.
This governance without centralization (“rules without rulers”) has been an important aesthetic for Bitcoin and Ethereum, but neither has any in-protocol features to enable it; each relies on external networks such as email, online forums, GitHub, Twitter, etc. Some newer projects explicitly recognize the political nature of blockchains and are building governance primitives into their protocols (typically some variant of voting on proposals with your share of the blockchain’s tokens).
More provocatively, we can apply the technology of blockchains to the political process itself. Society has only recently and unevenly decided that blockchain tokens can store value, be used as payment, or quantify some measure of compute, storage, bandwidth, energy, or other finite resources. What happens if we decide to use blockchains to enshrine the political franchise? When sufficient numbers of individuals decide that political capital, too, is best stored in a blockchain, they enable ideas like pure demarchy or distributed nation states.
Cryptography, distributed systems, economics, and politics each inform the concept of a blockchain. Their intersections are especially interesting.
In his initial discussion of the diagram, Taylor highlighted the left-right split between “technical” disciplines (cryptography & distributed systems) and “social” disciplines (economics & politics).
Those who come from “technical” backgrounds sometimes fall in love with the novel technology inside blockchains and ignore the social aspects entirely. This leads to Panglossian projects that solve problems that no one actually has, just because someone thought they should do it with a blockchain.
Those who come from “social” backgrounds are sometimes unable (or unwilling) to understand the technological aspects of blockchains. Blockchains really do solve important problems in a fundamentally new way, but if you can’t comprehend the shape of the problem, no solution, no matter how novel and full of future promise, will seem valuable to you. Worse, if you have bought into the hype but lack technical sophistication, you may invest your time, energy, and money in projects that are fundamentally unsound.
Blockchains are both technologies and social movements. This means “technical” and “social” thinking are equally vital to the health of a blockchain, yet very few people have the background to do them both excellently. Reading A Cypherpunk’s Manifesto makes it clear that, yes, “cypherpunks write code,” but they are equally talented as social agitators. The only hope for rest of us to cross the technical/social gap is via omnivorous reading and constant collaboration.
There are many criticisms of Bitcoin and blockchains floating around online that, at their heart, fail to recognize one or another of the distributed, cryptographic, economic, or political aspects of blockchains. Missing one of these crucial pieces leads to different technologies or ideas, or to strawman criticisms of Bitcoin and blockchains.
If you misunderstand or ignore that blockchains rely on cryptography:
If you misunderstand or ignore that blockchains are distributed systems:
If you misunderstand or ignore that blockchains are driven by rational economics:
If you misunderstand or ignore that blockchains are political:
A blockchain is a distributed system using cryptography to secure an evolving consensus about an economically valuable token.
When you hear someone say they “don’t get Bitcoin,” it is usually because they are failing to grasp one of the disciplines in the diagram. As a result, they wind up comparing Bitcoin to non-blockchain systems such as the ones discussed above.
Maybe these doubters don’t understand that there is a long history of distributed systems technology creating value behind the scenes in blockchains. Perhaps they don’t grasp the advantage (and dilemma) cryptography presents to a defender in an adversarial world.
The skeptical may not realize that there are many people who truly value cryptocurrencies, providing them with economic footing for growth. Or, they may mistakenly suspect these people of being speculators, ignoring the political realities that motivate many cryptocurrency adherents.
For the doubters and skeptics, we hope this article provides a tour, not just of the reasoning, but of the modes of reasoning required to contextualize Bitcoin and blockchains and to value them properly. If someone you know doubts that Bitcoin has “real value” or suspects “it’s all just a bubble,” ask them to explain how and why Proof-of-Work secures Bitcoin transactions. A full explanation requires all of the aspects of this article.
If you enjoyed this article, here are some more resources you may enjoy:
Computer science and, in particular, cryptography and distributed systems, plus some cypherpunk classics:
Economics, money, politics, and governance:
Many of bitcoin’s staunchest critics have expressed doubt about its 21 million cap, but perhaps the most mindless criticism relates…Ted Stevenot, Stephen Hall
When Satoshi Nakamoto created bitcoin, he established in its code a fixed number of bitcoin that will ever exist. Since…Ted Stevenot
Originally published in Parker’s dedicated Gradually, Then Suddenly publication. Bitcoin is often described as a hedge, or more specifically, a…Parker Lewis