Id like to discuss the scalability of the bitcoin network, specifically the current maximum block size of 1 megabyte. The bitcoin wiki states:
Today the Bitcoin network is restricted to a sustained rate of 7 tps by some artificial limits.
Once those limits are lifted, the maximum transaction rate will go up significantly.
and then goes on to theorize about transaction rates many orders of magnitude higher. Certainly from a software engineering point of view, medium-term scalability is a trivial problem. An extra zero in the
static const unsigned int MAX_BLOCK_SIZE = 1000000;
line would be fine for a good while. But I think dismissing the block size issue as the wiki and many others have done is a serious mistake.
Some background on the arguments can be found in
this thread and
others.Changing this limit needs to be discussed
now, before we start hitting it. Already a quick glance at the blockchain shows plenty of blocks exceeding 300KB. Granted most of thats probably S.Dice, but nobody can really dispute that bitcoin is rapidly growing, and will hit the 1MB ceiling fairly soon.
So... what happens then? What is the method for implementing a hard fork? No precedent, right? Do we have a meeting? With who? Vote? Ultimately its the miners that get to decide, right? What if the miners like the 1MB limit, because they think the imposed scarcity of blockchain space will lead to higher transaction fees, and more bitcoin for them? How do we decide on these things when nobody is really in charge? Is a fork really going to happen at all?
Personally I would disagree with any pro-1MB miners, and think that its in everyones interest, miners included, to expand the limit. I think any potential reductions in fees would be exceeded by the increased value of the block reward as the utility of the network expands. But this is a source of significant uncertainty for me -- I just dont know how its going to play out. I wouldnt be surprised if we are in fact stuck with the 1MB limit simply because we have no real way to build a consensus and switch. Certainly not the end of bitcoin, but personally it would be disappointing. A good analogue would be the 4-byte addresses of IPv4... all over again. You can get around it (NAT), and you can fix it (IPv6) but the former is annoying and the latter is taking forever.
So what do you think? Will we address this issue? Before or after every block ≈ 1,000,000 bytes?