There are two sets of arguments for why we should keep the 1MB block size limit.
The first are technical; I address those in my Scalability Roadmap blog post, showing how a lot of geeky elbow grease should lead to “Bitcoin can replace every cash and credit card transaction in the world”.
The second are economic. I’ll discuss the economic arguments I’ve heard for keeping the 1MB blocksize limit, and explain why I think increasing the limit makes economic sense.
A couple of quick notes on vocabulary: when I say “miners”, I mean “solo miners and mining pool operators” — anybody selecting which transactions to include in new blocks. And when I say “people”, I mean “any entity capable of submitting transactions to the Bitcoin network.” I don’t want to insult our future Bitcoin-using Benevolent Robot Overlords.
Transaction Fee Death Spiral
The argument for not allowing arbitrarily large blocks: a maximum block size is necessary to create artificial scarcity so transaction fees do not drop to zero, leaving miners with no income, leading to no mining and the death of the network.
However, economic theory says that in a competitive market, supply, demand, and price will find an equilibrium where the price is equal to the marginal cost to suppliers plus some net income (because suppliers can always choose to do something more profitable with their time or money). In this case, price is transaction fees, supply is the willingness or ability of miners to confirm transactions, and demand is the number of transactions people want to have confirmed.
So with absolutely no artificial limits to supply (like a maximum block size), transaction fees would drop to the marginal cost miners pay for hardware, electricity and bandwidth, plus enough net income to motivate them to keep on mining rather than investing their time and money in something else. Fees would be very small, but not zero.
Centralization Death Spiral
Another argument for not allowing arbitrarily large blocks: Since there are economies of scale for buying bandwidth (or racks of servers), if there is no blocksize limit then only people able to afford servers located in big data centers will be able to run fully-validating nodes. Everybody else will have to trust them, and we’ll end up with a highly centralized system.
This is a reasonable concern, and it is why I think we should put an artificial limit on the size of blocks designed so that anybody with a reasonably good home computer and network connection can participate as a full node on the network. Limiting the supply will both increase price (fees) and decrease demand (the number of transactions people try to send) until a new equilibrium is found.
Higher transaction fees will drive some applications off the blockchain, imposing extra costs. Those costs might be financial– off-blockchain solutions will need some way to pay for themselves. And there will be time and convenience costs; it is less convenient if you must plan in advance and move coins to an off-blockchain solution that supports very low-fee transactions.
Less demand for Bitcoin transactions will lower the overall value of the Bitcoin system compared to a perfect alternative where everybody has infinite bandwidth and CPU to validate transactions. But the value of keeping Bitcoin decentralized in the real world of finite computing resources likely exceeds these costs.
Block Subsidy, Fees, and Blockchain Security
All of the above gets muddled with another economic issue: will transaction fees be great enough to attract enough mining power to secure the network as the number of new bitcoins created drops to zero?
The argument is that keeping one-megabyte blocks will push up transaction fees, so as the block subsidy falls smaller blocks will make it more likely that fees will make up the difference and keep the network secure.
The counter-argument is that bigger blocks allow more transactions, so even if each transaction pays a smaller fee, the total will be greater.
I think that both of those arguments are wrong, because they are equating apples and oranges. The supply being rationed by a maximum block size is some number of bytes, which translates into a certain number of transactions. But the demand for blockchain security depends on the value and nature of the transaction; very large value transactions are typically secured by real-world contracts, long-established trust relationships, lawyers, and court systems.
So there is no guarantee that future one-megabyte blocks will be full of high-fee million-dollar transactions; it is possible we would see blocks full of tiny-fee million dollar transactions, because Gringotts Bank will take the Bank of Elbonia to court if they double-spend some large value inter-bank-settlement transaction.
There is no guarantee that future one-gigabyte blocks full of smaller transactions will generate enough fees to secure the blockchain, either. Transaction confirmation speed is important for most small-value transactions, so it is likely they will be secured using semi-trusted third parties who co-sign transactions and guarantee to never allow double-spending. And if they are secured against double-spending that way, there is little incentive for either the sender or recipient to include a transaction fee to help secure the whole network against double-spending.
It is in everybody’s best interest for the blockchain to be secure against 51% attacks, but the maximum block size will not solve that “common good” problem. Assurance contracts are a time-tested way for a community to pay for common infrastructure; see the excellent forum post from Mike Hearn for details on one way assurance contracts for blockchain security could be funded.
Leveraging Network Effects
Opinions are divided on whether Bitcoin will evolve into primarily a digital token used for storing value, a currency used as a means of exchange, or as a general global distributed ledger used to secure many different types of transactions. As Bitcoin becomes more popular for all of those uses the number of transactions will rise.
Picking one “killer app” for Bitcoin is a bad idea because Bitcoin gets its value from network effects– the more people using it, for whatever reason, the more valuable it becomes.
Here is a thought experiment: what if we decreased the block size to support just one transaction per minute (ten transactions per block)? Would more or fewer people use it? Would the Bitcoin system overall be more or less valuable? I think any reasonable person would agree that a one-transaction-per-minute Bitcoin would be less valuable than the seven-transactions-per-second system we have today.
Working toward making the Bitcoin system even more valuable over time is something I think we can all agree on.
Acknowledgements and Further Reading
Thanks to the following for reviewing a draft of this post: Andrea Castillo, Apostolos Chatzilakos, Carlos Guberman, Daniel Krawisz and Fernando Ulrich.
Oleg Andreev posted about block size economics earlier this year:
Assurance contracts: Mike Hearn
Technical scalability roadmap