Coder Social home page Coder Social logo

numbleroot / zeno Goto Github PK

View Code? Open in Web Editor NEW
1.0 4.0 0.0 366 KB

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

License: GNU General Public License v3.0

Makefile 0.30% Go 99.27% Cap'n Proto 0.43%
mix-net mixnet fault-tolerance anonymous-communication-system privacy-enhancing-technologies distributed-systems

zeno's Introduction

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:

zeno's People

Contributors

numbleroot avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.