2024-05-12 23:49:09 +00:00
|
|
|
# Mixnet v2 Simulation
|
|
|
|
|
2024-05-15 10:19:55 +00:00
|
|
|
* [How to run](#how-to-run)
|
|
|
|
* [Mixnet Functionalities](#mixnet-functionalities)
|
|
|
|
* [Adversary Models](#adversary-models)
|
|
|
|
|
2024-05-12 23:49:09 +00:00
|
|
|
## How to run
|
|
|
|
|
2024-05-14 12:19:46 +00:00
|
|
|
First, make sure that all dependencies specified in the `requirements.txt` in the project root.
|
2024-05-15 10:19:55 +00:00
|
|
|
Then, configure parameters in the [`config.yaml`](./config.yaml), and run the following command:
|
2024-05-12 23:49:09 +00:00
|
|
|
```bash
|
2024-05-14 12:19:46 +00:00
|
|
|
python main.py --config ./config.yaml
|
2024-05-13 06:13:21 +00:00
|
|
|
```
|
2024-05-15 10:19:55 +00:00
|
|
|
The simulation runs during a specified duration, prints the results to the console, and show some plots.
|
2024-05-12 23:49:09 +00:00
|
|
|
|
2024-05-15 10:19:55 +00:00
|
|
|
## Mixnet Functionalities
|
2024-05-13 07:02:42 +00:00
|
|
|
- Modified Sphinx
|
|
|
|
- [x] Without encryption
|
|
|
|
- [ ] With encryption
|
|
|
|
- P2P Broadcasting
|
|
|
|
- [x] Naive 1:N
|
|
|
|
- [ ] More realistic broadcasting (e.g. gossipsub)
|
2024-05-15 10:19:55 +00:00
|
|
|
- [x] Sending a real message to the mixnet at the promised interval
|
|
|
|
- Each node has its own probability of sending a real message at each interval.
|
|
|
|
- [x] Cover traffic
|
|
|
|
- All nodes have the same probability of sending a cover message at each interval.
|
|
|
|
- [x] Forwarding messages through mixes, and then broadcasting messages to all nodes if the message is real.
|
2024-05-13 07:02:42 +00:00
|
|
|
- Mix delays
|
|
|
|
- [x] Naive random delays
|
2024-05-15 10:19:55 +00:00
|
|
|
- [ ] More sophisticated delays (e.g. Poisson) if necessary
|
|
|
|
|
|
|
|
## [Adversary Models](https://www.notion.so/Mixnet-v2-Proof-of-Concept-102d0563e75345a3a6f1c11791fbd746?pvs=4#c5ffa49486ce47ed81d25028bc0d9d40)
|
|
|
|
- [x] Identifying nodes emitting messages around the promised interval.
|
|
|
|
- [ ] With partial visibility
|
|
|
|
- [ ] Correlating senders-receivers based on timing
|
|
|
|
- [ ] Active attacks
|
|
|
|
- [ ] Reporting & Visualization
|
|
|
|
- With quantifying the effect of attacks above based on parameter changes.
|