Hide the IP address that a Bitcoin transaction originated from with a lightweight tor inspired peer to peer network.
Peers download and run the ATR client, which forms a node
When it is time to publish a transaction, the transaction and routing information is encrypted in layers before publishing to the first hop.
Layers are peeled off by each hop until the transaction arrives at an exit node. Intermediate nodes can only see the prior hop IP address and after they decrypt their layer can see the next hop IP address.
Final routing instructions accompany the transaction, like to broadcast the transaction to the bitcoin network.
Periodic messages could be sent to thwart traffic analysis. All node-to-node message types could be indistinguishable, so you don't know whether a message is a request for a version number, or a request for a list of peers, or a response to a request for information, or a transaction. Imagine sending a request for a list of peers, but doing it via 4 intermediate hops.
Alternative routing instructions are possible, like to broadcast the transaction only to miners signaling segwit 🙂
Question: Why not run full node over Tor?
- Full nodes use a lot of bandwidth
- Most people don't need the fact that they run a full node to be anonymous, however a link between the transactions you sign and your IP address should be private.
- Tor is also designed to have pretty low latency, which is bad for anonymity and which we do not require for this use case. In fact, routing information could include requests to hold the message for a period of time to confuse observers attempting traffic analysis.
- Using Tor can attract surveillance. Good for Tor to have more participants I guess, but bad for you
- A.T.R. could be very light weight and could talk to your preferred wallet