Mixnet Mode
Mixnet mode is a transport choice. It routes traffic through 5 hops. The first four are always the same: an Entry Gateway and three layers of Mix Nodes, each of which adds random delays, reorders packets, and injects cover traffic. Available through NymVPN (opens in a new tab) and the Nym SDKs.
The fifth hop depends on where the traffic is going, and the difference decides which adversary you face.
- Reaching a clearnet destination, the fifth hop is an Exit Gateway, which leaves the mixnet and connects to the destination on your behalf. This is proxy mode, and the destination is L2.
- Reaching another Nym client, there is no Exit Gateway. The fifth hop is the recipient's own Entry Gateway, acting as its inbox, and traffic stays Sphinx-encrypted the whole way. This is end to end, and L2 does not exist.
The rest of this page describes the clearnet case, because that is where the destination is a party you do not control. See choose a defence to pick between them.
Its distinctive strength is against network observers. Mixing delays, Poisson sending, and cover traffic hide the traffic pattern in transit, which a plain dVPN cannot do. Against the destination it is equivalent to dVPN: both hide the client IP, and neither closes the timing or content vectors that the destination sees on its own.
How it works
User --> Entry --> Mix L1 --> Mix L2 --> Mix L3 --> Exit --> Internet
| | |
delay delay delayEach Mix Node strips one layer of Sphinx encryption to learn the next hop, holds the packet for a random delay, then forwards it. No node ever sees both the origin and the final destination. The client also continuously sends cover traffic, dummy packets cryptographically indistinguishable from real ones, so an observer sees a constant stream of identical packets regardless of whether any real communication is taking place.
What it protects against network observers
Against the local and global network observer, the mixnet is what separates it from a dVPN:
- Unlinkability: the random delays and reordering at each Mix Node destroy the timing signal an observer would need to correlate incoming and outgoing packets, or to connect successive packets from the same user. See Packet Mixing.
- Unobservability: because cover traffic is constant, an observer cannot determine when a user is active or what fraction of the traffic is real. See Cover Traffic.
- Resistance to traffic analysis: uniform Sphinx packet sizes prevent content-type fingerprinting, and per-packet routing eliminates the long-lived circuits that make other anonymity networks susceptible to end-to-end correlation. See Traffic Flow.
What it does not close at the destination
Against the destination, mixnet mode behaves like a dVPN. It hides the client IP, so the destination sees the exit gateway's IP rather than yours. It does not, on its own, close the timing or content vectors the destination observes: the connection arriving from the exit gateway is an ordinary end-to-end connection, so every request and its full content arrive together. A fixed exit gateway also behaves like a single dVPN exit, linkable at the destination within a session.
Closing those vectors is a separate layer: baseline hygiene disciplines the timing and shape of the requests themselves, independent of transport. See the two-layer model for why transport and hygiene are separate problems.
Performance
The three mixing layers add additional latency. This is acceptable for messaging, file transfers, and most API calls, but unsuitable for real-time applications like video calling. For those, dVPN mode is more appropriate.
Further reading
The following pages cover mixnet internals in detail:
- Loopix Design explains the academic foundation of Nym's Mixnet design
- Traffic Flow shows the packet journey with diagrams
- Cover Traffic explains how dummy packets provide unobservability
- Packet Mixing covers timing delays and their importance
- Anonymous Replies describes SURBs for bidirectional communication