Bitcoin is Broken (But We Already Knew That)

A combination of events have coincided to form a perfect shitstorm, once again proving that Bitcoin is nowhere near ready for the big leagues. An entity known as “coinwallet.eu” has been performing stress tests on the Bitcoin network, flooding it with thousands of transactions for unknown reasons. As of this writing there are approximately forty thousand unconfirmed transactions, more or less requiring blocks to be full in order to catch up. Greedy miners pumping out empty blocks doesn’t help this situation much. For the equivalent of a few hundred dollars the Bitcoin network can be choked to death with a whopping 2 transactions per second.

Meanwhile, miners are generating invalid blocks, failing at the one job they have. A recent change to the Bitcoin client software has led to some… issues.

For several months, an increasing amount of mining hash rate has been signaling its intent to begin enforcing BIP66 strict DER signatures. As part of the BIP66 rules, once 950 of the last 1,000 blocks were version 3 (v3) blocks, all upgraded miners would reject version 2 (v2) blocks.

Early morning on 4 July 2015, the 950/1000 (95%) threshold was reached. Shortly thereafter, a small miner (part of the non-upgraded 5%) mined an invalid block–as was an expected occurrence. Unfortunately, it turned out that roughly half the network hash rate was mining without fully validating blocks (called SPV mining), and built new blocks on top of that invalid block.

Note that the roughly 50% of the network that was SPV mining had explicitly indicated that they would enforce the BIP66 rules. By not doing so, several large miners have lost over $50,000 dollars worth of mining income so far.

All software that assumes blocks are valid (because invalid blocks cost miners money) is at risk of showing transactions as confirmed when they really aren’t. This particularly affects lightweight (SPV) wallets and software such as old versions of Bitcoin Core which have been downgraded to SPV-level security by the new BIP66 consensus rules.

 

Essentially some miners are farting out blocks that don’t fit within the new standards and other miners, in a rush to fuck you and get theirs, are grabbing these invalid blocks and building the blockchain upon them, leading to forks as some clients reject these broken blocks and others keep on truckin’, regardless of the validity of their transactions. It’s now advised to wait for 30 confirmations instead of 6, because, much like VISA and Mastercard, you have to wait an entire day for your card to be approved.

The flood of test transactions on top of this is like diarrhea icing on a shit cake.