I know that it is possible to find out the IP address of a transaction by connecting the client to every node in the network. Dan Kaminsky wrote:

When you are connected to every node, the first node to inform you of a transaction is the source of it.

So my question is: is it possible to hide my IP address by blocking incoming connections in the client? Or are there other ways to find out the IP address of a transaction?

  • Couldn't you just route your traffic over Tor?
    – Pacerier
    Mar 4, 2014 at 6:44

2 Answers 2


Dan Kaminsky's deanonymization works by having a lot of probes in bitcoin network that collect data about how transaction propagate and than trying to localize it's source.

When packet travels in the network (Internet), it has to have source and destination IP addresses in it's header. Therefore when your bitcoin client sends transaction it has to wrap it into IP packet with your source address and destination address of the connected peer.

For one way communication it's theoretically possible to have random IP source address in a broadcasted transaction, but it would be still possible to deanonymize by knowing location of closest peers.

It would be easy to avoid deanonymization by using any kind of IP proxy, see this question.

P.S. The answer has some speculations because Dan Kaminsky didn't release the software yet.


You can block incomming connections and that would make your client "invisible" on the Bitcoin network however when you would also never receive any transactions related to your wallet.

Even then when you send a transaction you would make your client visible as it would have to transmit that transaction to at least one peer.

There are a couple of work arounds. 1) Use a web based wallet. In that instance the IP address of transactions is the web based wallet provider.

2) Use a VPN proxy. Maybe companies provide VPN encrypted proxies. Anyone tracing your transaction would only know it originated at the VPN proxy. They can't see beyond that back to your original transmission. You will need to trust whoever is providing the proxy to not keep logs or share data.

3) (future solution) Someday a company may provide a bitcoin anonymizing service. In essence a low cost VPN proxy for bitcoin transactions. You would receive blockchain data from the proxy and the proxy would submit transactions to the rest of network. Obviously in that instance you would need to trust the proxy. This would work similar to #2 but provide two key advantages. The cost should be lower since bitcoin doesn't use much bandwidth and since the proxy would be aggregating all transactions from all anonymous clients it would provide some safety in numbers so that even if someone knew you used this service they wouldn't be able to determine which (if any) transactions are yours.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.