Let's talk about block size

Background

Warning: This article will get somewhat technical as the arguments for and against are technical.

As many of you are aware, there has been great contention on whether to change the maximum block size for blocks on the bitcoin blockchain. The current maximum limit for a block is 1 MB and the average size of a transaction is 400-500 bytes. A block can therefore store 2000-2500 transactions each. A new block is issued every 10 minutes, so that means a maximum capacity of 3-4 transactions per second. As a comparison, VISA processes about 2000-3000 transactions per second on average.

There have been numerous arguments for and against, so I'll summarize some of them here.

Against

  1. Increasing the block size means that each bitcoin node requires more bandwidth and more storage as more transactions are (potentially) getting through. Therefore, fewer people will be willing to run full nodes and causing the network to become more centralized (in this case fewer nodes.)
  2. Increasing the block size is "kicking the can down the road." Bitcoin will never be able to handle all transactions in the world, so some sort of a payment layer on top of bitcoin is necessary. "Lightning network" is being put forward as a solution. It's better to focus on how to scale bitcoin via layering solutions instead of making the blocks bigger.
  3. When a miner finds a new block it has to quickly broadcast that block to the network. Uplinks maybe slower in some parts of the world (read China), and uploading a bigger block in 30 seconds to 8 peers means a lot of shuffled data. There are some solutions to this problem, but there's no consensus yet on what implementation to pursuit. Bigger blocks should not be supported until this problem has been resolved.
  4. People who want to retain biggest privacy would like to use the Tor network. The Tor network is notoriously slow and increasing blocks to go beyond 1 MB may result in making it impossible to run a full node on that network.
  5. Let's keep bitcoin the way it is; it's just too risky to increase the block size. Implement sidechains and implement BitcoinXT (bitcoin with bigger blocks) as a sidechain.
  6. We shouldn't implement any changes to the bitcoin protocol unless it is agreed with 100% consensus. This signals that governmental interventions to the protocol are meaningless.

For

  1. The capacity and bandwidth to process larger blocks is possible today. Relying on that technology improves, more capacity and bandwidth would be handled in the future.
  2. Bitcoin is already centralized on mining & exchanges; having fewer or more nodes won't change that fact. If governments can't close down bitcoin nodes, they sure can attack the miners and exchanges. It's better to cooperate with governments and show that bitcoin blockchain is useful. Stop being paranoid.
  3. Lightning network is good, but opening/closing channels require real Bitcoin transactions. It's clear that even with lightning network we need way bigger blocks to handle those. Furthermore, lightning network is still not available in practice; it's mostly a theoretical paper. Merchants and users are using bitcoin today and there's infrastructure built around how bitcoin works today. If number of users grow short term, we'd need bigger blocks or get transaction congestions.
  4. If the number of wanted transactions exceeds block's capacity, the transactions will become idle in the mempool and the transactions become stuck. This would result in lost confidence of the network.
  5. If block size is not increased, the currency will not be a mainstream currency. (Lightning network is a few years away into the future.) This would mean that bitcoin would solely be used for criminal purposes (drugs / dark web / terrorism.) That would increase the incentive for governments to shut down bitcoin.
  6. The block size limit in bitcoin was put in as a temporary measure to prevent flooding attacks. Satoshi also spoke about removing this limit.

My Stance

I can understand both sides of this debate. However, I'm personally for an increased maximum block size. My reasoning goes as follows:

Lightning network is still some years away. The existing infrastructure relies on transacting between people as a peer-to-peer currency. If bitcoin can't scale at least 10x-100x in the near future, then nobody will take it seriously. We need bigger blocks now so people can trust the network and transact with reasonable fees short term. Once lightning network comes into action, more transactions can go off chain, but the bigger blocks are needed anyway as opening/closing channels in the lightning network require real bitcoin blockchain transactions. In particular, I think people would like to clear transactions monthly (when you normally pay your bills), so that would mean at least 12 broadcasts per year. More realistically I would argue for 30-40 lightning network channel commits per year. Channel commit transactions are typically bigger (more outputs are involved + bigger scripts.) In summary, one 1 billion people transacting would result in a block size of 500 MB, approximately.

If nobody would take bitcoin seriously, then bitcoin will be solely used for criminal monetary transactions. This would increase the incentive for governments to shut down the network. You may ask how? Well, just shut down all exchanges so bitcoins cannot be exchanged for fiat.

The idea that bitcoin can somehow exempt from government intervention is a spurious dream. Governments can easily attack bitcoin today and making it a currency that no one cares about. Thus: We need bitcoin to scale short term, while working on all the other issues in parallel (lightning network, O(1) block propagation, sidechains, ..)

So it all boils down to these two distilled statements:

FOR: We need to increase the maximum block size now and work on the other issues to get confidence of the network. Bigger blocks are needed despite lightning network.

AGAINST: We need to fix all the other issues first, and only increase the block size as an absolute last resort.

I can absolutely understand both sides, but it is simply not realistic to assume that lightning network, sidechains, etc. will be implemented in near future. Changing the maximum block size in panic (if necessary) is hardly a good way of gaining confidence from the public.

Bigger blocks now please.

Datavetaren