The “Forking” of Bitcoin

In the past few days, you may have heard, from myself or from others, that Bitcoin “is [or may be] forking.” Just what this means is perhaps a little complicated, but if you’re willing to read, I’m willing to write, so please: read on.

***

Different responses to the same problem

At its heart, what’s happening is a difference in opinion over how to solve a problem in Bitcoin. Everyone agrees there’s a problem, but when and how (and if) to solve it are being vigorously debated.

Here’s the issue: when miners “mine” bitcoins, the process captures the most recent transactions on the Bitcoin network and memorializes them on the blockchain in the form of a file we call a “block.” Right now, the size of the block — in data terms — is one megabyte, which means the number of transactions that can take place in any given amount of time, anywhere on the network, is limited. Usual estimates give the rough limit at about three transactions per second under the current one megabyte setup (theoretical estimates of up to seven have been suggested, but they’re assuming pretty ideal circumstances). At a certain point, as the use of bitcoin proliferates, that is not going to be enough. VISA, for instance, handles an average (average!) of two thousand transactions every second worldwide.

This is where the differences of opinion come in. There are two main solutions to the problem — “bigger blocks” and “off-blockchain payment channels” — and two main timescales — “now” and “later.” Bitcoin XT, the source of the potential fork, is in the “bigger blocks” and “now” camps, is the creation of Mike Hearn, Gavin Andresen, and Tom Harding, and has the full support of two of the Bitcoin Core developers, Gavin Andresen (again) and Jeff Garzik. Others in the Bitcoin community are part of the “off-blockchain payment channels” and “later” camps, and some, like Meni Rosenfeld, wish there were a middle camp, but may eventually side with XT if no other “bigger block” implementations happen in the meantime.

Bitcoin XT and BIP 101

So what is Bitcoin XT? Well, it depends on who you ask. According to its creators, it’s an implementation of Bitcoin with a few notable differences. According to Michael Marquardt, also known as the r/bitcoin moderator and bitcointalk forum creator Theymos, it’s not even Bitcoin, but just another altcoin, though that is a fairly extreme view.

Bitcoin XT is currently set up as a backward-compatible implementation of Bitcoin, designed primarily (though not solely) to implement BIP 101, otherwise known as the “bigger blocks” BIP. A BIP is a Bitcoin Improvement Proposal, and is the generally-accepted standard by which changes are made to the Bitcoin protocol. BIP 101 involves moving to a maximum block size of 8mb immediately upon implementation (Jan 11, 2016), and doubling every two years after that. Bitcoin XT is the first version of the Bitcoin protocol to include BIP 101, although it does have other changes as well, listed here at the Bitcoin XT website.

What’s an off-blockchain payment channel?

Some of those arguing against the block size increase are saying it will never be necessary, because of solutions like Strawpay and the proposed Lightning Network. These serve as aggregators of bitcoin transactions off the blockchain, which can then in a sense be condensed to allow for less data in the blockchain itself. This is a good solution, if one that isn’t necessarily ready yet, but as Mike Hearn has pointed out, requiring off-blockchain transactions (rather than simply allowing them) seems to run counter to the very point of Bitcoin, driving users into centralized hubs for their transactions. On the other hand, those in opposition to larger blocks think larger blocks will require more bandwidth and become a barrier to full-node hosting, meaning more centralization (for a counter to that claim, look here).

But it’s a bit of a moot point either way, if the ability to process the transactions doesn’t appear in time — and the Lightning Network is still theoretical at this point.

What does “in time” mean?

This brings us to the question of “when.” The “off-blockchain payment channel” folks largely fall into the category of people who think we have plenty of time (though I haven’t seen a real estimate) before one megabyte blocks become a problem. The “bigger blocks now” folks, perhaps rather expectedly, think the opposite. Hearn has gone on the record saying he thinks the latest we’ll be able to get away with one megabyte blocks is 2017, but that we could run into problems as early as next year, which is why he and the other Bitcoin XT folks have initiated this current confrontation.

Remember: whatever you believe, both sides are vying for the right to call their solution both “conservative” and “more decentralized,” and both mean well.

So what is a hard fork, anyway?

A fork is, at its heart, a split in the blockchain. A “hard fork,” which is the kind we’re talking about today, is a change to the protocol that allows for entries in the blockchain that would previously not have been allowed, meaning that anyone who doesn’t change their software will be operating on a different blockchain at that point. A change in the block size, like this, would definitely qualify: once implemented, miners who mine blocks bigger than one megabyte will register them in the BIP 101-compliant blockchain, and anyone not running BIP 101 won’t have any of those transactions recorded. If for some reason everyone doesn’t switch over, then for as long as there remain two camps, things will be in disarray, and there will exist the possibility of two Bitcoin currencies.

Which is why BIP 101 is designed not to kick in until 75% of all miners are already using BIP 101, and to give a further two weeks’ notice once that switch has been flipped, in order to give others time to adopt it. A true split in the currency, between Bitcoin-1MB and Bitcoin-XT, will only happen in the rather unlikely event that the remaining 25% choose not to patch their software in the two-week grace period.

So just to be clear, Bitcoin hasn’t forked yet, but two weeks after the moment when 750 of the last 1000 blocks mined have been done under BIP 101, it will — for better or worse.

Wait, But Why?

Why is this happening? Well, that’s up for debate, but mostly it just comes back around to the timing issue. If we really are going to see the bottleneck in the early months of 2016, then we will need a solution implemented by then, in one form or another. Those in the “later” camp think we have more time than that, and are thus surprised by how aggressive the release seems. But it’s a matter of perspective: if you were driving toward a cliff, and you thought the cliff was a hundred miles away, you’d react pretty poorly to the passenger putting his or her hand on the wheel “just in case” it’s closer.

What happens next?

Well, that’s an interesting question. Will the Bitcoin Core developers (well, the three who aren’t Gavin Andresen or Jeff Garzik) patch BIP 101 into the Bitcoin core and avoid the fork entirely? Will they produce another BIP that increases the block size by a different amount? The time is ticking toward January 11, and only time will tell.

As of the time of writing of this post, the first BIP 101-enabled block has been mined, and roughly 13% of the nodes on the network are running Bitcoin XT.

More to read

If you want more on the story you can check out the following links:

Thanks for reading, and have a great day.

***

Richard Ford Burley is a writer, library worker, and doctoral candidate in English at Boston College, where he’s studying remix culture and the processes that generate texts. In his spare time he writes about science, skepticism, and feminism (and Bitcoin) here at This Week In Tomorrow.