I’ve
spent more than 5 years being a Bitcoin developer. The software I’ve
written has been used by millions of users, hundreds of developers, and
the talks I’ve given have led directly to the creation of several
startups. I’ve talked about Bitcoin on Sky TV and BBC News. I have been repeatedly cited by the Economist as a Bitcoin expert and prominent developer. I have explained Bitcoin to the SEC, to bankers and to ordinary people I met at cafes.
From
the start, I’ve always said the same thing: Bitcoin is an experiment
and like all experiments, it can fail. So don’t invest what you can’t
afford to lose. I’ve said this in interviews, on stage at conferences, and over email. So have other well known developers like Gavin Andresen and Jeff Garzik.
But despite knowing that Bitcoin could fail all along, the now inescapable conclusion that it has
failed still saddens me greatly. The fundamentals are broken and
whatever happens to the price in the short term, the long term trend
should probably be downwards. I will no longer be taking part in Bitcoin
development and have sold all my coins.
Why has Bitcoin failed?
It has failed because the community has failed. What was meant to be a
new, decentralised form of money that lacked “systemically important
institutions” and “too big to fail” has become something even worse: a
system completely controlled by just a handful of people. Worse still,
the network is on the brink of technical collapse. The mechanisms that
should have prevented this outcome have broken down, and as a result
there’s no longer much reason to think Bitcoin can actually be better
than the existing financial system.
Think about it. If you had never heard about Bitcoin before, would you care about a payments network that:
- Couldn’t move your existing money
- Had wildly unpredictable fees that were high and rising fast
- Allowed buyers to take back payments they’d made after walking out of shops, by simply pressing a button (if you aren’t aware of this “feature” that’s because Bitcoin was only just changed to allow it)
- Is suffering large backlogs and flaky payments
- … which is controlled by China
- … and in which the companies and people building it were in open civil war?
I’m going to hazard a guess that the answer is no.
Deadlock on the blocks
In case you haven’t been keeping up with Bitcoin, here is how the network looks as of January 2016.
The
block chain is full. You may wonder how it is possible for what is
essentially a series of files to be “full”. The answer is that an
entirely artificial capacity cap of one megabyte per block, put in place as a temporary kludge a long time ago, has not been removed and as a result the network’s capacity is now almost completely exhausted.
Here’s a graph of block sizes.
The
peak level in July was reached during a denial-of-service attack in
which someone flooded the network with transactions in an attempt to
break things, calling it a “stress test”. So that level, about 700
kilobytes of transactions (or less than 3 payments per second), is
probably about the limit of what Bitcoin can actually achieve in
practice
NB: You may have read that the limit is 7 payments per second. That’s an old figure from 2011 and Bitcoin transactions got a lot more complex since then, so the true figure is a lot lower.
The
reason the true limit seems to be 700 kilobytes instead of the
theoretical 1000 is that sometimes miners produce blocks smaller than
allowed and even empty blocks, despite that there are lots of
transactions waiting to confirm — this seems to be most frequently
caused by interference from the Chinese “Great Firewall” censorship
system. More on that in a second.
If you look closely, you can see that traffic has been growing since the end of the 2015 summer months. This is expected. I wrote about Bitcoin’s seasonal growth patterns back in March.
Here’s weekly average block sizes:
So
the average is nearly at the peak of what can be done. Not surprisingly
then, there are frequent periods in which Bitcoin can’t keep up with
the transaction load being placed upon it and almost all blocks are the
maximum size, even when there is a long queue of transactions waiting.
You can see this in the size column (the 750kb blocks come from miners
that haven’t properly adjusted their software):
When networks run out of capacity, they get really unreliable.
That’s why so many online attacks are based around simply flooding a
target computer with traffic. Sure enough, just before Christmas
payments started to become unreliable and at peak times backlogs are now becoming common.
Quoting a news post by ProHashing, a Bitcoin-using business:
Some customers contacted Chris earlier today asking why our bitcoin payouts didn’t execute …
The issue is that it’s now officially impossible to depend upon the bitcoin network anymore to know when or if your payment will be transacted, because the congestion is so bad that even minor spikes in volume create dramatic changes in network conditions. To whom is it acceptable that one could wait either 60 minutes or 14 hours, chosen at random?
It’s ludicrous that people are actually writing posts on reddit claiming that there is no crisis. People were criticizing my post yesterday on the grounds that I somehow overstated the seriousness of the situation. Do these people actually use the bitcoin network to send money everyday?
ProHashing
encountered another near-miss between Christmas and New Year, this time
because a payment from an exchange to their wallet was delayed.
Bitcoin
is supposed to respond to this situation with automatic fee rises to
try and get rid of some users, and although the mechanisms behind it are
barely functional that’s still sort of happening: it is rapidly
becoming more and more expensive to use the Bitcoin network. Once upon a
time, Bitcoin had the killer advantage of low and even zero fees, but it’s now common to be asked to pay more to miners than a credit card would charge.
Why has the capacity limit not been raised? Because the block chain is controlled by Chinese miners, just two of whom control more than 50% of the hash power. At a recent conference over 95% of hashing power was controlled by a handful of guys sitting on a single stage. The miners are not allowing the block chain to grow.
Why are they not allowing it to grow?
Several reasons. One is that the developers of the “Bitcoin Core”
software that they run have refused to implement the necessary changes.
Another is that the miners refuse to switch to any competing product, as
they perceive doing so as “disloyalty” —and they’re terrified of doing
anything that might make the news as a “split” and cause investor panic.
They have chosen instead to ignore the problem and hope it goes away.
And the final reason is that the Chinese internet is so broken by their government’s firewall that moving data across the border barely works at all,
with speeds routinely worse than what mobile phones provide. Imagine an
entire country connected to the rest of the world by cheap hotel wifi,
and you’ve got the picture. Right now, the Chinese miners are able
to — just about — maintain their connection to the global internet and
claim the 25 BTC reward ($11,000) that each block they create gives
them. But if the Bitcoin network got more popular, they fear taking part
would get too difficult and they’d lose their income stream. This gives
them a perverse financial incentive to actually try and stop Bitcoin becoming popular.
Many
Bitcoin users and observers have been assuming up until very recently
that somehow these problems would all sort themselves out, and of course
the block chain size limit would be raised. After all, why would the
Bitcoin community … the community that has championed the block chain as
the future of finance … deliberately kill itself by strangling the
chain in its crib? But that’s exactly what is happening.
The resulting civil war has seen Coinbase — the largest and best known Bitcoin startup in the USA — be erased from the official Bitcoin website for picking the “wrong” side and banned from the community forums. When
parts of the community are viciously turning on the people that have
introduced millions of users to the currency, you know things have got
really crazy.
Nobody knows what’s going on
If
you haven’t heard much about this, you aren’t alone. One of the most
disturbing things that took place over the course of 2015 is that the
flow of information to investors and users has dried up.
In
the span of only about eight months, Bitcoin has gone from being a
transparent and open community to one that is dominated by rampant
censorship and attacks on bitcoiners by other bitcoiners. This
transformation is by far the most appalling thing I have ever seen, and
the result is that I no longer feel comfortable being associated with
the Bitcoin community.
Bitcoin
is not intended to be an investment and has always been advertised
pretty accurately: as an experimental currency which you shouldn’t buy
more of than you can afford to lose. It is complex, but that never
worried me because all the information an investor might want was out
there, and there’s an entire cottage industry of books, conferences,
videos and websites to help people make sense of it all.
That has now changed.
Most
people who own Bitcoin learn about it through the mainstream media.
Whenever a story goes mainstream the Bitcoin price goes crazy, then the
media report on the price rises and a bubble happens.
Stories
about Bitcoin reach newspapers and magazines through a simple process:
the news starts in a community forum, then it’s picked up by a more
specialised community/tech news website, then journalists at general
media outlets see the story on those sites and write their own versions.
I’ve seen this happen over and over again, and frequently taken part in
it by discussing stories with journalists.
In
August 2015 it became clear that due to severe mismanagement, the
“Bitcoin Core” project that maintains the program that runs the
peer-to-peer network wasn’t going to release a version that raised the
block size limit. The reasons for this are complicated and discussed
below. But obviously, the community needed the ability to keep adding
new users. So some long-term developers (including me) got together and
developed the necessary code to raise the limit. That code was called
BIP 101 and we released it in a modified version of the software that we
branded Bitcoin XT. By running XT, miners could cast a vote for
changing the limit. Once 75% of blocks were voting for the change the
rules would be adjusted and bigger blocks would be allowed.
The
release of Bitcoin XT somehow pushed powerful emotional buttons in a
small number of people. One of them was a guy who is the admin of the
bitcoin.org website and top discussion forums. He had frequently allowed
discussion of outright criminal activity on the forums he controlled,
on the grounds of freedom of speech. But when XT launched, he made a
surprising decision. XT, he claimed, did not represent the “developer
consensus” and was therefore not really Bitcoin. Voting was an abomination, he said, because:
“One of the great things about Bitcoin is its lack of democracy”
So he decided to do whatever it took to kill XT completely,
starting with censorship of Bitcoin’s primary communication channels:
any post that mentioned the words “Bitcoin XT” was erased from the
discussion forums he controlled, XT could not be mentioned or linked to
from anywhere on the official bitcoin.org website and, of course, anyone
attempting to point users to other uncensored forums was also banned. Massive numbers of users were expelled from the forums and prevented from expressing their views.
As you can imagine, this enraged people. Read the comments on the announcement to get a feel for it.
Eventually, some users found their way to a new uncensored forum.
Reading it is a sad thing. Every day for months I have seen raging,
angry posts railing against the censors, vowing that they will be
defeated.
But the inability to get news about XT or the censorship itself through to users has some problematic effects.
For
the first time, investors have no obvious way to get a clear picture of
what’s going on. Dissenting views are being systematically suppressed.
Technical criticisms of what Bitcoin Core is doing are being banned,
with misleading nonsense
being peddled in its place. And it’s clear that many people who
casually bought into Bitcoin during one of its hype cycles have no idea
that the system is about to hit an artificial limit.
This
worries me a great deal. Over the years governments have passed a large
number of laws around securities and investments. Bitcoin is not a
security and I do not believe it falls under those laws, but their spirit
is simple enough: make sure investors are informed. When misinformed
investors lose money, government attention frequently follows.
Why is Bitcoin Core keeping the limit?
People problems.
When
Satoshi left, he handed over the reins of the program we now call
Bitcoin Core to Gavin Andresen, an early contributor. Gavin is a solid
and experienced leader who can see the big picture. His reliable
technical judgement is one of the reasons I had the confidence to quit
Google (where I had spent nearly 8 years) and work on Bitcoin full time.
Only one tiny problem: Satoshi never actually asked Gavin if he wanted
the job, and in fact he didn’t. So the first thing Gavin did was grant
four other developers access to the code as well. These developers were
chosen quickly in order to ensure the project could easily continue if
anything happened to him. They were, essentially, whoever was around and
making themselves useful at the time.
One of them, Gregory Maxwell, had an unusual set of views: he once claimed he had mathematically proven Bitcoin to be impossible. More problematically, he did not believe in Satoshi’s original vision.
When
the project was first announced, Satoshi was asked how a block chain
could scale to a large number of payments. Surely the amount of data to
download would become overwhelming if the idea took off? This was a
popular criticism of Bitcoin in the early days and Satoshi fully
expected to be asked about it. He said:
The bandwidth might not be as prohibitive as you think … if the network were to get [as big as VISA], it would take several years, and by then, sending [the equivalent of] 2 HD movies over the Internet would probably not seem like a big deal.
It’s
a simple argument: look at what existing payment networks handle, look
at what it’d take for Bitcoin to do the same, and then point out that
growth doesn’t happen overnight. The networks and computers of the
future will be better than today. And indeed back-of-the-envelope calculations suggested that, as he said to me, “it never really hits a scale ceiling” even when looking at more factors than just bandwidth.
Maxwell did not agree with this line of thinking. From an interview in December 2014:
Problems with decentralization as bitcoin grows are not going to diminish either, according to Maxwell: “There’s an inherent tradeoff between scale and decentralization when you talk about transactions on the network.”
The problem, he said, is that as bitcoin transaction volume increases, larger companies will likely be the only ones running bitcoin nodes because of the inherent cost.
The
idea that Bitcoin is inherently doomed because more users means less
decentralisation is a pernicious one. It ignores the fact that despite
all the hype, real usage is low, growing slowly and technology gets
better over time. It is a belief Gavin and I have spent much time debunking.
And it leads to an obvious but crazy conclusion: if decentralisation is
what makes Bitcoin good, and growth threatens decentralisation, then Bitcoin should not be allowed to grow.
Instead,
Maxwell concluded, Bitcoin should become a sort of settlement layer for
some vaguely defined, as yet un-created non-blockchain based system.
The death spiral begins
In a company, someone who did not share the goals of the organisation would be dealt with in a simple way: by firing him.
But
Bitcoin Core is an open source project, not a company. Once the 5
developers with commit access to the code had been chosen and Gavin had
decided he did not want to be the leader, there was no procedure in
place to ever remove one. And there was no interview or screening
process to ensure they actually agreed with the project’s goals.
As
Bitcoin became more popular and traffic started approaching the 1mb
limit, the topic of raising the block size limit was occasionally
brought up between the developers. But it quickly became an emotionally
charged subject. Accusations were thrown around that raising the limit
was too risky, that it was against decentralisation, and so on. Like
many small groups, people prefer to avoid conflict. The can was kicked
down the road.
Complicating
things further, Maxwell founded a company that then hired several other
developers. Not surprisingly, their views then started to change to
align with that of their new boss.
Co-ordinating
software upgrades takes time, and so in May 2015 Gavin decided the
subject must be tackled once and for all, whilst there was still about 8
months remaining. He began writing articles that worked through the
arguments against raising the limit, one at a time.
But
it quickly became apparent that the Bitcoin Core developers were
hopelessly at loggerheads. Maxwell and the developers he had hired
refused to contemplate any increase in the limit whatsoever. They were
barely even willing to talk about the issue. They insisted that nothing
be done without “consensus”. And the developer who was responsible for
making the releases was so afraid of conflict that he decided any
controversial topic in which one side might “win” simply could not be
touched at all, and refused to get involved.
Thus
despite the fact that exchanges, users, wallet developers, and miners
were all expecting a rise, and indeed, had been building entire
businesses around the assumption that it would happen, 3 of the 5
developers refused to touch the limit.
Deadlock.
Meanwhile, the clock was ticking.
Massive DDoS attacks on XT users
Despite
the news blockade, within a few days of launching Bitcoin XT around 15%
of all network nodes were running it, and at least one mining pool had
started offering BIP101 voting to miners.
That’s when the denial of service attacks started. The attacks were so large that they disconnected entire regions from the internet:
“I was DDos’d. It was a massive DDoS that took down my entire (rural) ISP. Everyone in five towns lost their internet service for several hours last summer because of these criminals. It definitely discouraged me from hosting nodes.”
In
other cases, entire datacenters were disconnected from the internet
until the single XT node inside them was stopped. About a third of the
nodes were attacked and removed from the internet in this way.
Worse,
the mining pool that had been offering BIP101 was also attacked and
forced to stop. The message was clear: anyone who supported bigger
blocks, or even allowed other people to vote for them, would be assaulted.
The
attackers are still out there. When Coinbase, months after the launch,
announced they had finally lost patience with Core and would run XT, they too were forced offline for a while.
Bogus conferences
Despite the DoS attacks and censorship, XT was gaining momentum. That posed a threat to Core, so a few of its developers decided to organise a series of conferences named “Scaling Bitcoin”:
one in August and one in December. The goal, it was claimed, was to
reach “consensus” on what should be done. Everyone likes a consensus of
experts, don’t they?
It
was immediately clear to me that people who refused to even talk about
raising the limit would not have a change of heart because they attended
a conference, and moreover, with the start of the winter growth season
there remained only a few months to get the network upgraded. Wasting
those precious months waiting for conferences would put the stability of
the entire network at risk. The fact that the first conference actually banned discussion of concrete proposals didn’t help.
So I didn’t go.
Unfortunately,
this tactic was devastatingly effective. The community fell for it
completely. When talking to miners and startups, “we are waiting for
Core to raise the limit in December” was one of the most commonly cited
reasons for refusing to run XT. They were terrified of any media stories
about a community split that might hurt the Bitcoin price and thus,
their earnings.
Now
the last conference has come and gone with no plan to raise the limit,
some companies (like Coinbase and BTCC) have woken up to the fact that
they got played. But too late. Whilst the community was waiting, organic
growth added another 250,000 transactions per day.
A non-roadmap
Jeff
Garzik and Gavin Andresen, the two of five Bitcoin Core committers who
support a block size increase (and the two who have been around the
longest), both have a stellar reputation within the community. They
recently wrote a joint article titled “Bitcoin is Being Hot-Wired for Settlement”.
Jeff
and Gavin are generally softer in their approach than I am. I’m more of
a tell-it-like-I-see-it kinda guy, or as Gavin has delicately put it,
“honest to a fault”. So the strong language in their joint letter is
unusual. They don’t pull any punches:
The proposed roadmap currently being discussed in the bitcoin community has some good points in that it does have a plan to accommodate more transactions, but it fails to speak plainly to bitcoin users and acknowledge key downsides.
Core block size does not change; there has been zero compromise on that issue.
In an optimal, transparent, open source environment, a BIP would be produced … this has not happened
One of the explicit goals of the Scaling Bitcoin workshops was to funnel the chaotic core block size debate into an orderly decision making process. That did not occur. In hindsight, Scaling Bitcoin stalled a block size decision while transaction fee price and block space pressure continue to increase.
Failing to speak plainly, as they put it, has become more and more common. As an example, the plan Gavin and Jeff refer to
was announced at the “Scaling Bitcoin” conferences but doesn’t involve
making anything more efficient, and manages an anemic 60% capacity
increase only through an accounting trick (not counting some of the
bytes in each transaction). It requires making huge changes to nearly
every piece of Bitcoin-related software. Instead of doing a simple thing
and raising the limit, it chooses to do an incredibly complicated thing
that might buy months at most, assuming a huge coordinated effort.
Replace by fee
One
problem with using fees to control congestion is that the fee to get to
the front of the queue might change after you made a payment. Bitcoin
Core has a brilliant solution to this problem — allow people to mark
their payments as changeable after they’ve been sent, up until they
appear in the block chain. The stated intention is to let people adjust
the fee paid, but in fact their change also allows people to change the
payment to point back to themselves, thus reversing it.
At
a stroke, this makes using Bitcoin useless for actually buying things,
as you’d have to wait for a buyer’s transaction to appear in the block
chain … which from now on can take hours rather than minutes, due to the
congestion.
Core’s
reasoning for why this is OK goes like this: it’s no big loss because
if you hadn’t been waiting for a block before, there was a theoretical
risk of payment fraud, which means you weren’t using Bitcoin properly.
Thus, making that risk a 100% certainty doesn’t really change anything.
In other words, they don’t recognise that risk management exists and so perceive this change as zero cost.
This protocol change will be released with the next version of Core (0.12), so will activate when the miners upgrade. It was massively condemned by the entire Bitcoin community but the remaining Bitcoin Core developers don’t care what other people think, so the change will happen.
If
that didn’t convince you Bitcoin has serious problems, nothing will.
How many people would think bitcoins are worth hundreds of dollars each
when you soon won’t be able to use them in actual shops?
Conclusions
Bitcoin
has entered exceptionally dangerous waters. Previous crises, like the
bankruptcy of Mt Gox, were all to do with the services and companies
that sprung up around the ecosystem. But this one is different: it is a
crisis of the core system, the block chain itself.
More
fundamentally, it is a crisis that reflects deep philosophical
differences in how people view the world: either as one that should be
ruled by a “consensus of experts”, or through ordinary people picking
whatever policies make sense to them.
Even
if a new team was built to replace Bitcoin Core, the problem of mining
power being concentrated behind the Great Firewall would remain. Bitcoin
has no future whilst it’s controlled by fewer than 10 people. And
there’s no solution in sight for this problem: nobody even has any
suggestions. For a community that has always worried about the block
chain being taken over by an oppressive government, it is a rich irony.
Still,
all is not yet lost. Despite everything that has happened, in the past
few weeks more members of the community have started picking things up
from where I am putting them down. Where making an alternative to Core
was once seen as renegade, there are now two more forks vying for
attention (Bitcoin Classic and Bitcoin Unlimited). So far they’ve hit
the same problems as XT but it’s possible a fresh set of faces could
find a way to make progress.
There
are many talented and energetic people working in the Bitcoin space,
and in the past five years I’ve had the pleasure of getting to know many
of them. Their entrepreneurial spirit and alternative perspectives on
money, economics and politics were fascinating to experience, and
despite how it’s all gone down I don’t regret my time with the project. I
woke up this morning to find people wishing me well in the uncensored forum
and asking me to stay, but I’m afraid I’ve moved on to other things. To
those people I say: good luck, stay strong, and I wish you the best.
Mike Hearn