Bitcoin Core Modification
Bitcoin Roots applies three targeted patches to Bitcoin Core v25.0: removing miner veto from upgrade activation, tightening OP_RETURN relay limits, and enforcing an OP_RETURN hard limit at consensus. Seven files changed. Everything is auditable.
Overview
Bitcoin Roots is a fork of Bitcoin Core v25.0 with modifications to two subsystems: the upgrade activation mechanism and OP_RETURN data limits. The changes are minimal by design, intended to keep the diff small enough for anyone to audit in a single sitting.
The first patch replaces BIP-9 miner-signaled activation with BIP-8 timelocked activation, removing the ability for mining pools to block protocol upgrades indefinitely. The second patch reduces the OP_RETURN relay limit to 80 bytes. The third patch adds consensus-level enforcement via DEPLOYMENT_NOPAK — a soft fork activating at block 1,050,000 that rejects blocks with oversized OP_RETURN data. Together, these make it economically impractical to use the blockchain for storing arbitrary data.
Neither change is a hard fork. Bitcoin Roots nodes run on the standard Bitcoin network, enforce stricter relay rules, and use an alternative activation mechanism. Your wallet, your keys, your transactions — all work exactly as before.
Patches
Every line change is traceable to a file in the repository.
Replaces BIP-9 miner signaling with BIP-8 timelocked activation. Upgrades activate at a predetermined block height regardless of miner participation. Early activation still possible if 95% of hash rate signals, but the veto is removed — the upgrade activates on schedule either way.
Files modified:
src/consensus/params.h — DEPLOYMENT_BIP8 enum, nTimelockHeightsrc/versionbits.h — TimelockHeight() virtual methodsrc/versionbits.cpp — Timelock override in state machinesrc/kernel/chainparams.cpp — Height config per networksrc/deploymentinfo.cpp — Name lookupTwo changes to OP_RETURN: reduces MAX_OP_RETURN_RELAY from 83 to 80 bytes at relay, and adds consensus-level enforcement via DEPLOYMENT_NOPAK — a BIP-8 soft fork activating at block 1,050,000 that rejects blocks containing OP_RETURN scripts > 81 bytes. Enough for CoinJoin commitment tokens; too small for data carvers.
Files modified:
src/script/standard.h — MAX_OP_RETURN_RELAY: 83 → 80src/consensus/params.h — DEPLOYMENT_NOPAK enumsrc/deploymentinfo.cpp — NOPAK name lookupsrc/kernel/chainparams.cpp — Height 1,050,000 per networksrc/validation.cpp — Consensus check in ConnectBlocktest/functional/p2p_no_pak.py — Functional testPhilosophy
Bitcoin Roots is driven by four principles that dictate every patch. Nothing ships unless it strengthens one of them.
Bitcoin is peer-to-peer cash. The blockchain records value transfers, not arbitrary data. OP_RETURN is limited to what protocol-level tools require.
Protocol upgrades belong to the full-node community, not mining pools. BIP-8 activation ensures no single entity can delay improvements.
Scaling belongs on Layer 2. The base layer should be secure and minimal. Lightning Network handles payment throughput.
Seven files. Clean diff. Auditable in an afternoon. No hidden behavior, no sponsored features, no corporate commitments.
FAQ
No. Bitcoin Roots runs on the Bitcoin network. The changes are relay policy and activation mechanism — your node syncs with the same chain, enforces stricter rules on what it propagates, and uses BIP-8 for future upgrades.
Yes. A Bitcoin Roots node speaks the same P2P protocol as any Bitcoin Core node. Point your wallet to it with the standard RPC or ZMQ setup.
The 80-byte limit supports CoinJoin commitment tokens (CTX) and similar protocol-level use cases. If a tool you rely on needs more than 80 bytes of OP_RETURN data, that tool is using the blockchain as storage — which is what this change targets.
Seven files. You can verify the diff yourself: git diff v25.0..roots/dev --stat. We intentionally kept the surface area minimal so the audit trail is short.
You need to be comfortable building from source — the same requirements as running Bitcoin Core directly. We have a walkthrough on the Build page if you want step-by-step instructions.