Network
Mixnet

Mixnet Components

The mixnet is made up of nodes running in several different roles:

  • Mix Nodes provide network security for network content and metadata by performing packet-mixing on traffic travelling through the network.
  • Gateways act as message storage for clients which may go offline and come back online again, and (once zk-nyms are enabled) check for anonymous proof of access credentials. They represent the first and last hop Mixnet packets travel through when travelling between clients.
  • Services are applications that communicate with nym clients, listening and sending traffic to the mixnet. This is an umbrella term for a variety of different pieces of code, such as the Network Requester.

Clients are used to connect to and send messages through the Mixnet to other clients, utilising Gateways for ingress and exit. These are however on the 'user' side and not a Mixnet component per se.

Smoosh Status

The various Mixnet components were originally completely separate binaries. They are in the process of being 'smooshed' together into a single nym-node binary which runs in different modes for ease of use, as well as to allow for a more developed and responsive Mixnet design, where the role of a node in a given time period is decided and changed automatically based on network conditions (more on this in the future).

Completed:

  • The nym-network-requester is now part of a nym-node running in as an Exit Gateway.

Upcoming:

  • Whether a nym-node is running as a Gateway or Mix Node will be set based on network conditions, and change epoch to epoch. Currently the role is set manually by the operator and does not change automatically over time. A node will be able to be running in the role of a Mix Node, an Entry Gateway, or an Exit Gateway.