diff --git a/bip-halt-unrequested-txn-processing.mediawiki b/bip-halt-unrequested-txn-processing.mediawiki new file mode 100644 index 0000000000..cda4266f9a --- /dev/null +++ b/bip-halt-unrequested-txn-processing.mediawiki @@ -0,0 +1,53 @@ +
+  BIP: YYY
+  Layer: Peer Services
+  Title: Unrequested Transactions Processing
+  Author: Antoine Riard 
+  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
+
+ +==Abstract== + +This BIP proposes a new mechanism to halt the processing of unrequested transations +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.