- Bitcoin’s block size is just 1MB, which has caused congestion on the network since January 2017
- The block size issue has caused a civil war that dates back to 2011
- Why does Bitcoin have a 1MB block size and why is it still there?
Anyone who has tried to transact on the Bitcoin network in recent years knows two things – it’s slow and it’s expensive. It wasn’t always this way of course. Back in its infancy when Bitcon’s blocks were largely empty, transactions were processed quicker and for a fraction of the cost of today. This is due to the network now being full, which started to happen in early 2017, but this is a feature not a bug – the 1MB block size limit imposed on the blockchain means that transaction queues are ever-present and transacters are left paying higher fees to get their payments through. But why does Bitcoin have a 1MB block size and why is it still there? Let’s find out.
1MB Block Size Cap Was an Afterthought
Bitcoin’s block size wasn’t, as many people think, baked into the protocol from the start. It was, in fact, something of an afterthought. One of Satoshi Nakamoto’s initial code reviewers, Hal Finney, realized almost at the last minute that sending Bitcoin out into the world without a block size limit could be detrimental in two ways – first, it would open the network up to spamming and DoS attacks, and second, the blockchain might become so large so quickly that node operators would struggle to find disk space to download it.
Ray Dillinger, who along with Hal Finney went over Satoshi’s “first cut” of the Bitcoin code, revealed in 2015 how the block size limit came about, saying that Finney suggested the 1MB block cap to prevent such issues:
Satoshi didn’t have a 1MB limit in it. The limit was originally Hal Finney’s idea. Both Satoshi and I objected that it wouldn’t scale at 1MB. Hal was concerned about a potential DoS attack though, and after discussion, Satoshi agreed. The 1MB limit was there by the time Bitcoin launched. But all 3 of us agreed that 1MB had to be temporary because it would never scale.
Dillinger added that several attempted “abuses” of the blockchain under the 1MB limit proved Finney right about needing the 1mb block limit at launch time, but then went on to say that the limitation could be lifted:
…blockchain bloat as such is no longer likely to [be] a problem, and the 1MB limit is no longer necessary. It has been more-or-less replaced by a profitability limit that motivates people to not waste blockchain bandwidth, and miners are now reliably dropping transactions that don’t pay fees.
However, Dillinger’s recollection doesn’t match with the facts – the 1MB limit was actually quietly introduced by Satoshi Nakamoto on July 15, 2010, a year and a half after the launch of the Bitcoin Core software, and he never gave a reason for it. Dillinger may have meant that the idea of a 1MB block was there by launch date in 2009, but it certainly wasn’t in place.
Satsohi’s Intentions Unkown
The call to lift the block size limit had been discussed as far back as 2011 by developers such as Jeff Garzik, Gavin Andresen, and Mike Hearn, the latter of whom would go on in 2014 to create the first ever Bitcoin fork, Bitcoin XT, with an 8MB block size. By this time, Satoshi Nakamoto had left the scene, handing the reins over to Andresen, and his comments have been poured over by proponents of both big and small blocks for evidence of his intentions. For example, in October 2010 Satoshi noted that increases could be implemented gradually over time as needed, but then elsewhere he was very clear about using it to protect from DOS attacks.
Other attempts to fork Bitcoin to bigger block sizes failed, until the New York Agreement of May 2017 saw the planned implemetation of ‘SegWit2x’, which had two parts – the implentation of Segregated Witness (SegWit), which would allow for more transactions to be stored within a block (something those advocating small blocks wanted), and a doubling of the block size on-chain to 2MB (which the big block supporters wanted). Despite seeming to make both sides happy, the agreement in fact caused the civial war to escalate – SegWit, despite hardly ever gaining favor among users and miners, was approved just days before the deadline,while the 2x element was scrapped in November after failing to find majority support.
This led to the creation of the Bitcoin fork, Bitcoin Cash, with a 32MB block size limit, while Bitcoin’s block size stayed at 1MB.
Why is Bitcoin’s 1MB Cap Still There?
One theory behind why Bitcoin’s 1MB block cap persists is that Blockstream, which employs several key Bitcoin developers, has a vested interest in crippling the Bitcoin ecosystem because it forces people to use its other products, such as the Lightning Network, from which it takes fees. Were its developers to simply remove the block size cap then it would lose out on precious sources of funds.
These developers argue that even a modest increase to 2MB would double the Bitcoin blockchain size, meaning that node operators would today have to buy terabyte-size hard drives just for the pleasure of running a node, leading to increased centralization, while the rate of storage increase would also double. The perils of this have been shown in the performance of the limit-free Bitcoin SV, which has seen its node numbers plummet from around 650 in 2019 to around 40 today due to the limitations of running a node. This has seen only huge data centers able to cope with the demand, drastically limiting the decentralization on the network.
The counter argument to this is that verification of Bitcoin transactions can also be done by running a light client, or a wallet running Simple Payment Verification mode (SPV). This requires just a fraction of the resources to monitor incoming transactions, and offers the same security, since an SPV client is typically connected to a number of servers. For example, Electrum, the most popular SPV client, connects to upwards of 10 nodes by default.
The Scaling Debate Will Rumble On
As we can see, the Bitcoin scaling debate, which has caused a bitter and contracted civil war and even led to lawsuits, has its roots in a mysterious decision by Satoshi Nakamoto, and years of debate that followed.
Whether Satoshi Nakamoto explicitly intended the 1MB block size to be lifted when it was no longer needed remains unclear, but the fact that the protocol ran without it for 18 months suggests that is the case. On the other hand, Satoshi implemented the 1MB cap and never considered changing it before he left the project in December 2010, which is also important to note.
What we do know is that Bitcoin’s block size civil war will continue for as long as the on-chain fees remain as high as they are and the 1MB cap remains in place.