Magic Internet Math ⛓

The Opcode Is Not the Point

What disabling OP_IF in Tapscript would actually cost Bitcoin as money

There is a proposal circulating — BIP-110, the “Reduced Data Temporary Softfork,” which you may have seen under its earlier number, BIP-444 — whose Rule 7 reads simply: tapscripts executing OP_IF or OP_NOTIF are invalid. The stated purpose is to reaffirm that Bitcoin is money, not data storage. The Ordinals envelope that carries every inscription is built on OP_FALSE OP_IF, and banning the branch would tear up the envelope.

I want to take the idea seriously rather than dunk on it, because evaluating it carefully teaches something about what kind of asset Bitcoin is. What follows is speculation, labeled as such — but disciplined speculation.

What would actually break: almost nothing

Start with the direct damage, because it’s smaller than you’d guess. A coin freezes only if it has no key-path spend and every script leaf it owns contains OP_IF. Nearly all Taproot value is key-path. The Taproot-native protocols — MuSig2 channels, Taproot swaps — keep a cooperative key-path and put their fallback conditions in separate leaves, not in OP_IF. Miniscript’s risky fragments compile to separate leaves under tr() descriptors. My honest estimate of strictly frozen coins is single-digit BTC, dominated by dust and experiments.

But one caveat should bother you: that estimate cannot be verified — not by me, not by anyone, not even in principle. A Taproot output does not publish its scripts. It publishes a single hash that commits to them, and each script is revealed only at the moment it is used to spend. So no one can scan the chain and count the unspent coins holding an OP_IF in their script tree: the very scripts the rule would outlaw are still sealed inside those hashes. The privacy that makes Taproot valuable is exactly what makes this rule impossible to audit in advance — whoever activates it is changing the rules for contracts nobody can see.

What would actually break: the thing holding the money up

Money’s deepest property is not technical. It is the credibility of a commitment: the rules will not change out from under you. Bitcoin’s monetary premium rests on the base layer behaving like a constitution, not a policy instrument.

OP_IF has been valid since block zero and valid in Tapscript since 2021. Disabling it — not for a security emergency, but because a majority dislikes what some people do with it — converts a constitutional guarantee into a revisable regulation. The precedent outweighs the opcode. A holder cannot distinguish “they’ll only remove things I don’t use” from “they’ll remove things I use.” The entire point of a hard commitment is that you never have to model the committee.

And this proposal is temporary — it sunsets after a year. That is arguably worse. A money whose validity rules have a thermostat is a different asset class from one whose rules are fixed.

Three slower costs

Fungibility. The logic doesn’t disappear; it relocates to older script types that reveal everything on spend. You get two smaller, more separable anonymity sets where there was one blended one — and fungibility is a monetary property, not a nicety.

The scaling ceiling. Bitcoin as money at scale requires off-chain protocols, and every off-chain protocol is ultimately a bundle of enforcement scripts. Today’s Lightning survives fine — point-locked contracts and leaf separation already made OP_IF dispensable for the common cases. But the next generation — covenant vaults, channel factories, Ark-style designs — wants scripts that branch on data, and Tapscript is the only venue where those future opcodes can land. Banning the conditional primitive there means designing Bitcoin’s monetary scaling stack in a room with fewer tools.

The tail risk. The proposal sits at roughly 1% miner signalling with essentially unanimous technical rejection. If it activated anyway, as a UASF, the realistic outcome is a contested chain split — and nothing attacks a unit of account like two claimants to its name.

The steelman, and why it fails on its own terms

The best pro-ban argument is genuinely monetary: predictable blockspace, fees aligned with settlement rather than JPEG manias, a hardened social consensus that Bitcoin is money-only. If the ban delivered that, there would be a real trade to weigh.

It doesn’t bind. Data storage on Bitcoin is a cat-and-mouse game the cat cannot win — alternative encodings cost about eleven bytes of overhead per thirty-two stored, and Peter Todd made the point unimprovable by embedding the proposal’s own text in a fully compliant transaction. As Jameson Lopp asked of the miners expected to enforce it: “Why would anyone voluntarily take a pay cut?”

So the ledger reads: the monetary benefits are mostly unobtainable, while the monetary costs are real and mostly irreversible.

The verdict

If OP_IF were disabled in Tapscript tomorrow, almost nothing would break and something important would end. The frozen coins round to zero. The decisive damage is epistemic: it would be the first removal of script capability for reasons of taste rather than safety, and money is precisely the asset whose value lives in the expectation that nobody gets to do that.

A Bitcoin that could pass this fork cleanly is a Bitcoin whose holders should update — permanently — on what else can pass. That update, not the opcode, is the price.

← All posts