tl;dr Blocks are full, the Bitcoin network cannot grow any further without a protocol upgrade. It’s time folks.
In 2010, over a year after the Bitcoin network first began, Satoshi Nakamoto added a hard limit of 1 megabyte per transaction block to the Bitcoin Core codebase (the only software available at the time). The reason for this was to prevent a theoretical Denial of Service (DoS) attack on the young, immature network during a time when 1 BTC was worth less than $0.10 USD and transaction fees were practically nothing. The idea was that because Bitcoin was so incredibly cheap, the network could be flooded with a huge amount of spam transactions by a bad actor, leaving little room for real users and causing unncessary blockchain bloat. An additional concern was that the blockchain could grow too large too fast for consumer hardware to be able to easily keep up.
Today and over seven years later, 1 BTC is worth nearly $5,000 USD and the typical miner fee for a single transaction ranges in value anywhere from $0.50 to $5.00 or even more (depending on current congestion levels). Historically, the feared DoS attack never really happened, and today such an «attack» would be entirely impractical and very expensive. If anything, having such a small limit makes spam attacks even easier. Furthermore, consumer hardware capabilities have advanced significantly. It is not uncommon to download several gigabytes of data in a day simply from browsing the Internet and watching Youtube or Netflix. Today, a < $50 hard drive can store the entire eight year history of Bitcoin several times over. In the same year that the 1mb limit was added, Satoshi Nakamoto clarified that this was not supposed to be a permanent limit. This was illustrated when responding to concerns about a future protocol 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.
In 2014, Gavin Andreson (lead maintainer of Bitcoin Core after Satoshi left in 2011) posted an article on the Bitcoin Foundation website where he outlined a scalability roadmap for the future of the Bitcoin Network. One of the key points was phasing out the hard-coded 1mb limit so that Bitcoin could achieve more than a maximum 7 transactions per second (currently more like 3/tps in practice). Later that year, Gavin stepped down as lead maintainer in order to focus on more advanced protocol research and development, rather than being responsible for reviewing latest code changes etc… With the subsequent collapse of the Bitcoin Foundation (for unrelated reasons), unfortunately this left the Bitcoin Core client in the hands of the newly formed and heavily funded corporation Blockstream, which would cause almost immediate friction within the community.
In May 2015, Gavin wrote another blog post entitled «Time to roll out bigger blocks». Here he announced that he would submit code to allow for more than 1mb of transactions per block, and also wrote an extensive series of articles that provided counter arguments to nearly every concern raised by community members, some of whom do not want to see any upgrade at all and do not want greater user adoption of Bitcoin as an electronic cash system.
The initial proposal by Gavin was an immediate increased limit from 1mb to 20mb. However this was seen by many as too extreme of a change, and five of the largest mining operations located in China provided a counter proposal to 8mb instead.
In June 2015 and after much community debate, Gavin released Bitcoin Improvement Proposal 101 (BIP101). This proposal would have increased the block size limit from 1mb all the way to 8mb, with an automatically doubling every 2 years until it hits a maximum of 8 gigabytes in 2036, with initial activation later that year in December 2015. Fellow Bitcoin developer Mike Hearn joined forces with Gavin to implement this protocol upgrade in his alternate full node client Bitcoin XT.
Following the release of BIP101 and the new version of Bitcoin XT, Theymos & Cobra (the anonymous central actors who simultaneously own and control bitcoin.org, bitcointalk.org, reddit.com/r/bitcoin and bitcoin.it) announced that anyone attempting to hard fork the network is an «alt-coin user», and proceeded to engage in a multi-year long campaign of character assasination, mass censorship and community manipulation. Hundreds upon hundreds of bitcoin users were banned simply for speaking out or expressing support for the protocol upgrade, with thousands more becoming completely alienated. The epitome of this spectacle can be witnessed here. For more details about censorship on major community platforms, see this article: https://medium.com/@johnblocke/a-brief-and-incomplete-history-of-censorship-in-r-bitcoin-c85a290fe43
During this time, several other alternative block size increase proposals were made by prominent community developers, including BIP100 and BIP102 by Jeff Garzik. Even Blockstream’s CEO Adam Back suggested «2MB now, then 4MB in 2 years and 8MB in 4 years» source.
In August 2015, eight major players in the Bitcoin ecosystem signed a letter expressing support for increasing the block size via BIP101. https://blog.blockchain.com/wp-content/uploads/2015/08/Industry-Block-Size-letter-All-Signed.pdf
In late August 2015 and early December, Blockstream organized two separate «Scaling Bitcoin» conferences. Curiously, any discussion of BIP101 or other hard fork proposals was strictly off the table and forbidden. The second conference was timed to be right before the proposed scheduled activation of BIP101. These conferences have been aptly nicknamed «Stalling Bitcoin».
One of the results of these conferences was the announcement of «Segregated Witness» (Segwit or SW for short). Segwit was a feature that came from the «Elements» sidechain project by Blockstream. In short, segwit is a new bitcoin transaction format which solves the «transaction malleability» issue as well as providing more advanced scripting capabilities. Through a data accounting trick, it also has a «side effect» of being able to fit more transactions into a single block, thus technically allowing blocks slightly larger than 1MB to be mined without requiring the entire network and ecosystem to upgrade at the same time.
With the combination of the sustained censorship campaign, the carefully timed conferences and segwit announcement, as well as numerous legal threats, criminal DDoS attacks and other FUD against the Bitcoin XT project… BIP101 failed to get the required 75% support of the network to achieve activation. A few months later, Gavin formally withdrew the proposal and it was disabled on latest XT releases.
Although BIP101 failed to activate, the Bitcoin ecosystem continued to grow and blocks began reaching their upper 1MB limit on a more and more consistant and frequent basis — as predicted.
In Februrary 2016, Gavin Andreson, Jeff Garzik, Thomas Zander and several other developers and community members announced the release of Bitcoin Classic. This was the second attempt at activating a protocol upgrade, but this time with the extremely conservative change of increasing the block size limit from 1MB to 2MB. With this small one time increase and no additional changes, it was hoped that this fork would not be controversial and gain widespread community and industry support. Further block size increases down the road could be discussed, proposed and debated at a later time.
Shortly after the release of Bitcoin Classic, Adam Back and developers from Bitcoin Core (consisting primarily of Blockstream co-founders) organized an emergency meeting in Hong Kong with executives and representatives from major mining pools, as well as some exchanges and other companies. After locking themselves in a board room for hours, the participants emerged with a document titled «the Bitcoin Roundtable Consensus», also known as the Hong Kong Agreement. The basic agreement is this: Miners will only use Bitcoin Core for their software (no XT or Classic) and will wait for Bitcoin Core developers to finish implementing segregated witness. Three months after miners activate segwit, code for activating a hard fork to 2MB block size limit will be provided exclusively by Bitcoin Core.
Unfortunately, no party followed through with the agreement as stated. The implementation of Segwit took much longer than expected (Nov 2016 instead of expected April), miners refused to immiedately activate it and no 2MB hard fork code was provided by Bitcoin Core developers whatsoever.
In mid 2016, an independant group of developers started the Bitcoin Unlimited project, with the aim of bringing Bitcoin out of «beta» and into version 1.0. This included getting rid of the hard-coded block size limit entirely, in favor of a dynamic system based on individual user configuration and miner voting, known as «Emergent Consensus». Throughout 2016 and early 2017, Bitcoin Unlimited was the primary contender for activating a block size limit protocol upgrade, at one point achieving over 45% support from the global bitcoin mining network.
During this same time, the 1MB limit was fully reached and growth in daily transaction volume ground to a halt. The network had reached its limits. Predictably, transaction fees started to get higher and higher and transaction confirmation times became increasingly unreliable. Alternatives to Bitcoin («alt-coins») began to gain serious traction, and today 50% of the overall cryptocurrency market cap is made up of alts. Not long ago, Bitcoin dominated with well over 80%.
At the Consensus 2017 conference, the «Bitcoin Scaling Agreement» was signed by over 50 companies representing the majority of Bitcoin mining hash power, wallet services, exchanges, payment processors and other projects. This is also known as the «New York Agreement», «NYA», and uses the «Segwit2X» proposal. This industry wide agreement happens to be extremely similar to the Hong Kong Agreement set up by Bitcoin Core developers in early 2016. Essentially it is this: Immediate activation of segregated witness, followed by a hard fork to a 2MB block size limit three months later. It is widely believed that this is the best possible compromise to move past the current gridlock.
Segregated witness was officially activated on the network in mid August 2017. The protocol upgrade to a 2MB limit is now scheduled to happen in November 2017. Currently, over 94% of the mining network is signalling their intent to complete this protocol upgrade activation. https://coin.dance/blocks
The time has come to take Bitcoin to the next level. Join us.