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 chose 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 wont 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 looses 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 it 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