Skip to content

Prototypical fault-tolerant mix-net that aims to keep conversations private and anonymous even under Byzantine failures.

License

Notifications You must be signed in to change notification settings

numbleroot/zeno

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fault-Tolerant Mix-net zeno

Note on Name and Scope of Repository

This repository holds the source code for mixnet zeno, which we used under changed name FTMix as a proof-of-concept mixnet with reliability features at its core in our publication "Strong Anonymity is not Enough: Introducing Fault Tolerance to Planet-Scale Anonymous Communication Systems" (FARES Workshop 2022).

Please mind that while zeno comes with organizational protocols such as VDF-style mix rotations (emulated as scrypt calls) intended to reduce the fallout from mix compromise, we do not explain, evaluate, or discuss these features in the publication. The scope of the ultimately published article narrowed over time from presenting both aspects (increased fault tolerance and decreased required infrastructure trust) to only the fault tolerance aspects. We rely only on reliability and general system metrics for FTMix in the evaluation metrics used in the final publication (e.g., end-to-end transmission latencies across multiple independent cascades with message transmissions in two consecutive rounds), and make no claims about lowered infrastructure trust requirements.

Please keep this in mind when reading, running, or modifying this source code artifact, and read "FTMix" when you see "zeno" in this code.

Introduction

Prototype zeno is an Anonymous Communication System (ACS) that aims to keep one-to-one conversations private and anonymous while tolerating Byzantine conditions. Based on a Chaumian mix-net architecture, zeno relays the messages of conversing users across mixes determined in a bias-resistant way and with redundancy in space and time in order to achieve a high level of fault tolerance. Our goal is to prevent Byzantine failures common to large-scale Distributed Systems from rendering an ACS unavailable to its users, which may eventually force them to switch to less privacy-preserving communication systems. We assess zeno's resource demands and end-to-end transmission latencies in comparison to mix-net Vuvuzela and CPIR system Pung in a planet-scale public cloud evaluation.

This repository holds the Go sources for prototype zeno as well as pseudo-code representations of the four primary algorithms of our fault-tolerant mix-net proposal in ./algorithms.

Academic Code Ahead

Warning: This code is written for academic purposes only. Handle with care, treat as insecure, and do not deploy to end users.

Setup

Clone the repository and change into the newly created directory. Assuming you have a working Go installation on your machine, run:

$ make

This will create the zeno executable. See the supported arguments:

$ ./zeno -help

Relied-Upon Third Party Libraries

This source code artifact does not work without the help of:

About

Prototypical fault-tolerant mix-net that aims to keep conversations private and anonymous even under Byzantine failures.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages