owned this note
owned this note
Published
Linked with GitHub
# Parameterizing Meson
### Stratified Topology
As what topology that Meson is based on, mix nodes are randomly assigned through the collective randomness generation done by the authorities.
### Constraints
These following restrictions need to be pre-defined , since different level of anonymity requirement leads to different configuration .
- User base
For Loopix experiment , they have tested 500 users actively commnunicating at rates $\lambda_P=\lambda_L=\lambda_D=\lambda_M=60$ per minute
- Service provider
With 500 clients Loopix runs 4 providers which means 1 provider serves 125 clients.
- Clients
Parameter : id —— perform client initialization and run
Local client picks the path thats each packet will take through the mixnet topology
At first initialization, client figures out what mixnode s exist by returning a json-formatted list of MixNodes including layers , public key and IP address , thereafter client does packet encryption.
- Mixes and layers
For generality , we often start with 6 mixes arranged in 3 layers of 2 mixes each in a stratified topology .
In each mix we have its own parameters :
Threshold —— Collect incoming messages
Bounded Time —— for every time units regardless of how many the messages has arrived.
### Service provider
To initialize a provider , we basically need at least 3 parameters (same as Nym) :
>id —— name for the provider
>clients host —— IPV4 or IPV6 address , provider listen for requests coming directly from the client
>mix host —— IPV4 or IPV6 address , provider listen for Sphinx packets from mixnet
As providers are more like mix nodes with more capabilities , moreover for both type of provider, they take responsibility of packet processing , integrity check and relay detection .
Since Meson is built upon Katzenpost mix network which uses construstions like Sphinx Packet Format , thus we assign paramters to providers on top of that.
- ingress provider
Integrity test : recomputes the shared secret and check the MAC's correctness.
> If integrity test fails , drop the packet
>Once integrity test succeed , we provide unwrapping function.
Unwrapping function : returns relay detection tag , vector of routing commands and new packet.
>Vector of routing commands : routing flag , address of the next hop , delay.
After unwrapped the packet , node check if the unobserability of replay detection tag was compromised .
>
- egress provider
Besides the integrity test , egress provider also take charge of client's inbox check.
>
> Goal : aquire a formula for following parameters
### Parameters
- Delay paramater
For Loopix, delay paramater $\mu=1000$(equally 1ms) or less than 1500 could guarantee security. It determines how long the messages have been queued in the mix.
- Incoming traffic
Denoted as $\lambda$ in Loopix or known as sending rate, the ratio of incoming traffic and delay parameter ($\frac{\lambda}{\mu}$) indicates the number of messages in each mix at any given time.
- Trade-offs between sending rate and delay parameters
> Goal : Make sure at any given time , there are enough messages in mixes
- Flags
routing flag(Relay or Dest) :
Dest flag indicates that received message is a loop messages transferred back to the node ;
Relay flag should be set depending on the processed node(i.e. mix or provider) : a) for mix , specified by next hop's address after the delay has elapsed ; b) for provider , specified by address of the inbox of provider's clients or next hop .