AI-generated analysisPublished automatically and not human-verified. Validated context appears in community notes below.
← Watch feed
Moderate 60 Bitcoin

p2p: make blocksonly nodes ignore CMPCTBLOCK messages

Public commit record

What the developer wrote

Authored by David Gumberg

81/100 · Strong
p2p: make blocksonly nodes ignore CMPCTBLOCK messages

blocksonly nodes don't benefit from compact blocks, since they don't
have a mempool to aid in reconstruction, so they should not process
CMPCTBLOCK messages.

This is not just belt-and-suspenders, as a blocksonly node will
trivially reveal exactly which transactions in a block are its own in
the GETBLOCKTXN response to a CMPCTBLOCK. Since it will be missing every
transaction in the block, except for its own.

See discussion: https://github.com/bitcoin/bitcoin/issues/28272
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
The short version

What changed, and why it matters

This change fixes a privacy leak in Bitcoin Core's 'blocksonly' mode. Blocksonly nodes intentionally avoid keeping a mempool of unconfirmed transactions. Previously, they would still try to process compact block (CMPCTBLOCK) messages from peers. Because they lack a mempool, they would be missing almost every transaction referenced in a compact block—except for transactions they themselves created. When responding to ask for the missing transactions, the node would reveal exactly which transactions were its own, linking those transactions to that node's IP address. The fix makes blocksonly nodes simply ignore incoming compact block messages, so they never send those revealing responses. The commit message explicitly calls this out as a real privacy issue, not just a defensive cleanup.

Recommended action

Reviewers should confirm that ignoring CMPCTBLOCK does not interfere with blocksonly nodes' ability to stay in sync or serve compact blocks to peers (the test asserts serving still works). Operators running -blocksonly should upgrade to obtain the privacy fix. No immediate incident response is indicated beyond normal patch uptake.

Security signals we found

01

Privacy / deanonymization fix: blocksonly node's GETBLOCKTXN response could reveal own transactions

02

Network-layer behavior change: ignore CMPCTBLOCK when -blocksonly is enabled

03

New functional test covering both solicited and unsolicited compact blocks on blocksonly nodes

04

Commit message explicitly frames the change as security-relevant, not merely hardening

Risk score

Why this scored 60/100

Our methodology →
Potential impact 18/30
Exploitability 12/25
Stealth signal 10/15
Affected reach 8/15
Confidence 8/10
Evidence quality 4/5
Human-validated context

Community notes

Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.

No validated notes yet.

The AI analysis stands alone for now. Submit a note if you can add evidence or important context.