Owner: @Marcin Pawlowski
Document type: Design
Intended reader: Technical/Logos/Nomos
Best read in: Dark Theme
Please refer to Nomos Blend Network: Introduction [WIP Design] for more information about the Nomos Mix design.
The Temporal Mix mechanism hides timing correlations between incoming and outgoing messages from a node. That is, a message is delayed in a random manner which makes it harder to link the incoming and outgoing messages based on timing observation.
The Temporal Mix can be designed as a coin-flipping algorithm for unbounded release of the messages in the queue. That is, all packets that arrive to a mix node are added to a queue $Q$, packets are indexed by their position in the queue. Then, for each packet $p_i \in Q$ a coin-flipping algorithm is executed which outcome determines whether to relay the packet or not, for example if $C(p_i)=H$, then relay the packet, where $C(p_i)$ is the coin-flipping algorithm that takes the packet $p_i$ as an input and returns heads value $H$.
However, applying the above algorithm as it is defined above leads to an ordering leakage problem, where the packets are relayed according to the order they have arrived in the queue. This might lead to discovering some long term dependencies between the order of packets arriving and exiting the mix. This can be solved by shuffling the order in which packets are selected for the coin-flipping algorithm.
This mechanism is complementary to the Cryptographic Mix, and provides timing-related unlinkability of messages.
Additionally, a more powerful adversary with node corrupting capabilities can learn if the peer is the source of the message by observing the message propagation patterns through the network from the perspective of a set of corrupted nodes. That is, when messages are not delayed, then it would be trivial for the observer to learn the fact that a node emits a new message by observing messages that are propagated on direct connection with the corrupted nodes and comparing it to the set of known messages.
Therefore, the Temporal Mix provides one additional property which makes learning if a node is a relayer or a sender a probabilistic game.
The Temporal Mix (TM) module is responsible for randomly releasing messages received from the Relayer module at the Global Transmission Rate (GTR). A separate TM instance is created for each connection by the Relayer.
The Temporal Mix operates as follows.