The Block Size Debate: 5 Years Later
Why it costs several dollars to send Bitcoin today, instead of being cheap as its creator Satoshi Nakamoto intended.
The way the Bitcoin payment network currently works, it has a one megabyte “block size limit”, or speed limit, meaning that the network can only process between 3 and 7 transfers per second at max capacity. As more users try to use the network simultaneously, the network tops out, transaction fees shoot up, and the network becomes cost-prohibitive to use.
In 2017, transaction fees reached an obscene all-time high of $55 to send bitcoin. This is not a service you would want to use to send $5 to a buddy.
But it wasn’t always this way. At Bitcoin’s inception in 2009-2010, transactions were free and the network was nowhere close to running into this limit. When the limit was proposed early on in Bitcoin’s development as a temporary anti-spam measure, its hampering effect was a distant concern that would be years in the future. Yet Bitcoin creator Satoshi Nakamoto was thinking ahead: According to original Bitcoin code auditor Cryddit, Satoshi was concerned about the limit, afraid that it could make it so that Bitcoin “wouldn’t scale”:
I’m the guy who went over the blockchain stuff in Satoshi’s first cut of the bitcoin code. 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.
Several attempted “abuses” of the blockchain under the 1MB limit have proved Hal right about needing the limit at least for launching purposes.
…at this point I think blockchain bloat as such is no longer likely to a problem, and the 1MB limit is no longer necessary.
Satoshi said that the removal of the limit could be “phased in” so that the network could scale properly, and that he would alert users so that they could upgrade:
It can be phased in, like:
if (blocknumber > 115000) maxblocksize = largerlimit
It can start being in versions way ahead, so by the time it reaches that block number and goes into effect, the older versions that don’t have it are already obsolete.
When we’re near the cutoff block number, I can put an alert to old versions to make sure they know they have to upgrade.
Another user, caveden, explained that the limit made him “very uncomfortable”, because “it’s almost impossible to change once you have enough different softwares running the protocol”:
I’m very uncomfortable with this block size limit rule. This is a “protocol-rule” (not a “client-rule”), what makes it almost impossible to change once you have enough different softwares running the protocol. Take SMTP as an example… it’s unchangeable.
I think we should schedule a large increase in the block size limit right now while the protocol rules are easier to change.
In other words, in 2010 caveden expressed his fear of a future where the change was delayed, Bitcoin would begin to spread, and by that time, the change would be impossible to coordinate across so many different groups all running the Bitcoin protocol.
Fast forward to 2020. The change was delayed. Bitcoin began to spread. Eventually, the block size limit became impossible to coordinate because there were so many different groups all running the Bitcoin protocol.
But it wasn’t just that. There was an active disinformation campaign against removing the limit, including a company that privatized part of the Bitcoin development team, a cabal that owned all three major Bitcoin communication forums, and a secret Dragon’s Den slack channel.
The anti-spam mechanism had turned into a violent ideological war, eventually devolving into a slew of DDoS attacks and anonymous death threats.
In 2015, five years after Bitcoin’s inception, the for-profit company Blockstream hired some of the Bitcoin core developers to influence the direction of the Bitcoin project. Here is a short video infographic explaining how they began to extract profit by quietly crippling the Bitcoin protocol:
As a side note, the dev team also made Bitcoin transactions less reliable by kneecapping so-called “zero confirmation” transactions.
A 2017 comment by Reddit user singularity87 explains further. He describes how comments opposing the Bitcoin team’s protocol decisions were silenced on all popular Bitcoin discussion forums at the time (all the major Bitcoin discussion forums back then were run by the same moderation team). In particular, the /r/bitcoin forum began deleting comments and banning users who discussed the removal of the limit in a positive light, turning the discussions one-sided.
The full text of the original reddit comment is reproduced below. I’ve decided that it’s very important to archive it as part of Bitcoin’s history, as it’s only backed up in a small handful of places on the internet:
People should get the full story of r/bitcoin because it is probably one of the strangest of all reddit subs.
r/bitcoin, the main sub for the bitcoin community is held and run by a person who goes by the pseudonym u/theymos. Theymos not only controls r/bitcoin, but also bitcoin.org and bitcointalk.com. These are top three communication channels for the bitcoin community, all controlled by just one person.
For most of bitcoin’s history this did not create a problem (at least not an obvious one anyway) until around mid 2015. This happened to be around the time a new player appeared on the scene, a for-profit company called Blockstream. Blockstream was made up of/hired many (but not all) of the main bitcoin developers. (To be clear, Blockstream was founded before mid 2015 but did not become publicly active until then). A lot of people, including myself, tried to point out there we’re some very serious potential conflicts of interest that could arise when one single company controls most of the main developers for the biggest decentralised and distributed cryptocurrency. There were a lot of unknowns but people seemed to give them the benefit of the doubt because they were apparently about to release some new software called “sidechains” that could offer some benefits to the network.
Not long after Blockstream came on the scene the issue of bitcoin’s scalability once again came to forefront of the community. This issue came within the community a number of times since bitcoins inception. Bitcoin, as dictated in the code, cannot handle any more than around 3 transactions per second at the moment. To put that in perspective Paypal handles around 15 transactions per second on average and VISA handles something like 2000 transactions per second. The discussion in the community has been around how best to allow bitcoin to scale to allow a higher number of transactions in a given amount of time. I suggest that if anyone is interested in learning more about this problem from a technical angle, they go to r/btc and do a search. It’s a complex issue but for many who have followed bitcoin for many years, the possible solutions seem relatively obvious. Essentially, currently the limit is put in place in just a few lines of code. This was not originally present when bitcoin was first released. It was in fact put in place afterwards as a measure to stop a bloating attack on the network. Because all bitcoin transactions have to be stored forever on the bitcoin network, someone could theoretically simply transmit a large number of transactions which would have to be stored by the entire network forever. When bitcoin was released, transactions were actually for free as the only people running the network were enthusiasts. In fact a single bitcoin did not even have any specific value so it would be impossible set a fee value. This meant that a malicious person could make the size of the bitcoin ledger grow very rapidly without much/any cost which would stop people from wanting to join the network due to the resource requirements needed to store it, which at the time would have been for very little gain.
Towards the end of the summer last year, this bitcoin scaling debate surfaced again as it was becoming clear that the transaction limit for bitcoin was semi regularly being reached and that it would not be long until it would be regularly hit and the network would become congested. This was a very serious issue for a currency. Bitcoin had made progress over the years to the point of retailers starting to offer it as a payment option. Bitcoin companies like, Microsoft, Paypal, Steam and many more had began to adopt it. If the transaction limit would be constantly maxed out, the network would become unreliable and slow for users. Users and businesses would not be able to make a reliable estimate when their transaction would be confirmed by the network.
Users, developers and businesses (which at the time was pretty much the only real bitcoin subreddit) started to discuss how we should solve the problem r/bitcoin. There was significant support from the users and businesses behind a simple solution put forward by the developer Gavin Andreesen. Gavin was the lead developer after Satoshi Nakamoto left bitcoin and he left it in his hands. Gavin initially proposed a very simple solution of increasing the limit which was to change the few lines of code to increase the maximum number of transactions that are allowed. For most of bitcoin’s history the transaction limit had been set far far higher than the number of transactions that could potentially happen on the network. The concept of increasing the limit one time was based on the fact that history had proven that no issue had been cause by this in the past.
A certain group of bitcoin developers decided that increasing the limit by this amount was too much and that it was dangerous. They said that the increased use of resources that the network would use would create centralisation pressures which could destroy the network. The theory was that a miner of the network with more resources could publish many more transactions than a competing small miner could handle and therefore the network would tend towards few large miners rather than many small miners. The group of developers who supported this theory were all developers who worked for the company Blockstream. The argument from people in support of increasing the transaction capacity by this amount was that there are always inherent centralisation pressure with bitcoin mining. For example miners who can access the cheapest electricity will tend to succeed and that bigger miners will be able to find this cheaper electricity easier. Miners who have access to the most efficient computer chips will tend to succeed and that larger miners are more likely to be able to afford the development of them. The argument from Gavin and other who supported increasing the transaction capacity by this method are essentially there are economies of scale in mining and that these economies have far bigger centralisation pressures than increased resource cost for a larger number of transactions (up to the new limit proposed). For example, at the time the total size of the blockchain was around 50GB. Even for the cost of a 500GB SSD is only $150 and would last a number of years. This is in-comparison to the $100,000’s in revenue per day a miner would be making.
Various developers put forth various other proposals, including Gavin Andresen who put forth a more conservative increase that would then continue to increase over time inline with technological improvements. Some of the employees of blockstream also put forth some proposals, but all were so conservative, it would take bitcoin many decades before it could reach a scale of VISA. Even though there was significant support from the community behind Gavin’s simple proposal of increasing the limit it was becoming clear certain members of the bitcoin community who were part of Blockstream were starting to become increasingly vitriolic and divisive. Gavin then teamed up with one of the other main bitcoin developers Mike Hearn and released a coded (i.e. working) version of the bitcoin software that would only activate if it was supported by a significant majority of the network. What happened next was where things really started to get weird.
After this free and open source software was released, Theymos, the person who controls all the main communication channels for the bitcoin community implemented a new moderation policy that disallowed any discussion of this new software. Specifically, if people were to discuss this software, their comments would be deleted and ultimately they would be banned temporarily or permanently. This caused chaos within the community as there was very clear support for this software at the time and it seemed our best hope for finally solving the problem and moving on. Instead a censorship campaign was started. At first it ‘all’ they were doing was banning and removing discussions but after a while it turned into actively manipulating the discussion. For example, if a thread was created where there was positive sentiment for increasing the transaction capacity or being negative about the moderation policies or negative about the actions of certain bitcoin developers, the mods of r/bitcoin would selectively change the sorting order of threads to ‘controversial’ so that the most support opinions would be sorted to the bottom of the thread and the most vitriolic would be sorted to the top of the thread. This was initially very transparent as it was possible to see that the most downvoted comments were at the top and some of the most upvoted were at the bottom. So they then implemented hiding the voting scores next to the users name. This made impossible to work out the sentiment of the community and when combined with selectively setting the sorting order to controversial it was possible control what information users were seeing. Also, due to the very very large number of removed comments and users it was becoming obvious the scale of censorship going on. To hide this they implemented code in their CSS for the sub that completely hid comments that they had removed so that the censorship itself was hidden. Anyone in support of scaling bitcoin were removed from the main communication channels. Theymos even proudly announced that he didn’t care if he had to remove 90% of the users. He also later acknowledged that he knew he had the ability to block support of this software using the control he had over the communication channels.
While this was all going on, Blockstream and it’s employees started lobbying the community by paying for conferences about scaling bitcoin, but with the very very strange rule that no decisions could be made and no complete solutions could be proposed. These conferences were likely strategically (and successfully) created to stunt support for the scaling software Gavin and Mike had released by forcing the community to take a “lets wait and see what comes from the conferences” kind of approach. Since no final solutions were allowed at these conferences, they only served to hinder and splinter the communities efforts to find a solution. As the software Gavin and Mike released called BitcoinXT gained support it started to be attacked. Users of the software were attack by DDOS. Employees of Blockstream were recommending attacks against the software, such as faking support for it, to only then drop support at the last moment to put the network in disarray. Blockstream employees were also publicly talking about suing Gavin and Mike from various different angles simply for releasing this open source software that no one was forced to run. In the end Mike Hearn decided to leave due to the way many members of the bitcoin community had treated him. This was due to the massive disinformation campaign against him on r/bitcoin. One of the many tactics that are used against anyone who does not support Blockstream and the bitcoin developers who work for them is that you will be targeted in a smear campaign. This has happened to a number of individuals and companies who showed support for scaling bitcoin. Theymos has threatened companies that he will ban any discussion of them on the communication channels he controls (i.e. all the main ones) for simply running software that he disagrees with (i.e. any software that scales bitcoin).
As time passed, more and more proposals were offered, all against the backdrop of ever increasing censorship in the main bitcoin communication channels. It finally come down the smallest and most conservative solution. This solution was much smaller than even the employees of Blockstream had proposed months earlier. As usual there was enormous attacks from all sides and the most vocal opponents were the employees of Blockstream. These attacks still are ongoing today. As this software started to gain support, Blockstream organised more meetings, especially with the biggest bitcoin miners and made a pact with them. They promised that they would release code that would offer an on-chain scaling solution hardfork within about 4 months, but if the miners wanted this they would have to commit to running their software and only their software. The miners agreed and the ended up not running the most conservative proposal possible. This was in February last year. There is no hardfork proposal in sight from the people who agreed to this pact and bitcoin is still stuck with the exact same transaction limit it has had since the limit was put in place about 6 years ago. Gavin has also been publicly smeared by the developers at Blockstream and a plot was made against him to have him removed from the development team. Gavin has now been, for all intents an purposes, expelled from bitcoin development. This has meant that all control of bitcoin development is in the hands of the developers working at Blockstream.
There is a new proposal that offers a market based approach to scaling bitcoin. This essentially lets the market decide. Of course, as usual there has been attacks against it, and verbal attacks from the employees of Blockstream. This has the biggest chance of gaining wide support and solving the problem for good.
To give you an idea of Blockstream; It has hired most of the main and active bitcoin developers and is now synonymous with the “Core” bitcoin development team. They AFAIK no products at all. They have received around $75m in funding. Every single thing they do is supported by /u/theymos. They have started implementing an entirely new economic system for bitcoin against the will of it’s users and have blocked any and all attempts to scaling the network in line with the original vision.
Although this comment is ridiculously long, it really only covers the tip of the iceberg. You could write a book on the last two years of bitcoin. The things that have been going on have been mind blowing. One last thing that I think is worth talking about is the u/bashco’s claim of vote manipulation.
The users that the video talks about have very very large numbers of downvotes mostly due to them having a very very high chance of being astroturfers. Around about the same time last year when Blockstream came active on the scene every single bitcoin troll disappeared, and I mean literally every single one. In the years before that there were a large number of active anti-bitcoin trolls. They even have an active sub r/buttcoin. Up until last year you could go down to the bottom of pretty much any thread in r/bitcoin and see many of the usual trolls who were heavily downvoted for saying something along the lines of “bitcoin is shit”, “You guys and your tulips” etc. But suddenly last year they all disappeared. Instead a new type of bitcoin user appeared. Someone who said they were fully in support of bitcoin but they just so happened to support every single thing Blockstream and its employees said and did. They had the exact same tone as the trolls who had disappeared. Their way to talking to people was aggressive, they’d call people names, they had a relatively poor understanding of how bitcoin fundamentally worked. They were extremely argumentative. These users are the majority of the list of that video. When the 10’s of thousands of users were censored and expelled from r/bitcoin they ended up congregating in r/btc. The strange thing was that the users listed in that video also moved over to r/btc and spend all day everyday posting troll-like comments and misinformation. Naturally they get heavily downvoted by the real users in r/btc. They spend their time constantly causing as much drama as possible. At every opportunity they scream about “censorship” in r/btc while they are happy about the censorship in r/bitcoin. These people are astroturfers. What someone somewhere worked out, is that all you have to do to take down a community is say that you are on their side. It is an astoundingly effective form of psychological attack.
Sources (click to expand)
For additional context, read A (brief and incomplete) history of censorship in /r/Bitcoin.
Unfortunately, it looks like the new core development team got their way. There are no current proposals for raising the limit, so it’s likely that the Bitcoin network is never going to be able to process more than 3-7 transactions per second without middlemen. It’s part of why I have had my eyes on alternative Bitcoin protocols, and now have my eye on Ethereum. Neither of those chains have ideology and governance issues with regards to scaling.
It seems like I’m not the only one that thinks this way. In the last few months a sharply growing amount of bitcoins are moving off the Bitcoin network to the Ethereum network, not only for the increased network throughput, but also to take advantage of Ethereum’s smart contract features. Someday, we might even end up with a situation where Ethereum cannibalizes the Bitcoin network entirely.
In the mean time, Blockstream has also launched their Lightning Network product to try and ease transaction fees, but its design encourages large centralized hubs, it’s suffered from at least one major vulnerability, and it does not completely solve the transaction fee problem, requires nodes to be online to actively prevent theft, and is working uphill in terms of network effect.
Because of these issues, there is now six times more Bitcoin on Ethereum than on the Lightning Network, despite the Lightning Network being released (in 2018) before the Bitcoin-on-Ethereum bridges were built (in 2019).
Maybe when Ethereum scales by launching version 2.0, Bitcoin will see sub-penny transaction fees again thanks to the Ethereum network. But until then, we get to enjoy paying $3 every time we send bitcoins. If you’re going to send, do it now, because the next time the price runs up it’s going to cost $50 again.
Further Reading: The Great Bitcoin Scaling Debate — A Timeline
More Articles Tagged #cryptocurrency
Thoughts on the MakerDAO USDC Proposal
17 March 2020 cryptocurrency tech
Long Live Bitcoin (on Ethereum!)
14 October 2019 cryptocurrency tech
How to Limit the Bandwidth of Bitcoin Core on Windows, Mac OS X, and Linux
16 July 2015 cryptocurrency tech