Welcome!
Welcome to Cicada … a set of tools for working with fault-tolerant secure multiparty computation. Notable Cicada features include:
Written in Python for simplicity and ease of use.
Cicada doesn’t rely on weird DSLs or runtimes, making it easier to learn, experiment, and integrate MPC computation into existing systems.
Communication inspired by the widely used MPI standard.
Cicada benefits from decades of research in HPC, and you can easily replace Cicada’s builtin TCP/IP communication layer to support your own networking stack.
Supports fault tolerance at the application level.
Cicada raises exceptions when errors occur, where most MPC runtimes just die. Developers can use Cicada’s builtin functionality to recover from errors when they occur, and researchers can explore new fault-tolerance strategies and algorithms.
Highly refined API.
Cicada was developed alongside our research in privacy preserving machine learning, so code using Cicada is clear, concise, and explicit … while retaining the flexibility and generality to guide development of new algorithms and protocols.
Sound interesting? See the Tutorial to get started!
Documentation
- Installation
- Tutorial
- User Guide
- Absolute Value
- Active Adversaries
- Bit Decomposition
- Communication Patterns
- Division
- Equality Comparison
- Fault Detection and Recovery
- Fields, Encodings, Semantics, and Probabilistic Results
- Floor
- Interactive Programs
- Less Than Comparison
- Less Than Zero Comparison
- Logging
- Logical Not
- Logical Exclusive Or
- Multiple Communicators
- Multiplication and Truncation
- Multiplicative Inverse
- Power
- Random Bit Generation
- Random Number Generation
- Random Seeds
- Rectified Linear Unit
- Running Cicada Programs
- The Self-Conscious Statisticians
- Shamir Secret Sharing
- Socket Communication
- Timeouts
- Transcripts
- Zigmoid
- Command Reference
- Development
- API Reference
- cicada module
- cicada.active module
- cicada.additive module
- cicada.arithmetic module
- cicada.calculator module
- cicada.cli module
- cicada.cli.main module
- cicada.cli.perf module
- cicada.communicator module
- cicada.communicator.interface module
- cicada.communicator.socket module
- cicada.communicator.socket.connect module
- cicada.encoding module
- cicada.interactive module
- cicada.logging module
- cicada.przs module
- cicada.shamir module
- cicada.transcript module
- Compatibility
- Release Notes
- Cicada 1.2.0 - November 28th, 2023
- Cicada 1.1.0 - October 9th, 2023
- Cicada 1.0.0 - September 15th, 2023
- Cicada 0.8.1 - October 15th, 2022
- Cicada 0.8.0 - October 14th, 2022
- Cicada 0.7.0 - August 9th, 2022
- Cicada 0.6.0 - June 17th, 2022
- Cicada 0.5.1 - May 4th, 2022
- Cicada 0.5.0 - April 28th, 2022
- Cicada 0.4.0 - March 21st, 2022
- Cicada 0.3.0 - February 1st, 2022
- Cicada 0.2.0 - January 25th, 2022
- Cicada 0.1.0 - June 28th, 2021
- Support