A Tor hidden service never opens a listening port the public internet can route to. Instead it reaches out to a small set of relays it picks as Introduction Points and keeps a standing 3‑hop circuit open to each one, then publishes a signed descriptor (list of intro points + a public key) to the hashed DHT (HSDirs), indexed by its own address.
v3 address = base32( pubkey_ed25519 ‖ checksum ‖ version ) + ".onion"
checksum = H(".onion checksum" ‖ pubkey ‖ version)[0:2]
Because the address is a hash of the service's public key, it is self-certifying — there is no CA, no DNS, nothing to phish or hijack. Any client can verify it is really talking to the key-holder just from the address string.
To connect, a client also builds a 3‑hop circuit to one of the published intro points and sends an INTRODUCE1 cell naming a Rendezvous Point (RP) — an ordinary relay the client itself chose and built a separate 3‑hop circuit to, together with a one-time cookie. The service then builds its own 3‑hop circuit to that same RP and presents the cookie. The RP simply splices the two circuits together; it forwards Tor-encrypted cells and never sees plaintext or either party's cell content.
- Mutual anonymity — of the ~2 circuits × 3 hops plus the intro point and RP (≈8 relays total), not one ever learns both the client's and the service's real IP address. That is the property this simulator visualizes, not the entry/exit traffic-correlation attack a global adversary could mount (see the sibling Onion Routing simulator for that threat model).
- Redundancy — a service normally publishes several intro points; if an adversary seizes or blocks one, clients simply retry through another as long as at least one is alive.
- Unlinkability — the client picks a fresh Rendezvous Point for every new session, so two visits cannot be linked to each other through the RP.
- Regenerating the identity key changes the address entirely — v2 real-world incidents (short, brute-forceable v2 addresses) are why Tor moved to the longer, cryptographically strong v3 scheme shown here.