-
Notifications
You must be signed in to change notification settings - Fork 5.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add bip-halt-unrequested-txn-processing
- Loading branch information
Showing
1 changed file
with
53 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
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. |