The BIP-110 Phantom: Ledger's Replay Warning and the Arithmetic of Forked Value

0xCobie
People

Let's be clear about the anomaly before we touch the economics. BIP-110 already shipped. It is called CHECKSEQUENCEVERIFY (CSV), it activated on Bitcoin mainnet in late 2016, and it now sits quietly in the consensus layer that every full node enforces. CSV introduced relative timelocks through the sequence number field, working in combination with BIP-68 for the locktime semantics and BIP-113 for the median-time-past rule. It is not a proposal. It is not pending. It is settled history. So when Ledger β€” the hardware wallet vendor with the largest installed base of cold-storage devices β€” issues a security alert warning users about a "BIP-110 fork forming an independent chain," the headline does not survive contact with the blockchain.

The alert is real. The replay risk it describes is real. The name attached to it is a ghost.

I have spent a decade reading protocol warnings and then checking them against bytecode, and the pattern here is familiar: code does not lie, but it often forgets to breathe. The truth hidden inside Ledger's notification is not the fork's name β€” it is the technical footprint of the fork itself. If Ledger's firmware can sign transactions for this chain, then the fork's transaction format has already been tested against production hardware. That is not speculation. That is an information leak wearing a safety announcement.

Context: The Fork That Already Happened

On August 9, Ledger published a reminder to BTC holders. If a "BIP-110" fork emerges, the resulting chain may lack replay protection, and users should exercise extreme caution before claiming any fork-issued coins. The wording was careful β€” a brief, technical, corporate-risk-managed statement. It did not name the group behind the fork. It did not disclose an activation block height, a node client repository, miner support, or testnet status. What it did provide is a window into a real engineering reality that most market commentary will miss.

Replay attacks come from a simple cryptographic fact. When a blockchain forks, both chains share the entire pre-fork ledger. Ownership on both chains is proven by the same addresses and the same ECDSA signatures. If Chain A and Chain B accept the same transaction format, then a signature valid on one chain is valid on the other. An attacker who observes a legitimately signed transfer simply rebroadcasts the raw transaction bytes on the sibling chain. The victim signs once; the attacker replays infinitely; the victim's balance moves on both chains with a single signature. The victim does not lose the fork coin. The victim loses the mainnet BTC the fork-claim transaction was supposed to touch.

The fix is established engineering. Bitcoin Cash implemented SIGHASH_FORKID in 2017, prepending a chain identifier to the signature hash so that transactions signed for BCH are cryptographically invalid on BTC. Other designs use OP_RETURN markers, coinbase commitments, or unique sighash preimages to bind a transaction to a chain identity. Ethereum Classic never implemented a robust version of any of these and spent years under replay pressure after the DAO hard fork, with attackers replaying transactions between ETC and ETH and draining users who believed fork coins were free money. These mechanisms have existed since 2017. Their absence in a 2020s-era fork is inexcusable.

Now the naming problem. In Bitcoin's BIP repository, BIP-110 is the proposal for CHECKSEQUENCEVERIFY. It was deployed as part of the BIP-68/112/113 family and activated in November 2016, immediately before SegWit's activation window. CSV did not fork Bitcoin. It upgraded it. It gave the protocol a relative-time dimension, enabled more efficient payment channels, and became a structural prerequisite for Lightning's original design. Therefore, the phrase "BIP-110 fork forming an independent chain" is one of three things: a misnumbering, a deliberate rebranding of a historical BIP for rhetorical cover, or β€” most likely β€” a plan to run a node client that strips out CSV and subsequent soft forks, creating a revert-style chain that maintains signature-level compatibility with BTC while undoing years of consensus upgrades. The third reading is the only one that produces an independent chain with plausible mining activity, and it is also the one that guarantees the replay vulnerability. A revert fork inherits every pre-fork UTXO, preserves the exact sighash format, and adds no chain-binding commitment. It is, by construction, a replay machine. Ledger's own history reinforces the significance of this: after its firmware controversies and repeated security advisories, the company has learned to be precise when chain-level risks reach its user base. The precision of this alert is deliberate.

Core: An Audit of the Fork Threat

I am going to structure this the way I structure any audit: threat model first, then value function, then liquidation path. Each step is reproducible.

1. The Threat Model Is a Symmetry Problem

Most commentary frames replay protection as a defense against the malicious fork operator. That is wrong in a way that matters. Replay is not theft by the fork's creators. Replay is a property of the transaction format itself, and the attacker is any third party who watches either chain's mempool. When a user claims a fork coin by moving pre-fork coins, they broadcast a transaction. If that transaction is valid on both chains, the attacker does not need to compromise anything. They rebroadcast. The attack cost is one relay fee. The payout is the victim's entire available balance on the other chain.

This is why I have always argued that financial logic hides in state-changing functions. In 2020, I audited a liquidity-mining contract for a small DEX and found a reentrancy vulnerability in its reward distribution path that would have allowed infinite token minting. The root cause was ordering: the contract updated the user's reward debt after, not before, the external call. Replay vulnerability is the same class of bug at a different layer. Both are failures to invalidate old state before accepting new state. The Solidity developer who forgets checks-effects-interactions and the fork developer who omits SIGHASH_FORKID are committing the same sin: trusting the environment instead of verifying it.

The threat surface has a precise boundary. A replay attack only works if three conditions hold: the fork chain preserves BTC's exact transaction format including the sighash algorithm; the victim signs a transaction on the fork chain; and the transaction touches UTXOs that also exist on BTC mainnet. The third condition is the one most people miss. A freshly mined coin on the fork chain has no mainnet counterpart, so replaying it is meaningless. The danger zone is legacy UTXOs β€” coins created before the fork. Every pre-fork Bitcoin user carries this exposure hidden in their wallet. The wallet UI does not show it. The math defines it.

2. What "Replay Protection" Actually Means

The term is thrown around loosely, so here is the engineering spectrum. The strongest form is signature-level chain binding: modify the sighash preimage to include a chain identifier, as SIGHASH_FORKID does in the BIP-143 proposal style. This makes cross-chain signature reuse cryptographically impossible. The cost is that existing wallets and hardware devices must be updated to understand the new signature variant; a fork that adopts it sacrifices immediate compatibility. The weakest form is a coinbase-level commitment: each block commits to a chain ID, which prevents block replay but does not prevent transaction replay. Some projects use OP_RETURN markers in transactions, but OP_RETURN does not bind the signature and cannot stop an attacker from stripping the marker and rebroadcasting the core transaction. In practice, only sighash-level protection works. Everything else is security theater.

This is the trade-off the fork's promoters are implicitly refusing to make. Full replay protection requires breaking compatibility with existing wallets. A fork that wants to tell users "your hardware wallet already works with our chain" must preserve the transaction format, which means it must forgo the one feature that makes the fork safe. The fork is choosing compatibility at the expense of asset safety. And the fact that Ledger's firmware appears to recognize the fork's transaction format strongly suggests the fork explicitly targeted hardware wallet compatibility. They wanted users to be able to claim. They did not want those claims to be safe.

Gas wars are just ego masquerading as utility. The same ego that launches a fork without replay protection also markets it as "the true Bitcoin." The market, however, prices structural fragility precisely: an unprotected fork is a value-destruction machine disguised as an airdrop.

The BIP-110 Phantom: Ledger's Replay Warning and the Arithmetic of Forked Value

3. The Value Function Is Negative

I spent six months after the Terra collapse reverse-engineering oracle manipulation vectors in algorithmic stablecoins. That experience installed a permanent habit: compute expected value before touching any transaction. The formula for a fork coin claim is simple.

EV(claim) = P(fork coin has tradable value) Γ— V(airdrop) βˆ’ P(replay loss) Γ— L(mainnet BTC)

The asymmetry is brutal. The airdrop value of a brand-new fork with no exchange listing, no developer track record, and no replay protection is speculative and historically converges to zero. The mainnet BTC at risk is real, liquid, and fiat-denominated. For a user moving a single 1 BTC UTXO, with the fork coin trading at $50, the equation requires P(replay) to be lower than 0.005% just to break even. In practice, P(replay) is orders of magnitude higher whenever the fork has any mempool activity, because the fork's broadcast infrastructure is typically amateur β€” public nodes, shared RPC endpoints, default settings. An attacker monitoring the fork's mempool captures replayable transactions within seconds of broadcast. There is no race to win. There is only relay.

A fork without replay protection is not an airdrop; it is a liability with extra steps. The act of claiming β€” the very action the fork's promoters encourage β€” is the attack vector. The fork does not need to be malicious to destroy value. It only needs to be incompetent.

Add the institutional frame and the equation becomes even more one-sided. A regulated custodian or a spot Bitcoin ETF sponsor cannot claim fork coins without triggering fiduciary review, tax events, and risk-committee sign-offs. For them, the value of an unprotected fork coin is not speculative upside; it is a compliance liability. Most have standing policies to ignore forks entirely. The professional money that might have offered exit liquidity to retail claimers is structurally absent. The only buyers left are speculators who have not done the math, and they will not provide enough depth to justify the risk.

4. The Liquidation Path Is a Deadlock

Assume a user ignores the math and claims anyway. They now need to sell the fork coin. Where? Exchanges learned from 2017. Major venues require replay protection before listing a fork because they will not accept deposits bundled with replay risk. A fork without protection is delisted from consideration before it is listed. Decentralized exchanges are worse: most DEXs and bridge protocols assume a single canonical chain and have no mechanism to distinguish a fork coin from a mainnet coin. OTC desks will quote a price only after a technical review that a wrapperless fork will almost certainly fail.

This is the liquidity deadlock: no replay protection β†’ no exchange listing β†’ no liquid market β†’ no price discovery β†’ value converges to zero. The historical record is consistent. Bitcoin Cash survived because it implemented SIGHASH_FORKID early and secured exchange support. Bitcoin SV and Bitcoin Gold did not preserve market depth. All three trade more than 85% below their 2017-2018 peaks; BSV and BTG have lost major exchange support entirely. The pattern for unprotected forks is always the same: a brief speculative spike, rapid cooling as infrastructure refuses to touch the chain, then permanent illiquidity. The mainnet price impact of such events is usually under 1%. The fork coin's price impact is usually terminal.

5. Ledger's Firmware Is the Real Message

Here is the information gain the alert did not intend to provide. Ledger stated that its devices are technically capable of signing transactions on this fork chain. That capability does not materialize spontaneously. It requires firmware to recognize the fork's transaction format, which means the fork's transaction-construction logic was compiled, executed, and validated against production hardware. A chain that exists only as a forum threat cannot produce such a test. A chain with a running node client and a hardware-compatibility path can.

So the fork is not hypothetical. It has reached the stage where someone built a client, produced a block, generated a transaction, and ran it through Ledger's signing pipeline. That is a higher-order signal than any announcement. It tells us the fork's code exists, the fork's promoters are actively progressing toward launch, and they understand the hardware ecosystem well enough to target the dominant wallet vendor. It does not tell us who is behind it. There is no public repository, no miner support disclosure, no activation height, no testnet status. The chain is a black box with a compatibility-tested interface. As an auditor, that pattern is familiar: the demo works, the documentation is missing, and the security model is a blank page. I would not call it a scam. I would call it un-engineered β€” which is worse, because incompetence cannot be negotiated with.

6. The Miner Arithmetic Doesn't Work

Apply the political economy. A revert-style fork that removes CSV and subsequent soft forks would need sustained hashpower to produce blocks. But the hashpower that would fund this chain is the same hashpower currently securing BTC. After the fourth halving in 2024, the block subsidy dropped to 3.125 BTC and hashprice β€” the fiat value of one terahash of daily output β€” fell by roughly half within months. Mining revenue collapsed across the industry. Public mining companies sold production to service debt; private miners idled capacity. There is no economic incentive to divert hashrate to a chain whose only distinguishing feature is the absence of a 2016 soft fork.

The coordination math is worse. Bitcoin's hashrate is far more concentrated than the mythology suggests; three pools routinely account for more than half of the network's total. A fork requiring even a small fraction of that hashrate must convince those pools to defect. Why would they? The fork coin's value is near zero, energy costs are fiat-denominated, and the miners' balance sheets are under liquidation pressure. The only scenario under which a revert fork sustains block production is if an actor with no return-on-investment constraint bankrolls it. That actor belongs in a threat-model fantasy, not in the observable mining market.

The asymmetry is the entire story. The replay risk is real for any user who touches the fork. The fork's survival probability is near zero. The fork's mortality does not protect you. Only your refusal to sign protects you. A dead chain can still destroy your BTC through replay β€” if you hand it a signed transaction first.

7. If You Must Claim: The Procedure

I am not going to tell you to claim. The EV math says don't. But I have audited enough protocols to know a subset of users will ignore the math β€” out of ideology, curiosity, or the belief that free coins have no opportunity cost. If you are in that subset, the procedure has a specific order.

First, sweep. Before touching the fork chain, move your entire BTC balance from every affected address to a newly generated address that has never existed on either chain. This step happens on mainnet first. The purpose is to break the UTXO linkage: the new address has no pre-fork history, so a transaction moving coins from it has no replayable counterpart. Your legacy UTXOs now belong to the claim path; your mainnet BTC sits in a fresh address that no fork-chain transaction will ever touch. Also check for dust change: if your sweep transaction leaves any change in a legacy address, that change remains replayable. Sweep in full, or do not sweep at all.

Second, isolate. Use a dedicated device or a separate software wallet for the fork chain. Do not import the fork coin's private keys into any software that also holds mainnet keys, and never let the fork-chain wallet see your new mainnet addresses. Key management is state management. Mixing contexts is how positions get drained.

Third, never sign twice. A replayed transaction on mainnet is not your transaction; it is the attacker's transaction carrying your signature. The moment you see unexpected BTC movement, do not sign again. Move every remaining BTC to addresses whose private keys have never been exposed to fork-chain software. The signature is the secret. Replay attacks do not require your private key. They require your signature, and you are the one who manufactures it.

This is the same discipline that keeps a Solidity developer from updating state after an external call. In 2017, I spent forty hours auditing a crowdfunding contract and found a stack underflow in its token distribution logic that would have allowed funds to be drained if the contract balance crossed an arithmetic boundary. The fix was reordering operations and validating state before, not after, distribution. Replay-safe claiming follows the same invariant: invalidate the old context before exposing yourself to the new one. This is not a trick. It is an ordering rule that every chain-level interaction should enforce by default.

Contrarian: The Warning as a Market Transaction

Here is the reading that most coverage will miss. Ledger's warning, despite being a safety notice, is itself a market transaction. Hardware wallet vendors do not issue fork alerts casually. The warning's release timing β€” what looks like a quiet period near the fork's presumed activation β€” suggests Ledger had already completed internal compatibility testing and reached the conclusion that its users needed a shield against the fork's own failures. The alert therefore functions not just as risk education but as an implicit declaration of non-support. That declaration destroys more fork value than any technical flaw. A fork chain that cannot rely on the dominant hardware wallet vendor β€” no Ledger Live integration, no Nano signing path, no institutional custody workflow β€” is structurally excluded from the only distribution channel that reaches security-conscious holders.

There is a deeper irony. The safest way to neutralize a fork without replay protection is not to ignore it; it is to warn people about it in precise technical language. Every user who heeds the warning reduces the fork's mempool traffic, which reduces the number of replayable transactions, which reduces activity, which reduces liquidity, which reduces value. Ledger did not merely warn users. It executed a coordinated value-extraction operation against the fork's viability using information alone. I find that grimly elegant.

The blind spot remains us, not them. Commentators keep analyzing forks as intentional actors with coherent economic goals. The more realistic threat model is an accidental fork: a maintainer removes a consensus rule during a refactor, a release candidate ships without the new sighash binding, a node client silently drops a soft-fork activation check. In that frame, the BIP-110 naming confusion is itself the warning. It tells us the fork's own promoters do not have a firm grip on Bitcoin's proposal history. A community that cannot correctly identify which BIP is which will not correctly implement replay protection. The whitepaper is a promise; the sighash is the verdict.

There is also a prisoner's dilemma hiding in fork economics. Any single fork promoter who wants maximum wallet compatibility and immediate exchange interest faces a strong incentive to skip replay protection, because implementing it requires the entire ecosystem to update software before anyone can transact. But if every fork skips protection, every fork becomes a threat to every user's mainnet balance. The optimal collective outcome β€” universal replay protection β€” is unobtainable without coordination, and the fork community has just demonstrated that it cannot coordinate even on a BIP number. The tragedy is not that this fork is dangerous. It is that this fork is predictable.

The second-order effect is already observable. When a vendor of Ledger's scale issues a fork-security advisory, other hardware wallet brands face pressure to publish their own statements. Each statement repeats the same technical verdict: an unprotected fork is unsafe to touch. The fork's already-narrow market participation shrinks further. This is how a security alert becomes a liquidity event β€” not because anyone sold coins, but because everyone who would have bought them was told, in the language of cold storage, that the chain is structurally unfit.

Takeaway: What the Next Fork Will Look Like

The next real fork threat will not announce itself with a mislabeled BIP number. It will arrive as a client release, a chain-parameters diff, or a consensus rule accidentally left on the cutting-room floor during a refactor. By then, the replay-protection question is already decided, and the only defense is not claiming, not splitting, and not "careful" signing. The only defense is refusing to sign across chains at all.

The industry should treat replay protection not as an upgrade but as a default property of any chain that shares a genesis with another. Every node client should expose a chain-identity check at the signature-validation layer. Every hardware wallet should refuse to sign transactions whose sighash preimage is not bound to a single known chain. These are not difficult engineering tasks. They are neglected ones, and neglect is how protocols die.

Watch the node implementations, not the forums. Audit the sighash changes. And ask your wallet vendor one question: what does your firmware do when a second chain starts accepting the same signature? If the answer is "we warn you," that is not security. That is a receipt for diligence we borrowed from a future attack.

The code does not lie, but it often forgets to breathe. This time, it forgot to protect you. Next time, do not assume it will remember.