If accessing an onion service, how much commonality is there between the circuits that connect to the introduction point, the rendezvous point, and the exit node for non-onion service usage?

I presume the user's guard node is the same for all three circuits. Does the user choose the same node to contact both the introduction point and the rendezvous point? Is either contacted by the exit node?

I'm curious if a malicious hidden services with malicious introduction points can connect activity on the hidden service with activity passing through an exit node.

1 Answer 1


Introduction and Rendezvous points are only used for Hidden Services. The Introduction point is chosen by the Hidden Service and published with the HSDir servers handling the Hidden Service. When a user wants to connect to the Hidden Service, they randomly choose a rendezvous server and ask the Hidden Service (through the introduction point) to connect through the Rendezvous point. Both connections then make a 3 hop circuit, the same as when connecting to an exit node, to that rendezvous point.

Hidden Services:

  1. User -> Guard -> Middle Node -> Middle Node (Exit-Ish) -> Introduction <- Middle Node (Exit-ish) <- Middle Node ` <- Guard <- HS
  2. User -> Guard -> Middle Node`` -> Middle Node (Exit-Ish) -> Rendezvous <- Middle Node (Exit-ish) <-Middle Node ``` <- Guard <- HS

Exit Node:

  1. User -> Guard -> Middle Node -> Exit Node -> Website

As noted in the comments below, and in the references material linked, the connection to introduction and rendezvous points is actually a full circuit, so should include 3 hops.

In general, the complete connection between client and hidden service consists of 6 relays: 3 of them were picked by the client with the third being the rendezvous point and the other 3 were picked by the hidden service.

Regarding whether the middle nodes can be the same, they can be. As the visitor and the host each choose their 3 nodes in the circuit, they could both choose the same middle nodes. That means that there may be duplicate nodes in the 6 hops, but they would be on different sides of the rendezvous server as each Tor instance would not choose the same relay twice.


  1. https://www.torproject.org/docs/hidden-services.html.en
  2. https://svn.torproject.org/svn/projects/design-paper/tor-design.pdf
  • Is there really no node between the middle node and the introduction or rendezvous node? I'd always heard that or ordinary circuits go through 3 nodes and hidden services go through 7, but if this is true then they aren't counting that 7 in the same way. Commented Apr 22, 2015 at 15:25
  • If we've 5 hop circuits like you describe, then a malicious hidden service can deanonymize users as easily as a malicious exit node, but the malicious hidden service has much more reason to do so. If I were designing this 5 hop hidden circuits system, then I'd maybe make the introduction connection the full 7 interior hops and then use a collaborative random number generation algorithm to select the rendezvous node to build the 5 hop circuit. I.e. Are you sure this is correct? Commented Apr 22, 2015 at 15:26
  • There is also a question of whether the middle node is the same in any of these cases. Commented Apr 22, 2015 at 15:27
  • Jeff, you're right, it's actually 3 hops on each side of the rendezvous and introduction points. I've updated the answer to correctly represent that as well as responding to whether the middle nodes can be repeated.
    – IceyEC
    Commented Apr 22, 2015 at 19:21
  • I see, thanks. I wasn't asking about choosing the same middle nodes on both sides, well my language wasn't that clear. I was asking if the user frequently chooses the same exit-ish node for both introduction and rendezvous circuits, or if their exit-ish node is frequently an exit node they just used. The reason is a malicious hidden service can pick choose a corrupted introduction point to correlate hidden service users with internet tor users. Commented Apr 22, 2015 at 21:15

You must log in to answer this question.

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