Two chains share a block numbered 556,766, mined on 15 November 2018 at 17:52:01 UTC, with
the hash 00000000000000000102d94fde9bd0807a2cc7582fe85dd6349b73ce4e8d9322. Everything before
it belongs to both histories. Everything after it belongs to one or the other: block 556,767
begins 0000000000000000004626ff on
one chain and
000000000000000001d95671 on
the other, ten and
twenty-five minutes after the block they share. Kraken, which had to credit customers on both
sides, published the same split time, "2018-11-15 17:52 UTC"
(18 November 2018).
The people running what followed called it a war fought with mining power, and it is the clearest case anyone has of a question mining power was asked to answer and could not. This post assumes you know roughly what miners do and what a node does.
Two upgrades, written separately
Bitcoin Cash had a scheduled upgrade that fired when the median time past of the last eleven blocks reached UNIX timestamp 1542300000, which is 16:40 UTC on 15 November 2018. Both sides agreed on the date. On the contents, they did not.
The specification published at bitcoincash.org, dated 10 October 2018, listed five consensus
changes: enforce canonical transaction order and drop the topological ordering constraint,
enable OP_CHECKDATASIG and OP_CHECKDATASIGVERIFY, require a minimum transaction size of
100 bytes, enforce push-only scriptSig, and enforce the clean stack rule
(2018-nov-upgrade.md).
Bitcoin ABC implemented it, item by item, in its
0.18.0 release notes.
The rival implementation was announced on 16 August 2018 by nChain, as Bitcoin SV, for Satoshi
Vision. Its launch release quotes Calvin Ayre saying CoinGeek and other miners had asked nChain
for an implementation "that restores the original Bitcoin protocol"
(nChain, 16 August 2018).
Its 0.1.0 release notes,
tagged 15 October 2018, name three changes at the same activation point: re-enable OP_MUL,
OP_INVERT, OP_LSHIFT and OP_RSHIFT, raise the opcode limit per script to 500, and set
the default maximum accepted block size to 128 MB. They also record that automatic replay
protection was removed.
The collision is in the ordering rule. Canonical order sorts transactions in a block by transaction id. Topological order, which Bitcoin had always required and Bitcoin SV kept, puts a transaction after any transaction in the same block it spends from. The two conflict whenever a block contains a chain of spends, because sorting by id will sometimes put the child first. From 16:40 UTC a block one implementation produced could be rejected outright by the other, and neither side shipped replay protection at the split.
The claim that mining power would settle it
The public argument on the SV side was that sustained mining, not an agreement about rules, was the deciding instrument. CoinGeek published Ayre's position on 16 November, the day after the split: "CoinGeek and nChain are in this battle for the long haul. We will mine BCH and fight as long as it takes to protect the original Bitcoin from Bitmain, Jihan Wu, and their Bitcoin ABC development group", adding "we are prepared to fight for months and months" and "Bitcoin is about Proof of Work (PoW), not Proof of Rented Hash (PoRH)" (CoinGeek, 16 November 2018). In an interview published three days before the fork, Craig Wright said of the other side: "They will go bankrupt. I'm very happy to bankrupt them. We will bleed them" (Decrypt, 12 November 2018).
That argument deserves its strongest form, because it is not nonsense. A miner with enough hardware can point it at the chain it dislikes and fill blocks with nothing, which costs the attacker the reward on a coin they do not want and costs everyone else the use of the chain. Sustained mining also decides how fast a chain confirms, and a chain nobody can use is a chain nobody prices. Neither needs the other side to agree with you about anything.
One thing it did not have going for it, and this is usually got wrong. Bitcoin Cash had already replaced Bitcoin's 2,016-block retarget: since 13 November 2017 it recomputed the target for every block from a rolling 144-block window (nov-13-hardfork-spec.md). Neither chain was stuck at a target calibrated for the pre-split network, so the difficulty trap that closed on BIP-110 in August 2026 did not exist here. This was a contest of sustained spending, not a race against a clock.
What happened over the next eleven days
Kraken had said on 10 November that Bitcoin SV "does not presently meet Kraken's listing requirements and is unlikely to be supported". It listed it anyway on 18 November, under a separate ticker and a warning list including "no known wallets supporting replay protection" and "chain's survival may be mutually exclusive with other chains".
On 20 November, Bitcoin ABC released 0.18.5. The first line of its release notes is the one that
matters: "Add the finalized block concept. Finalized blocks cannot be reorged, which protects
the network against deep reorgs." It added a -maxreorgdepth setting defaulting to 10 and "a
penalty to alternative chains based on the depth of the fork"
(release notes),
and ABC's announcement that day said the release followed threats of reorganisation by "a few
miners" (bitcoinabc.org). Whatever
else it did, from 20 November an ABC node would not switch to a rival history that reorganised
more than ten blocks, however much work that history carried.
Accounts of who was ahead conflict, so here is a measurement anyone can repeat. At 00:00 UTC on
25 November 2018 the first block at or after that time was height
558,039 on one chain and
558,067 on the other: 1,273 and
1,301 blocks after the block they share. Decoding the bits field of each gives a difficulty of
about 367.7 billion and 416.4 billion respectively. Ten days in, the SV chain was ahead on both
measures. It did not get the name, and by then it could not have taken it by mining either,
because five days earlier the other side had changed the rule that made mining decisive.
On 26 November CoinGeek published that the fight was over: "This ends the on-going BCH hash war triggered by the November 15, 2018 network upgrade." The same piece quotes Ayre saying that "although ABC may keep the damaged BCH ticker symbol, BSV is winning over BCH's native application ecosystem in droves", and Bitcoin SV technical director Steve Shadders on adding replay protection "to restore confidence to users and businesses on both chains" (CoinGeek, 26 November 2018).
Why the work could not decide it
Proof of work orders blocks inside one set of consensus rules. It does not choose which set is correct, because a node checks the rules before it ever looks at the work. The white paper puts the ordering plainly in section 5: nodes accept a block "only if all transactions in it are valid and not already spent", and only then work on extending it (Nakamoto 2008, walked through here).
In code the sequence is explicit. Bitcoin Core keeps a set called setBlockIndexCandidates, and
Chainstate::FindMostWorkChain picks the heaviest entry in it
(src/validation.cpp, v31.1).
A block that fails validation is flagged BLOCK_FAILED_VALID and erased from that set
(same file), and
the candidate search drops a whole branch if any ancestor carries the flag, under the comment
"Candidate chain is not usable (either invalid or missing data)". An invalid chain is not a
heavier competitor. It is not a competitor. Both 2018 implementations derived from that
codebase, so each side's blocks were simply absent from the other's candidate set.
Two consequences follow.
- A "hashrate vote" is a category error. Voting presumes a shared question and a shared rule for counting. Two groups enforcing different validity rules are not counting the same ballots, because each node discarded the other side's blocks before any comparison of work began. More work on the far side of that line moves nothing.
- A longer chain under different rules is not a reorganisation. It is a separate ledger that shares a prefix. Calling it a takeover assumes both chains were candidates for the same slot. To a node, they never were.
Mining empty blocks on the opposing chain is a real threat and a different one. It changes nobody's rules; it degrades a chain's service for as long as the attacker keeps paying.
What miners do decide, which is not nothing
Reading that as "miners have no power" is the opposite mistake, and it is common.
Miners choose which valid chain to extend, and no node can override that. It decides how fast each chain confirms and therefore whether a chain is usable at all. On Bitcoin, where the target only moves every 2,016 blocks, a chain that loses its miners has no quick way out (how the retarget works). Miners also choose which transactions go into blocks and in what order, which is the subject of the fee market.
The honest formulation is narrow. Miners decide the ordering and the availability of a chain. Nodes decide what counts as a chain at all.
Where the two chains are now
Both survived. The chain following the bitcoincash.org specification kept the Bitcoin Cash name and the BCH ticker, and stood at height 965,015 at 09:34 UTC on 21 August 2026. The chain following the nChain specification is Bitcoin SV, ticker BSV, and stood at 963,261 the same morning (Bitcore, WhatsOnChain). The Bitcoin Cash side then did it again in November 2020, over a rule requiring that "at least 8% of the block reward must be spent as a single output" to one named address (spec); the chain enforcing it separated as Bitcoin Cash ABC and rebranded on 1 July 2021 as eCash, ticker XEC (e.cash).
None of that is Bitcoin and none of it moved a Bitcoin consensus rule. It is the cleanest demonstration available of the one thing this post is about: when people who disagree about rules both keep validating, there is no winner. There are two ledgers, and the arithmetic that was supposed to choose between them was answering a different question.
