Bitcoin Forum

Bitcoin => Bitcoin Technical Support => Topic started by: defa1 on January 27, 2021, 10:01:54 PM



Title: Broadcasting transactions and privacy
Post by: defa1 on January 27, 2021, 10:01:54 PM
Let's say you're running Bitcoin Core over clearnet, no Tor or proxies, and you do a bitcoin transaction. Is there a difference in privacy if you are a) running a full node but not accepting incoming connections or 2) running a full node and accepting incoming connections?

As far as I understand, if your node is not configured to accept incoming connections you will only broadcast your own transaction, making it easy to see that this transaction originated from your IP address. But if you are accepting incoming connections you are constantly broadcasting stuff so it becomes much harder to pinpoint the origin of a transaction.

Is this correct?


Title: Re: Broadcasting transactions and privacy
Post by: achow101 on January 27, 2021, 10:37:29 PM
No, that is incorrect. There is no difference in privacy.

Accepting incoming connections only means that other nodes can connect to you. Otherwise, all connections are basically the same. Regardless of connection type, you still send and receive blocks and transactions. You will still receive transactions from some peers, and relay those same transactions to other peers, even if the connection is outbound.

Inbound and outbound only mean which direction the connection started. It has no effect on the data being sent during normal operation.


Title: Re: Broadcasting transactions and privacy
Post by: nc50lc on January 28, 2021, 04:22:02 AM
If you're using the GUI, Bitcoin-qt, you can view those outbound peers in "Window->Peers", select an outbound peer and look at the right pane.
You'll notice that both "Sent" and "Received" are both actively updated, so it's as said above.

The configuration/bitcoin.conf entry that falls under your concern is blocksonly (info (https://bitcoin.org/en/full-node#blocks-only-mode)).


Title: Re: Broadcasting transactions and privacy
Post by: pooya87 on January 28, 2021, 06:49:24 AM
Regardless of connection type, you still send and receive blocks and transactions.
When will the "relay" (in version message) be set to false?
Because the way I understand is that if it is false then the nodes won't send you any tx inventories which basically means that any tx that the node has is its own. fBlocksOnly bool in inv even disconnects any offending node sending tx messages.


Title: Re: Broadcasting transactions and privacy
Post by: defa1 on January 28, 2021, 08:08:15 PM
No, that is incorrect. There is no difference in privacy.

Accepting incoming connections only means that other nodes can connect to you. Otherwise, all connections are basically the same. Regardless of connection type, you still send and receive blocks and transactions. You will still receive transactions from some peers, and relay those same transactions to other peers, even if the connection is outbound.

Inbound and outbound only mean which direction the connection started. It has no effect on the data being sent during normal operation.

Ok, so regardless of incoming/outgoing connections I'm always rebroadcasting transaction I receive from peers -- my node is never silent so to speak, so it is very hard to determine if a transaction originated with me? That's good to know.

But to help other nodes to bootstrap, I must still allow incoming transactions no? To actually upload blocks to other nodes. That's what it says here in the first paragraph: https://bitcoin.org/en/full-node#network-configuration

I'm a bit confused because you wrote "Regardless of connection type, you still send and receive blocks and transactions". Are you referring there to metadata about blocks but not the actually contents itself?


Title: Re: Broadcasting transactions and privacy
Post by: defa1 on January 28, 2021, 08:15:49 PM
The configuration/bitcoin.conf entry that falls under your concern is blocksonly (info (https://bitcoin.org/en/full-node#blocks-only-mode)).

I am using Electrum Personal Server, which is broadcasting over Tor.

I've added walletbroadcast=0 to bitcoin.conf, will this stop Bitcoin Core from broadcasting only my own transactions, or will it stop rebroadcasting any transactions at all? I would like my node to operate as normally as possible, but without broadcasting my transactions.


Title: Re: Broadcasting transactions and privacy
Post by: nc50lc on January 29, 2021, 02:29:07 AM
Yes, only your own (the built-in wallet) transactions. The node's functions like transaction relay wont be affected by walletbroadcast=0