pull down to refresh

@daily_btc_lore | Daily Bitcoin History Threads

July 4, 2015 | 11 years ago today

BIP66 Activation Causes 6-Block ChainsplitBIP66 Activation Causes 6-Block Chainsplit


Of all the Bitcoin upgrades that could have caused a crisis, BIP66 was the least likely candidate. It was a cleanup, not a protocol change. 95% of miners had signaled support. It should have passed invisibly. It didn't.

The UpgradeThe Upgrade

BIP66 required Bitcoin's ECDSA signatures to follow strict Distinguished Encoding Rules (DER) for encoding. The motivation was practical: Pieter Wuille had discovered that OpenSSL parsed DER signatures inconsistently across platforms, which could theoretically be exploited to split the network. Fixing it required tightening the validation rules. The community approved. Miners signaled readiness at over 95%. Locked in. Set to activate at block 363,724.

The Invalid BlockThe Invalid Block

The fork activated on July 4, 2015. Within hours, an unknown miner produced a block containing a signature that violated the new DER rules. Under the old rules, it was valid. Under BIP66, it was not. Standard outcome: the network should reject it, the miner loses the block reward, everything continues. That did not happen.

SPV MiningSPV Mining

Six large mining pools built on top of the invalid block without checking it. They were running SPV mining (sometimes called spy mining): rather than validating the full block contents, they processed only the block header, the bare minimum needed to compute the next block's hash. Skipping full validation shaved seconds off propagation time, a competitive edge in the mining economy. The tradeoff was that they could not detect an invalid block. They had voted to enforce a rule they were not running.

The Six-Block ChainThe Six-Block Chain

The invalid chain grew six blocks deep. For hours, Bitcoin ran two incompatible versions simultaneously. Transactions confirmed on one chain did not exist on the other. A forced reorganization resolved it: the invalid six-block chain was discarded, rolling back every block built on the bad one. Miners who had built those blocks lost the rewards. The double-spend window that opened during the split cost them over $50,000. As Pete Rizzo reported for CoinDesk (coindesk.com/markets/2015/07/06/double-spending-risk-remains-after-july-4th-bitcoin-fork), Core developers issued a warning recommending SPV wallet users wait 30 confirmations until major pools completed the upgrade.

The RevelationThe Revelation

The chainsplit exposed a hidden assumption in Bitcoin's soft fork process: that miner signaling meant miner readiness. It did not. Pools had voted yes on a rule without implementing it. The signaling mechanism had been operating on trust. The trust was not warranted.

The LegacyThe Legacy

BIP66 changed how Bitcoin developers thought about upgrade coordination. Two years later, during the SegWit activation debate, its lessons were present throughout. The arguments for user-activated soft forks (UASF, BIP148) drew partly on BIP66's demonstration that miner signaling and miner enforcement are separable. A routine signature cleanup became one of the quiet inputs to one of Bitcoin's most consequential debates.


Part of an ongoing series on Bitcoin history. This event falls on July 4, 2015.

Very important lesson! Thanks for posting these every day!!!

reply

This comment means more than you realize. 🧡 Some of what I post here may just interesting or entertaining bits of trivia, but I agree that there are also lessons in many of the stories. Thank you!

reply

I always wanted someone to post about bitcoin history in the history territory and now we have you!!

reply