I stumbled upon the following text in the article about onion routing on Wikipedia:

In this example onion, the source of the data sends the onion to Router A, which removes a layer of encryption to learn only where to send it next and where it came from (though it does not know if the sender is the origin or just another node). Router A sends it to Router B, which decrypts another layer to learn its next destination. Router B sends it to Router C, which removes the final layer of encryption and transmits the original message to its destination.

Now I am wondering how the entry node can not know that it's talking to the originator. Couldn't it simply check the list of all tor nodes and see that the IP is not a tor node? Or did I misunderstand the concept of tor clients... I thought clients are not automatically nodes.

And are the data packages that are being sent between the node always of the same size? I guess otherwise I would be pretty easy to check what is going on.

Please help me and sorry for my English, I'm not a native speaker.

Thank you.

1 Answer 1


It could certainly reason about it, as you stated, by checking a list of Tor relays and checking to see if the originator was a known Tor relay or not but it can't be certain of it.

False negative: A user may be running a relay and a client. The reasoning relay receives a cell and tries to classify it based on the list of known relays. It may misclassify a cell coming from another relay as therefor not being directly from the originator, but the other relay may be the originator.

False positive: A user uses a bridge relay. The reasoning relay receives a cell and looks at the list of relays and doesn't see the bridge on the list, and so it classifies the bridge as the originator, but it may not be the originator.

So it can certainly reason, and make a reasoned assumption but it cannot know for certain. There are a few other edge cases where this would fail. For example, relays that use a different OutboundBindAddress from the address their relays ORPort is listening on, and so on.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .