Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Please help test new Tor broadcasting feature #130

Closed
chris-belcher opened this issue Jun 24, 2019 · 17 comments
Closed

Please help test new Tor broadcasting feature #130

chris-belcher opened this issue Jun 24, 2019 · 17 comments

Comments

@chris-belcher
Copy link
Owner

chris-belcher commented Jun 24, 2019

Right now on the bitcoin network, there are a large number of fake bitcoin nodes which aggressively announce themselves in an effort to attract more people to connect to them. They are run by transaction surveillance companies and they spy on every newly-broadcasted transaction, tracking it as it propagates through the p2p network giving them an idea of the IP address that originally broadcasted that transaction.

One way to beat this is by broadcasting unconfirmed transactions through Tor. A new feature of Electrum Personal Server allows for this. When the user presses "Send" or "Broadcast" their transaction will transparently be broadcast through Tor and so will not leak their real IP address.

If you're a power user and especially if you send lots of transactions, you should help by trying out this feature. Here's how:

  • Add walletbroadcast=0 to your bitcoin.conf file.
  • Update to the master branch of EPS from github
  • Run Tor
  • Edit the config.ini file to enable tor broadcasting, with broadcast-method = tor and set tor_host and tor_port to point to your Tor application
  • Send transactions

Tell me or someone if you need help. Let us know how it goes. If there's no problem then soon they'll be a new release with this feature included.

For more information read #52 or https://en.bitcoin.it/wiki/Privacy#Countermeasures_to_traffic_analysis

Technical explanation: This feature works by making its own connections to peers over tor and sending the transaction via that. It uses the RPC call getnodeaddresses to obtain addresses from bitcoind's addrman, and so it doesnt rely on centralized DNS seeds.

@instagibbs
Copy link

Is this making ephemeral identities each time it wants to send out a set of transactions, or a long-running hidden service connection?

@chris-belcher
Copy link
Owner Author

The first one. It makes connections over tor to push a transaction and then disconnects.

@Coinomatron
Copy link

Coinomatron commented Jun 24, 2019

Might be a dumb question, but aren't there also al lot of fake tor exit nodes that can also identify tx's ?

@instagibbs
Copy link

@Coinomatron it only matters that the sending node isn't fingerprintable in any way, aside from the tx data itself.

@Coinomatron
Copy link

I was also quite surprised that the fake Bitcoin nodes can identify IP's. My understanding was they couldn't.

@Coinomatron
Copy link

Do I have to tell the electrum wallet to use tor too?

@chris-belcher
Copy link
Owner Author

Do I have to tell the electrum wallet to use tor too?

No, tell Electrum to connect to Electrum Personal Server as normal.

@Coinomatron
Copy link

Setup seems to have worked. If I do a transaction, can I check if it went through tor?

@andrewtoth
Copy link
Contributor

@Coinomatron You should see logs similar to this:

INFO:2019-06-23 23:58:32,416: Broadcasting tx 7f2efb7b622dfc1a418ff1503925ab0be18d93d47005ac5cf1e974d67bab5bb2 with broadcast method: tor
INFO:2019-06-23 23:58:33,668: Uploaded transaction via tor to node ('74.138.26.36', 8333)
INFO:2019-06-23 23:59:04,140: Uploaded transaction via tor to node ('84.159.149.119', 8333)
INFO:2019-06-23 23:59:04,388: Uploaded transaction via tor to node ('2406:da18:f7c:4351:591b:4881:3986:3703', 8333)
INFO:2019-06-23 23:59:08,175: Uploaded transaction via tor to node ('104.198.94.212', 8333)
INFO:2019-06-24 00:00:38,826: Uploaded transaction via tor to node ('52.13.58.244', 8333)

@Coinomatron
Copy link

Works well with given instructions.

@3ntranced
Copy link

Hi, if I have my bitcoin core running with config file below, do I still need to use the tor option in eps? If I broadcast right now with eps will I be any less private than if I did it with eps tor option switched on? thanks

server=1
daemon=1
txindex=1
disablewallet=0

proxy=127.0.0.1:9050
bind=127.0.0.1
listenonion=1

onlynet=onion
dnsseed=0
dns=0

dbcache=100
maxorphantx=10
maxmempool=50
maxconnections=10
maxuploadtarget=50

Security

banscore=50
bantime=172800

@chris-belcher
Copy link
Owner Author

@3ntranced Your node connects to the bitcoin network entirely over tor. This tor broadcasting feature doesn't change your privacy. Read these two comments to understand why #52 (comment)

@permabull
Copy link

Hi @chris-belcher. Im gonna try this because I want to help out. I dont think I need it thou because like @3ntranced I run my node over tor. I was wondering thou, I have my node on a dedicated PC, and I use "ssh username@host -L 50002:localhost:50002" from my laptop to use electrum.EPS is installed on my node PC, and electrum wallet is on my laptop, im I still doing it all over TOR with this method?

Thanks / B

@permabull
Copy link

Works fine thou =)

INFO:2019-07-25 23:54:09,166: Broadcasting tx XXXXXXXXXX with broadcast method: tor
INFO:2019-07-25 23:54:10,404: Uploaded transaction via tor to peer at ('178.218.216.34', 8333)
INFO:2019-07-25 23:54:14,421: Uploaded transaction via tor to peer at ('g3xgqirastjhpsn6.onion', 8333)
INFO:2019-07-25 23:54:14,742: Uploaded transaction via tor to peer at ('vvh7lqlciohttabh.onion', 8333)
INFO:2019-07-25 23:54:17,419: Uploaded transaction via tor to peer at ('y27gfcs7mvdcpcf2.onion', 8333)

@chris-belcher
Copy link
Owner Author

Thanks for the help @permabull

I have my node on a dedicated PC, and I use "ssh username@host -L 50002:localhost:50002" from my laptop to use electrum.EPS is installed on my node PC, and electrum wallet is on my laptop, im I still doing it all over TOR with this method?

Yes you are broadcasting over tor. Your SSH line is related to how Electrum connects to EPS, the transaction broadcasting is related to how EPS communicates with the bitcoin p2p network, and whether that happens over Tor or not.

@permabull
Copy link

Thanks for the help @permabull

I have my node on a dedicated PC, and I use "ssh username@host -L 50002:localhost:50002" from my laptop to use electrum.EPS is installed on my node PC, and electrum wallet is on my laptop, im I still doing it all over TOR with this method?

Yes you are broadcasting over tor. Your SSH line is related to how Electrum connects to EPS, the transaction broadcasting is related to how EPS communicates with the bitcoin p2p network, and whether that happens over Tor or not.

Thanks very much for reply. If you need help testing anything out just say the word!

@chris-belcher
Copy link
Owner Author

This feature is now in the new release 0.2.0, closing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants