Bitcoin knots has a config option to disallow address reuse in mempool: spkreuse=conflict or GUI -> Settings -> Options -> Mempool. I tried experimenting with it and running 2 nodes(signet) for which anyone can check 'getrawmempool' at a given time using:
GET /mempool?node=1 HTTP/1.1
Host: api.spkreuse.fun
Content-Type: application/json
Node 2 has 'spkreuse=conflict' saved in bitcoin_rw.conf and it will reject all transaction reusing addresses in mempool. I have tried testing it on signet and it works as expected. Replacement transactions are exceptions and ignored even if address appears twice in mempool. I could not find any issues however debug=mempool did not print logs that could be helpful to know which transactions are getting rejected in mempool for address re-use. So running 2 nodes and comparing mempool transactions.
What other things could affect privacy in mempool and not explored yet? I could think of 3:
- RBF policies
- Rebroadcasting mechanism
- Different types of relay feeThis could be used by lot of bitcoin nodes, not sure about miners. I do not believe mempool policies only rely on miner incentives, minimum fee rate won't be be 1 sat/vbyte if that was the case. Even if its never used by lot of nodes and some miners, it was fun to play with and I like knots for providing such options.