Proposal for new "disabletx" p2p message



Summary:

The proposal for a new, optional p2p message to allow peers to communicate that they do not want to send or receive (loose) transactions for the lifetime of a connection has been made by Suhas Daftuar via bitcoin-dev. The proposed message is called "disabletx" and must be sent between version and verack if used at all. It is valid for peers advertising protocol version 70017 or higher. The goal of this message is to help facilitate connections on the network over which only block-related data are relayed, to create low-resource connections that help protect against partition attacks on the network.Software has been deployed for over a year now which makes such connections, using the BIP37/BIP60 "fRelay" field in the version message to signal that transactions should not be sent initially. However, BIP37 allows for transaction relay to be enabled later in the connection's lifetime, complicating software that would try to distinguish inbound peers that will never relay transactions from those that might. This proposal adds a single new p2p message, "disabletx", which (if used at all) must be sent between version and verack.The purpose of these connections is two-fold: by making additional low-bandwidth connections on which blocks can propagate, the robustness of a node to network partitioning attacks is strengthened. Additionally, by not relaying transactions and ignoring received addresses, the ability of an adversary to learn the complete network graph (or a subgraph) is reduced. The low-bandwidth / minimal-resource nature of these connections is currently known only by the initiator of the connection; this is because the transaction relay field in the version message is not a permanent setting for the lifetime of the connection.This proposal adds a new, optional message that a node can send a peer when initiating a connection to indicate that connection should not be used for transaction-relay for the connection's lifetime. In addition, without a current mechanism to negotiate whether addresses should be relayed on a connection, this BIP suggests that address messages not be sent on links where tx-relay has been disabled.Nodes with protocol version >= 70017 that do not implement this BIP, and nodes implementing software: transactions would not be relayed to peers sending the disabletx message (provided that BIP 37 or BIP 60 has been implemented). Disabling address relay is suggested but not required by this BIP, to allow for future protocol extensions that might specify more carefully how address relay is to be negotiated.


Updated on: 2023-05-21T00:32:28.814931+00:00