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
-
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.)
- 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.
- 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.
-
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.
-
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.
-
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
-
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.
- 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.
- 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.
- 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.
- 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.
-
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
|