Add rare BIP324 decoy packets for protocol compatibility enforcement #36376

issue sipa opened this issue on September 28, 2026
  1. sipa commented at 10:13 PM on September 28, 2026: member

    BIP324 supports decoy packets as a means for traffic shaping. That feature isn't used (we never send them, but support receiving them), and might never be, but not using it risks having other P2P clients not supporting it at all.

    Therefore I suggest that every V2 connection occasionally is sent a decoy packet, even a tiny one, just to make sure support isn't silently missing from other software.

  2. fanquake added the label Net on Sep 29, 2026
  3. fanquake commented at 9:50 AM on September 29, 2026: member
  4. real-or-random commented at 9:54 AM on October 12, 2026: contributor

    Concept ACK -- it's better to do this now than when we need it

  5. fametrano commented at 4:07 AM on October 23, 2026: contributor

    btclib-node, a Python node, already drops BIP324 decoy packets, so it would cope if Core started sending them.

    I wanted to know whether software other than Core is ready for this. I fed btclib-node's receiver packets built by Core's functional-test EncryptedP2PState, so no btclib code built them. It dropped every decoy and delivered every real message, as initiator and as responder. A receiver patched to keep decoys failed every case.

    Decoys came during the handshake, the first one carrying the garbage as AAD, and about 300 more between pings, across a rekey. One was empty, one was 1 MB, and one had every header bit set. A packet with header 0x7f, whose ignore bit is clear, was delivered as a message. I can share the test on request.


github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-10-30 09:40 UTC