On Saturday, Mike Hearn, a key developer of Bitcoin software, posted a blunt essay on Medium explaining why the cryptographic currency’s underlying open-source core software is now proceeding along two separate development paths, or forks. As with everything related to Bitcoin, the move is part software, part ideology, part political wrangling, and part finance. In this case, a low-level plumbing issue was threatening to burble up and swamp the network’s ability to function unless a change was made. Disagreements over the timing and type of change had stalled resolution.
Bitcoin backers maintain that the crypto-currency is the way of the future, providing a borderless, free, or nearly fee-free value exchange system. Silicon Valley venture capitalists like Marc Andreessen have poured money into Bitcoin currency and companies such as Coinbase that build on top of it. The splitting of Bitcoin into two variants–Bitcoin XT, whose masterminds include Hearn, and the existing version, Bitcoin Core–is a reminder that this worldwide economic system with no centralization has relied, more or less, on consensus from five guys. Still, despite the current fracturing, Hearn’s essay outlines a path forward.
The basis of Bitcoin is conducting irreversible transactions, which are made permanent by having them essentially etched cryptographically into a block, the fundamental unit of Bitcoin. These blocks are created about every 10 minutes; if they take less time, the system routinely and automatically increases the calculation factor to compensate for increased computational power in the Bitcoin network as a whole. (The opposite is true if processing cycles decrease.)
Every Bitcoin transfer, no matter how tiny, creates a transaction. But blocks are limited not just by time, but by size: they cannot exceed 1MB in the current system. Currently, they’re about 400KB, but occasionally peak towards 1MB. Once transactions start to accumulate continuously at a rate faster than the number that can be baked into a 1MB block within that roughly 10-minute schedule, all sorts of terrible things will start happening, resulting in the worst case in a sort of currency meltdown. Given the current set of parameters, this is predicted to happen by the end of 2016, and possibly sooner. The solution is to fix the block size limit, but this is where paths diverge.
The split, led by Hearn and Gavin Andreson, a founder and chief scientist of the Bitcoin Foundation anointed by Bitcoin’s pseudonymous creator, Satoshi Nakamoto, increases the maximum possible size of a block to 8MB with an automatic doubling every two years. There are concerns this will constrain older hardware that won’t be able to handle managing larger blocks and potentially make it harder to participate in key Bitcoin tasks, such as mining, in the future—though the requirements and projected increases seem modest.
Opponents favor a much more complicated restructuring, but rely on proposals that aren’t ready to be implemented (including one published earlier this year, the Lightning Network). There are wildly different opinions about whether they violate some of the fundamental notions underlying Bitcoin. Four of the five core maintainers of Bitcoin’s central code oppose the block-size increase, and this allows them to prevent it from going into effect.
The question is: Should Bitcoin be tweaked or overhauled? Hearn, Andreson, and others say there simply isn’t time to consider the latter before Bitcoin is for all intents and purposes hobbled.
Bitcoin has no central authority. This is one of its features, in fact. The Bitcoin Foundation was established to provide voluntary guidance, and it once sponsored Bitcoin Core, the set of software libraries adopted by all the parties involved in the ecosystem: wallet makers who manage the cryptographic data that corresponds to ownership, miners who run fiendish amounts of computational operations to find the next needle in a haystack and increase the monetary supply, and exchanges and other parties that move Bitcoin around. Now the foundation has no money and the core software is on its own. (Andreson now works under the auspices of the MIT Media Lab.)
While Nakamoto developed elegant algorithms and an implementation, and kept his (or her or their) involvement active in the very early stages, the growth of Bitcoin required both protocol and software changes. But without a central authority to impose change, there’s no way to insist that the entire peer-to-peer network make a shift.
Instead, after development and discussion, new releases get released. By a certain date, if 75% of recently mined blocks were extracted using the latest release (typically 750 out of 1,000), it’s considered adopted, and a sunset date is set for features that only previous versions support. After a few days, the number of nodes that have switched to XT is 8.4%, though that doesn’t represent the computational slice of the pie. (XT includes a couple of other features that aren’t in Core, but are less contentious.)
When Hearn said that Bitcoin has forked, he’s technically accurate, though ahead of himself by some definitions and referring to one of two forks that will occur. The first is software. Bitcoin XT is a different open-source code base from Bitcoin Core. That fork was released a few days ago. However, at present, it continues to produce blocks identically to the core software.
If and when 75% of the network’s capability shifts to XT, the software becomes the new normal. Those continuing to run Bitcoin Core would be safe until at least January 2016, after which point the block size will increase from 1MB to 8MB, and the Bitcoin ledger, the blockchain, will fork. Core nodes won’t be able to process 8MB blocks. (The exact date isn’t set, and advance notice will be given.)
Each block in the ledger builds on the one before it, using cryptographic principles that chain one to the next. Because miners aren’t required to coordinate, it’s possible that two or more systems will nearly simultaneously discover a valid value, and that block will be disseminated unevenly over the network so that two or more blocks appear simultaneously valid.
But these issues are quickly sorted out, because the longer chain always wins: whichever mining entity produces a new valid block first onto any blockchain winds up establishing the truth. Within a block or two, that chain is longer than any others, and all the nodes accept it as the truth, and the fork ends. Forks of a block happen about weekly, and are quickly and automatically resolved; it’s rare to see longer ones. (With a forked chain, not all transactions have necessarily been baked in, which can allow double spending; within a few blocks, double spending is effectively impossible, however, which is why some transactions have to “clear.”)
The same will happen with XT. If the XT software becomes the de facto software on the supermajority of computational power, it will quickly define the longest blockchain, and other nodes will either have to upgrade or give up.
Andreson, Hearn, and others believe they have sufficient commitment already in place, and spent many months trying to keep the currency from splitting up. But when push came to shove, they took the fork in the road that involved a minor change to the status quo to preserve Bitcoin’s technical viability. For Bitcoin’s future, that should make all the difference.