You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: standards/core/mix.md
+15-12
Original file line number
Diff line number
Diff line change
@@ -29,12 +29,12 @@ Without further anonymization, it is easy to analyze the network traffic and det
29
29
Topic interests of a user can be identified by analyzing [Store](https://rfc.vac.dev/waku/standards/core/13/store) query messages sent by a user.
30
30
Same applies for topic subscriptions via [Filter](https://rfc.vac.dev/waku/standards/core/12/filter) protocol.
31
31
32
-
`Mix` protocol allows libp2p nodes to send messages without revealing the sender's identity to intermediary mix nodes or the recipient/destination.
32
+
`Mix` protocol allows libp2p nodes to send messages without revealing the sender's identity (peer ID, IP address) to intermediary mix nodes or the recipient/destination.
33
33
Anonymity is achieved by using the [Sphinx packet format](#references), which encrypts and routes messages through a series of mix nodes before reaching the recipient.
34
34
35
35
By integrating the `mix` protocol into the waku network, we can improve the anonymity for publishers and store query users.
36
-
Each waku relay node will be acting as a mix node that forms an `overly mix network`.
37
-
This network of mix nodes SHALL relay mix messages anonymousl to the recepient.
36
+
Each waku relay node will be acting as a mix node that forms an `overlay mix network`.
37
+
This network of mix nodes SHALL relay mix messages anonymously to the recepient.
38
38
39
39
Anonymity of [Filter](https://rfc.vac.dev/waku/standards/core/12/filter) users is not addressed by this document.
40
40
@@ -47,30 +47,34 @@ The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL
47
47
Waku Mix creates an `overlay network` of all the waku nodes that support the `mix` protocol.
48
48
49
49
Nodes with `mix` protocol mounted SHOULD advertise that they support mix protocol via their their chosen discovery method.
50
-
They may do so by updating their [ENR](#enr-updates) and using one of the ENR based discovery methods.
50
+
They MAY do so by updating their [ENR](#enr-updates) and using one of the ENR based discovery methods.
51
51
52
52
Nodes that want higher anonymity while publishing a message via [lightpush](https://rfc.vac.dev/waku/standards/core/19/lightpush) or performing a [store](https://rfc.vac.dev/waku/standards/core/13/store) query SHOULD use the `mix` protocol to route their messages to the destination.
53
53
Sender Node that would like to use `mix` protocol SHOULD discover enough mix nodes so that there is always a healthy pool of mix nodes available for selection.
54
-
The pool size of mix nodes SHOULD be large enough(greater than 100) for the mixing to be effective.
54
+
The pool size of mix nodes SHOULD be large enough for the mixing to be effective.
55
+
We RECOMMEND a pool size of at least 100 mix nodes for the mixing to be effective.
56
+
57
+
The serialized [Waku Message](https://rfc.vac.dev/waku/standards/core/14/message) SHOULD be the payload in the [sphinx packet](https://rfc.vac.dev/vac/raw/mix#4-sphinx-packet-format).
55
58
56
59
In order to provide anonymity of the sender node from the `service-node`, `Single Use reply blocks` or `anonymous replies` as specified in the original [sphinx](#references) paper SHALL be used.
57
60
58
-
A node that sends messages using `mix` MAY use 2 redundant (paths)[https://rfc.vac.dev/vac/raw/mix#24-node-discovery] to have better reliability of the message being delivered.
61
+
A node that sends messages using `mix` MAY use two redundant (paths)[https://rfc.vac.dev/vac/raw/mix#24-node-discovery] to have better reliability of the message being delivered.
62
+
It is up to the higher-layer mixed protocol to deduplicate redundant messages received in this way.
59
63
60
64
## Node Roles
61
65
62
66
Mix protocol defines 3 roles for the nodes in the mix network - `sender`, `exit`, `intermediary`.
63
67
64
68
- An `sender` node is the originator node of a message, i.e a node that wishes to publish/query messages to/from the waku network.
65
-
- An `exit` node is responsible for delivery messages to destination peer in the network.
69
+
- An `exit` node is responsible for delivering messages to destination peer in the network.
66
70
- An `intermediary` node is responsible for forwarding a mix packet to the next mix node in the path.
67
71
68
72
A Waku relay node SHOULD by default have mix `intermediary` and `exit` node roles in the network.
69
73
The implementation MAY provide a configuration to disable a node from acting as an `intermediary\exit` node.
70
74
71
-
Any waku node that wishes to publish/query messages from the waku network MUST act as an`sender` node.
75
+
Any waku node that wishes to publish/query messages from the waku network MUST act as a`sender` node.
72
76
73
-
Light nodes with short connection windows SHOULD always be acting as `sender` nodes.
77
+
Resource-restricted/Edge nodes with short connection windows SHOULD always be acting as `sender` nodes.
74
78
75
79
## ENR updates
76
80
@@ -86,7 +90,8 @@ This moves the problem into discovery domain and requires the following from dis
86
90
1. It is important for nodes to be able to discover as many nodes as possible quickly. This becomes especially important for edge nodes that come online just to publish/query messages for a short period of time.
87
91
2. It is important to have the most recent online status of the nodes so that mix paths that are selected are not broken which lead to reliability issues.
88
92
89
-
Point-2 above can be mitigated partially by choosing redundant mix paths for the same message by the sender node. This may not be an effective solution as it increases the overall bandwidth usage.
93
+
Point-2 above can be mitigated partially by choosing redundant mix paths for the same message by the sender node.
94
+
This may not be an effective solution as it increases the overall bandwidth usage.
90
95
91
96
## Spam Protection
92
97
@@ -96,8 +101,6 @@ Mix protocol in waku network SHOULD have `rate-limiting/spam` protection to hand
96
101
2. Any node can intentionally generate paths which are broken and send messages into the mix network.
97
102
3. An attacker can spawn a huge number of mix nodes so that user behaviour is observed in order to determine traffic patterns and deanonymize users.
98
103
99
-
The current [WAKU RLN](https://rfc.vac.dev/waku/standards/core/17/rln-relay) can address scenario-3 by making it restrictive for users to be able to spawn a lot of nodes in the network.
100
-
101
104
There is a need to enforce rate-limits and spam protect the mix network.
102
105
The rate-limiting and spam protection SHALL be addressed as part of future work.
0 commit comments