Split out of #36608, the overall private broadcast rework to support ease of review for like-for-like feature.
Differences from #36608 :
- No tool support or prep refactors for the tool
- No package relay
- Slimmed down test profile focusing on protecting aginst IP address linkage and not crashing the node on adversarial inputs (which is a leak in itself)
With -privatebroadcast, sendrawtransaction queues a job instead of handing the transaction to
the connection manager. Each job runs on its own thread, shares no state with the node, and
reaches the network only through the Tor proxy: it resolves the chain's DNS seeds, then announces
over BIP324 to recipients on a schedule drawn up front, each connection with fresh isolation
credentials. Nothing a recipient does, and nothing the node sees of the transaction coming back,
changes the plan, and the transaction enters the node's mempool only when it returns from the
network. The old private broadcast connections and relay are removed.
The invariants are specified in doc/design/private-broadcast.md.
The rest of the tests are in a follow-up to be considered later: https://github.com/instagibbs/bitcoin/tree/2026-10-pb_reimpl_followup