Bitcoin Forum
May 10, 2024, 05:20:31 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: FeeFilter message (minmempoolfee) and privacy  (Read 627 times)
btcash (OP)
Hero Member
*****
Offline Offline

Activity: 968
Merit: 515



View Profile
February 17, 2017, 06:41:15 PM
Merited by ABCbits (1)
 #1

For privacy reasons a partly randomized FeeFilter is sent to peers:
Quote
There are privacy concerns with deanonymizing a node by the fact that it is broadcasting identifying information about its mempool min fee. To help ameliorate this concern, the implementation quantizes the filter value broadcast with a small amount of randomness, in addition, the messages are broadcast to different peers at individually randomly distributed times.
https://github.com/bitcoin/bips/blob/master/bip-0133.mediawiki

I have several questions regarding the issue:

1. Isn't the mempool message the easiest way to find out the fee? Just find the lowest tx and compare it to your mempool that includes all transactions.
2. Another way is using reject messages. Just monitor over a while all REJECT_INSUFFICIENTFEE messages and you will find out the min fee.
3. Why is this a privacy issue? If the mempool is limited a bad actor could probably calculate the maxmempool setting as well but he can get that much easier via the mempool message. Non limiting nodes send out the original fee anyway (correct me if I am wrong):
Code:
filterToSend = std::max(filterToSend, ::minRelayTxFee.GetFeePerK());
Remember that Bitcoin is still beta software. Don't put all of your money into BTC!
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
gmaxwell
Moderator
Legendary
*
expert
Offline Offline

Activity: 4172
Merit: 8419



View Profile WWW
February 18, 2017, 12:27:45 AM
Merited by ABCbits (3)
 #2

It's not clear to me if you understand the purpose of fee filter.

The purpose of feefilter is not to "find out the fee", the purpose is so that peers will not waste bandwidth INVing you transactions that you will not bother accepting.

The mempool message is not supported by all nodes, and is delayed and restricted for privacy reasons.

Similarly, reject messages are not universally used, and are not mandatory. There has been some recent discussion about eliminating most of them from the protocol since most are never used by any application and serve no purpose but wasting bandwidth and harming privacy.  (They were not originally in the protocol, their addition was somewhat controversial, and they have not turned out to be useful for the things they were claimed to be useful for).

The settings are also just one privacy vector. The minfee your node has depends on the settings as well as the history of limit reaching events that it has seen.  As a result, there is some information leakage as a node moves connections around the network. It isn't a significant leakage, but it costs basically nothing to decrease it a little.
btcash (OP)
Hero Member
*****
Offline Offline

Activity: 968
Merit: 515



View Profile
February 18, 2017, 01:10:25 AM
 #3

Thanks for your reply gmaxwell.

I do understand the purpose of the feefilter message. My point was to show that bad actors can get the minmempoolfee without "abusing" the feefilter message. So there is no point in randomizing it for privacy reasons.

Quote
It isn't a significant leakage, but it costs basically nothing to decrease it a little.
I can live with that explanation.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!