BTC1 Consensus Bug

5Y Ago

Alice, Bob, Carol, Dave, etc. are 'btc1' miners and have begun enforcing segwit (bit1) signaling.

These miners are not connected directly to each other but only via the network of ordinary Bitcoin nodes, as is likely.

Mallory is an "unlimited" running miner (or at least pretending to be) and not signaling segwit.

Mallory creates a non-BIT1 signaling block.

A, B, C, D... all ignore her block because it doesn't signal.

Alice mines a block. But B, C, D, etc. won't hear it because it isn't the longest chain to the rest of the network.

Bob mines a block but A, C, D, etc. won't hear it... and so on.

Meanwhile Mallory and the other non-btc1 miners keep on mining more blocks, all collaborating on a single chain.

So the network breaks into as many forks as there are partitioned 'btc1' miners until a single btc1 miner overtakes all the non-btc1 miners combined, which may not even be possible.

Resolution is to either guarantee there are non-bit1 signaling miners before enforcing (kind of incompatible with the definition of 80% activation), or manually guarantee the the graph of enforcing miners is connected.

This requires an urgent response.