Skip to content

Commit

Permalink
Add bip-halt-unrequested-txn-processing
Browse files Browse the repository at this point in the history
  • Loading branch information
ariard committed Sep 6, 2024
1 parent b4ea0a9 commit 61d285f
Showing 1 changed file with 53 additions and 0 deletions.
53 changes: 53 additions & 0 deletions bip-halt-unrequested-txn-processing.mediawiki
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<pre>
BIP: YYY
Layer: Peer Services
Title: Unrequested Transactions Processing
Author: Antoine Riard <btc@ariard.me>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0XXX
Status: Draft
Type: Standards Track
Created: 2024-09-05
License: GPLv2
</pre>

==Abstract==

This BIP proposes a new mechanism to halt the processing of unrequested transations

Check warning on line 16 in bip-halt-unrequested-txn-processing.mediawiki

View workflow job for this annotation

GitHub Actions / Typo Checks

"transations" should be "transitions" or "transactions" or "translations".
received by a node from its bitcoin networks peers.

==Motivation==

Historically, nodes have been exchanging transactions on the Bitcoin peer-to-peer
network by sending an inv, and if the transaction has not been discovered and processed
yet by the other peer, sending a dedicated tx message.

Sending an unnannounced tx message has always been considered in conformity with
the protocol, however this behavior creates a denanonymization vector if leveraged
by mass connectors.

We can eliminate this concern by nodes rejecting unrequested transactions.

==Specification==

TODO: segment the protocol version by sub-categories of traffic class (eg tx, addr, block ?)

#. The protocol version of nodes implementing this BIP must be set to 70017 or higher.
#. After a node received a transaction from a peer
## If this transaction has been previously fetch with a getdata request, the node MUST process the transaction
## If this transaction has not been previously fetch with a getdata request, the node SHOULD reject the transaction
TODO: add a policy rule to disconnect protocol violation ?

==Backward compatibility==

This mechanism only applies to network peers signaling NODE_TXRELAY_V2 as a node service bit.

==Implementation==

https://github.com/bitcoin/bitcoin/pull/30572

==Copyright==

This BIP is licensed under the GPLv2.

0 comments on commit 61d285f

Please sign in to comment.