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 100,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.