Fixing This Bitcoin-Killing Bug Will (Eventually) Require a Hard Fork

Bitcoin-bug-needs-a-hard-fork
7 August 2020

Most of us will be dead by then.

Projected to happen in the year 2106, Bitcoin will suddenly stop running based on the code its network of users is running today. Users won’t be able to send bitcoin to others; miners securing Bitcoin’s global network will no longer serve a purpose. Bitcoin will just stop. 

The good news is the bug is easy to fix. It’s a problem Bitcoin developers have known about for years – since at least 2012, maybe earlier, according to Bitcoin Core contributor Pieter Wuille. To some developers, the Bitcoin bug potentially sheds light on the limits to Bitcoin’s decentralization, since the community will all need to join together to fix it. 

Read more: A Bitcoin Hard Fork? The Science of Contentious Code is Advancing

“This is a consensus change but a very simple one, and I hope one that will be non-controversial,” Blockstream co-founder and engineer Pieter Wuille told CoinDesk in an email. “We have about 80 years left to address [the bug]. Who knows what might happen in such a time frame?” 

The bug is simple. Bitcoin blocks are the containers within which transactions are stored. Each Bitcoin block has a number tracking how many blocks come before it. But because of a limitation revolving around how block height numbers are stored, Bitcoin will run out of block numbers after block number 5101541. 

In other words, at a block height roughly 86 years into the future, it will be impossible to produce any new blocks. 

Hard fork

The change requires what’s known as a “hard fork,” the most demanding method of making a change to a blockchain. Hard forks are tricky in that they’re not backwards-compatible, they require everyone running a Bitcoin node or miner to upgrade their software. Anyone who doesn’t do so will be left behind on a stonewalled version of Bitcoin that’s incapable of any activity.

While some blockchains, such as Ethereum, execute hard forks regularly, a hard fork isn’t the happiest word in Bitcoin land. 

The last time a Bitcoin hard fork was attempted, it attracted vicious debate. Several big Bitcoin businesses and miners rallied around a hard fork called Segwit2x in 2017. The problem is that far from everyone in the community agreed with the change, so many saw it as an attempt to force the upgrade on the community, which doesn’t exactly jibe with Bitcoin’s ethos of leaderlessness.

Read more: No Fork, No Fire: Segwit2x Nodes Stall Running Abandoned Bitcoin Code

Because of this diary entry in Bitcoin’s history, when many people in Bitcoin hear the phrase “hard fork,” they think of a centralized power trying to impose a change.

However, this bug fix hard fork comes in stark contrast to Bitcoin’s most famous hard fork attempt. Rather than attracting debate, the community and developers will most likely agree it is a change that needs to be made. 

After all, anyone who chooses not to upgrade their software will eventually be running a dead Bitcoin chain. 

Protocol 'ossification'

The bug fix is unlikely to be a controversial hard fork change. But that doesn’t make the issue any less interesting. 

In conversation with CoinDesk, Gustavo J. Flores, head of Product and Research at Bitcoin tech startup Veriphi, argued it brings to light a limit to Bitcoin’s “protocol ossification.”

Read more: Hard Fork vs Soft Fork

Bringing to mind squishy cartilage hardening into bone over time, protocol ossification is the idea that Bitcoin will grow harder to change as it matures. The first several years of Bitcoin’s life, the protocol was immature and there were far fewer users and developers tinkering with the software, so the technology was easier to change. But Bitcoin may be hardening into a bony specimen that will be very difficult to change.

“Protocol ossification means a certain point in time, some say it should be now, where Bitcoin doesn’t change anymore. The rules are set such as a country’s constitution would be set, unchangeable, since it would be too decentralized to coordinate any change,” Flores told CoinDesk.

Just a dream?

The reason many Bitcoin technologists think ossification is a good quality is because it is a sign the system is actually as decentralized as the community wants it to be, ensuring the system is really free from one person or entity stepping in and pushing through a change that isn’t good.

Flores added that protocol ossification helps to “prevent future tentatives that would resemble Segwit2x, where some actors try to force an upgrade because they’re known developers or big businesses, and this ends up hurting Bitcoin because it’s either untested code or cryptography, or because the change removes the core value proposition or would decrease decentralization which would hurt the core value proposition over the long term.

“However, this bug makes it desirable to be able to coordinate a hard fork to fix it, since we all want Bitcoin to be able to survive that deadline,” Flores said.

“It basically brings us back to reality, where the dream of protocol ossification (which makes us achieve ultimate decentralization) is a further than expected and it might be just a dream, which we can get closer over time, but we can’t ever complete it since emergencies such as this, might present themselves,” Flores told CoinDesk.