Is It Time to Increase the Block Size?
Bitcoin is maturing. As an open-source technology, change requires consensus among developers. A dramatic debate has gone public concerning this issue. Two experts hash it out.
Recently I've seen a number of people in the Bitcoin ecosystem commenting that they think that Bitcoin blocks should always be completely full. This is analogous to thinking that Starbucks should always be completely sold out of coffee.
Block space is like coffee in that it is a consumer good. When consumers buy coffee, they are expressing their desire for this consumer good. When Bitcoin users pay transaction fees for inclusion in a block, they are expressing their desire for the consumer good of block space as well.
In the coffee market, there are numerous suppliers of coffee. We have Starbucks, Tully's, Costa, and numerous others. We also have competitors to drinking coffee, such as Coke, Pepsi, water, caffeine pills, and a myriad of other options. Consumers will look at the price of coffee from the various suppliers, and coffee alternatives. They will then decide the amount they wish to purchase based on their individual preferences.
Some will be willing to pay almost any price for coffee, but others will simply choose to do without. If the price offered on the market for coffee is high enough, additional suppliers will be attracted to enter the market and fill this demand. If the price of coffee is low, the coffee producers who are the least efficient will be forced to leave the market.
The exact same situation applies to Bitcoin block space as well. We the consumers, have lots of options. They include Bitcoin, Litecoin, Ripple, Ethereum, Dogecoin, and many many others. We also have non-blockchain based options as well. These include banks, credit cards, PayPal, cash, or simply forgoing a specific economic transaction.
Potential Bitcoin users will look at the costs involved in using all of these systems. These costs include network fees, ease of use of the wallet software, the number of accepting merchants, payment confirmation speed, safety, difficulty of opening an account, legal risks, and numerous other aspects. Consumers will choose the one that most closely matches their desires, and it certainly won't be Bitcoin if Bitcoin doesn't do the best job of meeting their desires.
Just as it would be a mistake for Starbucks to intentionally not have enough coffee to meet the demands of their customers, it would also be a mistake for Bitcoin miners to not supply enough block space to meet the demands of their users.
Any time a Bitcoin user is willing to pay a fee that is larger than the marginal cost of including the transaction in a block, it makes economic sense for a miner to include it. Whether it is for the sale of coffee, or block space, only someone who lacks an understanding of economics or business would want to turn away paying customers.
This brings us to the topic of externalities. An economic externality is a cost or benefit not born directly by the parties involved in a transaction. In an ideal world,we would find a way to internalize all externalities so the costs are born solely by the participants. When Starbucks sells coffee, there are likely some externalities that should be taken into consideration.
Perhaps people on caffeine drive more aggressively, causing more traffic accidents. Or perhaps they are more alert, and therefore more productive at their jobs. It's hard to know exactly, but these externalities need to be taken into consideration when it comes to both coffee sales, and the Bitcoin block size.
The only negative externalities I can think of regarding mining an extra bitcoin transaction in a block are:
- The additional bandwidth required to relay that transaction across the network.
- The extra CPU time required to validate the transaction.
- The extra storage space that will be required to store the transaction.
- The potential for fewer nodes in the network because of some combination of the three issues above.
Let's consider these one at a time:
1. Additional bandwidth.
It's hard to know just how big of a problem this is, but with connectivity becoming faster and faster, year by year, more and more places around the world will have the ability to relay more and more transactions each year. If a block takes too long to relay the chances of it being orphaned increases. This chance puts a downward pressure on the maximum block size that miners will be willing to create.
The right size today is certainly different than the right size next year. In the end, I see the best option to be letting the individual miners and nodes decide how much bandwidth they are willing to allocate to the relaying of individual transactions, and bitcoin blocks. The least efficient miners and nodes will drop off the network, just as the least efficient producers in any industry would.
2. Extra CPU Time.
Every transaction included in a block requires some additional time to be validated by a full node, or for a miner to create a block that includes it. Only the parties involved in the transaction directly benefit from it, but every full node across the network has to pay the price of validating it.
The time it takes to add additional transactions to a block increases the likelihood of a block being orphaned, and therefore puts a downward pressure on the block size that miners are willing to create, or relay. Even without a maximum block size hard coded into the protocol, there would still likely be a practical maximum block size because of this, as well as point #1.
3. Extra Storage Space.
For me, this seems to be one of the most troubling externalities. All of these additional transactions need to be stored in the block chain that is held by everyone running a full node. If the block chain becomes too large, not enough people will be willing to run a full node. If there are too few nodes on the network, Bitcoin becomes more susceptible to outside influences, and loses some of its censorship resistance.
The good news is that like bandwidth, storage is getting cheaper and cheaper every single year. Even today, storage in a relatively modest computer could keep up with 100 MB blocks, or about 5TB worth of data per year. In the not so distant future 1GB, or even 1TB blocks wont be an issue from a storage perspective either.
4. Fewer Nodes
If the above three issues become serious enough, fewer and fewer people will be willing to run full nodes, and bitcoin will lose some of its censorship resistance. I think this is one of the biggest risks we have regarding Bitcoin, but as the great Frederic Bastiat reminded us, a good economist always considers what is seen, and what is not seen.
Today we have around 5,000 full nodes around the world, with a user base of just a few million people. If Bitcoin is allowed to scale to have hundreds of millions of users, or even a billion users, there will be a much larger pool of people to draw from to run full nodes. This means that there will likely be a much larger absolute number of full nodes, even if it's a smaller percentage of bitcoin users that are running these full nodes. When it comes to censorship resistance the absolute number a full nodes is the most important characteristic, not the percentage of users running a full node.
It's also important to keep in mind that there are dozens of positive externalities from wide Bitcoin use.
- Governments will no longer be able to inflate the money supply.
- Capital controls will come to an end.
- Wars will no longer be able to be financed by inflation.
- It will be made much harder for governments to hide financial waste or corruption.
- People around the world can interact financially with each other much more freely than they can today.
- The value of bitcoin will go up, meaning the value of the block reward has gone up, meaning more resources will be devoted to mining, meaning Bitcoin is more secure, meaning more people will use Bitcoin. It's a self reinforcing feedback loop.
This list goes on and on, but it is important to remember than most of these positive externalities only become a reality if the vast majority of the world starts to use Bitcoin. That will never happen if Bitcoin is artificially restrained from growing to meet the demands of people who want to use it.
Increase the Block Size
Numerous people from Bitcoin Core have directly told me, there is no technical reason why the block size can't be increased today. They are simply not allowing it for “economic” and social reasons.
A point made by the great economist Murray Rothbard is entirely relevant to this situation: It is no crime to be ignorant of distributed cryptographic consensus networks, which are, after all, a specialized discipline, but it is totally irresponsible to have a loud and vociferous opinion on this subject while remaining in this state of ignorance.
I would never dream of telling the current Bitcoin Core team the correct way to build a cryptographic consensus network, but the small block proponents are having loud and vociferous opinions on economic subjects while remaining in a state of ignorance.
There is nothing advantageous to artificially limiting the block size. It will simply cause potential Bitcoin users to use something else. It's time to let the cryptographers do cryptography, while the economists consider the economics.
As someone who spent most of my educational career studying economics, I'm sure this was the reason I became the first person in the world to start investing in Bitcoin companies, including many of the most prominent companies in the ecosystem today.
As someone who is still holding the vast majority of own my net worth in bitcoin, I want to do everything I can to make sure that Bitcoin is a world wide success. Artificially restricting the amount of block space we produce is just as insane as Starbucks artificially restricting the amount of coffee they produce.
It's time to end the block size blockade.
Like the Avengers, Bitcoin is in the midst of a civil war. Or at least that’s how the media portrays it.
For those that are unaware, the Bitcoin protocol contains a built-in limitation: only 1 MB of transaction data can be transmitted in each “block” of transactions, which settle about every ten minutes. This blocksize cap was implemented by Satoshi Nakamoto himself, as a means of preventing a particular denial-of-service attack on the network.
As a huge fan of the Foundation for Economic Education, I still disagreed with a recent article by Roger Ver, colloquially known as “Bitcoin Jesus,” in favor of raising the blocksize cap. Let me preface this by saying that Roger Ver is an asset to the libertarian movement. His devoted advocacy for free markets and financial support for so many institutions have done tremendous good. However, when it comes to the issue of the blocksize cap, I believe Roger has let his zeal for Bitcoin take over the world to cloud his better judgement.
It’s easy to understand why raising the blocksize has such appeal, and why this position is covered favorably by large media outfits, from NPR to The New York Times. It sounds simple and straightforward: we want more transactions on the blockchain, so let’s just raise the cap, right? Thus, it feels natural that the people who are opposed to raising the blocksize are opposed to the success of Bitcoin.
Indeed, on r/btc, a Bitcoin-devoted subreddit that Ver moderates, conspiracy rumors abound that Bitcoin Core developers, several of whom work for a startup called Blockstream, are actively trying to limit Bitcoin in order to force more traffic onto their private networks. Nothing could be further from the truth; Blockstream is merely a vehicle for financing the development of this technology, funding which was sorely needed prior to Blockstream’s creation.
Every Blockstream product is open-source software; meaning that, just like Bitcoin, the entire world is free to examine, run, and fork Blockstream’s code as they choose. Just as important, the founders of Blockstream have a deep history in the fight for internet freedom. Greg Maxwell, formerly of the Mozilla Foundation, stated:
“When I work[ed] in the [Internet Engineering Task Force] with other long-time developers of the protocols of the internet, there is almost a ubiquitous regret that we built an internet where encryption wasn’t a default and always on… I don’t want to make the same mistake with money. I think that if bitcoin were going to displace other forms of money, we need to improve privacy.”
Maxwell has gone beyond just talk. He invented CoinJoin and Confidential Transactions, two protocols that improve the privacy of Bitcoin transactions tremendously. Dr. Adam Back, meanwhile, has been involved in the cypherpunk movement for decades. Back invented Hashcash, the Proof-of-Work system that is the core component of Bitcoin (no, not the blockchain). Back is one of only six citations in Satoshi’s Bitcoin white paper. The notion that these individuals or their colleagues are trying to sabotage Bitcoin is preposterous, and anyone who advances that position should be discredited. As Andreas Antonopolous correctly noted, “One way [opponents of Bitcoin] can jam the system is by trolling, sowing dissent, assuming bad faith, and throwing a lot of negativity into the conversation.”
Rather, the position for why the blocksize cap should remain at 1 MB is subtle and requires a more in-depth understanding of how this technology works, and, more generally, how successful networks are built. I will try to explain so below.
Sex, Drugs, Rock & Roll
In his essay, Roger analogizes Bitcoin to Starbucks. According to him, the 1 MB cap is like limiting a Starbucks to twenty customers in a day. If they did that, there would be no way Starbucks would be successful. But Bitcoin is more like a Starbucks that the government is constantly trying to shut down. It only exists because it can’t be shut down.
Bitcoin is regulatory arbitrage at its finest, the monetary equivalent of what BitTorrent is to the sharing of media content. When users send Bitcoin from one person to another, instead of recording the transaction on a single server, like Paypal or any other bank, miners compete to bundle transactions into blocks. If the government regulates or shuts down any given mining operation, there will be others, somewhere in the world, willing to step up and compete for the block reward. The system thus far has created a perfect balance, with just enough decentralization to keep its independence, but just enough centralization to eliminate redundancies.
Consequently, operating a blockchain is expensive. Very expensive. In order to record a transaction across thousands of servers, some of which may be adversarial to the network, it is much more expensive than traditional finance, where only one entity like Paypal needs to operate a server, acting as a trusted, but regulated, third party.
The beauty of Bitcoin is that it can operate in conditions where other payment networks cannot work–when Wikileaks is blocked by banks, when escorts cannot use their credit cards to buy ads on Backpage, or when drugs users want their drug-du-jour off the Deep Web. Bitcoin is for the underserved–markets that cannot exist because government regulations forbade them.
Sadly, Bitcoin has been marketed for years as a free/cheap network for transactions, but this is flatly untrue. Bitcoin, as it currently stands, is poorly designed for retail, which is why payment processors like Bitpay are struggling despite millions in venture capital. Supporters of raising the Bitcoin blocksize bought into this narrative so deeply, they believe that Bitcoin must remain cheap to use. But Bitcoin’s users, the underserved, don’t care about free transactions, they care about the transaction freedom.
You Break it, You Buy It
In their mistaken zeal to keep Bitcoin cheap, Roger Ver and his supporters are pushing policies that jeopardize the health of the network.
One of the theories he outlines is that more block space leads to cheaper transactions and more users, which means more nodes (individuals running the Bitcoin software, thereby verifying the integrity of the network) and hence a more robust network. But there’s little evidence that Bitcoin’s users are concerned about the cost of using the network.
Again, these are the underserved; they’ve come to Bitcoin because their needs aren’t met by the status quo, and they aren’t swayed by a high cost of transaction. Second, there’s no evidence that these new users will actually run fully verifying nodes. More likely, they’ll run a lightweight wallet, like Mycelium or Breadwallet, that allow the user to transact but does not contribute to the network’s security.
Roger goes into detail about how increased storage, bandwidth, and CPU power will mitigate the cost of increased blocks. Yet none of this matters. When blocks of transactions are packaged by miners, they must be relayed across the network. Therefore, what matters in the race between miners to discover the next block and win the 25 Bitcoin block reward is the latency, i.e. how long the block takes to propagate.
Moore’s law, Nielsen’s law, and other phenomenon of advances in computing and networking power affect all miners equally, so Roger’s point is irrelevant. On the other hand, if the latency increases (which it would invariably do if we start producing 2, 8 or 20 MB blocks), the miners will begin producing more “orphan blocks,” i.e. blocks of transactions that are wasted because another block produced by another miner spreads across the network first. Thus, larger blocks encourage miners to further centralize in order to reduce their propagation time, seeing as centralized miners can share new blocks amongst their partners first before sending it to the entire network.
Raising the block size would also require implementing a “hard fork.” Because the Bitcoin network requires consensus on each block added to the blockchain, everyone must run software that adheres to the same core parameters. Raising the blocksize breaks those parameters, hence everyone must upgrade at once, or else be kicked off the network. Imagine if everyone in the world had to upgrade to the newest version of Windows at the exact moment it’s released, or else their computer would not be able to communicate with any of those running the new version. It would be chaos.
A hard fork has not been tried in Bitcoin for a very long time, and for good reason; as the network has grown, the difficulty of pulling it off has commensurately grown. Thus, Core developers prefer “soft forks:” upgrades that don’t break core parameters, and allow individuals to upgrade at their leisure, while still allowing them to participate. This is the cautious, and in my opinion, correct, approach to implementing upgrades.
Planes, Trains, and Automobiles
The previous two sections might sound pessimistic; like Bitcoin is only destined to be used by prostitutes, drug dealers, and scofflaws. Thanks to the work of folks in Bitcoin Core, these dynamics are about to change. Bitcoin will soon transcend the blockchain.
Rather than Ver’s Starbucks, a more appropriate analogy for why the blocksize shouldn’t be continually raised is to imagine someone being told to get from Los Angeles to New York in one day. The raise-the-blocksize crowd believes in a brute force method to this problem: speed up and drive at 200 mph. But a genuine scaling solution requires better technology. Instead of driving faster, you’d hop on a plane. And instead of bloating the blockchain, you’d build the Lightning Network.
Explaining in detail how the Lightning Network works is beyond the purview of this article (I highly encourage interested parties to read Aaron van Wirdum’s excellent 3 part series). To make a long story short, the Lightning Network is a second technology layer built on top of Bitcoin. It works kind of like a bar tab. Most bars allow you to open a tab with your credit card, buy as many beers as you want, and only settle the final amount at the end of the night.
Similarly, in Bitcoin, you can open a “payment channel” with another individual, transact back and forth as many times as you’d like (so long as you don’t exceed the capacity of the channel), and then close the channel at the end. The only two transactions committed to the blockchain are those opening and closing it.
Yet here’s the kicker: imagine if your friend also has a tab open with the same bartender, and you could pay your friend by adding to your bar tab and subtracting the equivalent amount from his. All of this is instantaneous, cryptographically verifiable, theft-proof, private (since transactions are known only between connected parties, and not seen on the public blockchain), can occur across an unlimited number of “bartender” intermediaries, and avoids using the expensive, slow confirmation process of the blockchain until final settlement.
Virtually anyone can act as an intermediary with little more than a residential internet connection, incentivized by collecting small fees. This isn’t science fiction–there are already three separate teams working on implementations right now. Raising the block size is an inferior scaling solution, expanding capacity by just a factor of two, eight, etc., while risking decentralization. However, Lightning Network can scale Bitcoin to thousands or millions of transactions per second and reach everyone in the world, with no such tradeoff.
Dammit, I’m a Doctor, Not a Cryptographer
It’s important to approach Bitcoin with humility. The Bitcoin developers are experienced programmers and cryptographers, and they’re most certainly not ignorant of economics. They have spent years studying every line of the source code, developing new features, and understanding the economic ramifications of those changes. As much as you think you know about Bitcoin, these guys know and have considered more. You can have an hours-long conversation with someone like Peter Todd or Eric Lombrozo on things like UTXOs, Merkle Trees, Block Headers, or other dense topics.
Telling this select group of developers on why the blocksize should be raised is like lecturing Tom Brady on how to throw a football. And the vast majority of them side with Core–that the safe choice is to keep the block size at 1 MB and instead work on more advanced scaling mechanisms, rather than kick the can down the road. Raising the blocksize from 1 to 2 MB solves nothing and simply extends a subsidy, when in reality users should be bearing more of the costs of operating the network as the block reward halves this month. Big blockers are in some mistaken pursuit to keep Bitcoin transactions cheap, but cheap is not what Bitcoin’s real users are looking for.
Critics of this viewpoint say that we don’t want Core experts running a monetary system, like the Federal Reserve’s army of economists. This comparison is disingenuous at best. The Fed makes quasi-economic/political decisions that affect everyone, regardless of whether or not they choose to participate. Bitcoin is a voluntary software program, and if you don’t like their policies, there is no shortage of altcoins you’re welcome to use.
As libertarians, we believe in markets as the way to test ideas and products, not politics. Well, the market has tested Roger Ver’s ideas over and over again. Supporters of increasing the blocksize launched Bitcoin XT, which failed to gain adoption. Then, once their most prominent supporter departed Bitcoin in a whiny ragequit, they launched Bitcoin Unlimited, which also failed to gain adoption. And after that, they launched Bitcoin Classic, and…. well, you guessed it; it failed to gain adoption.
So Roger and his allies have resorted to acting like politicians, relentlessly pushing the same talking points we’ve heard over and over again. But when it comes to people’s money, it’s harder to fool them than in the voting booth. Bitcoin, much as the internet itself, will be built in layers, not by recklessly increasing the strain on the blockchain. Bitcoin developers, owners, and miners know that raising the block size is a poor, blunt method of scaling, and that we instead need new layers like the Lightning Network. If Roger Ver wants to scale Bitcoin so that every Starbucks in the world uses it, this is where he should focus his efforts.
Bitcoin will change the world; I’m sure of that. However, revolutions take decades. But when it happens, the revolution will be decentralized.