# Trusted Setup Implementations ### Context This is a non-exhaustive collection of implementations for Groth16 trusted setup. ### Phase 1 Implementations | Project | Constraints | Description | | -------- | -------- | -------- | | [Zcash PoT](https://github.com/ZcashFoundation/powersoftau-attestations) | ? | Attestations from original Zcash PoT, coordinated over a mailing list. 87 participants. Originally built for Zcash's shielded trxs. | | [Perpetual PoT](https://github.com/weijiekoh/perpetualpowersoftau) | Up to $2^{28}$ | Weijie's phase 1 of a multi-party trusted setup ceremony based on the Zcash Powers of Tau ceremony. Uses Microsoft Azure compute VM, somewhat manual coordination, comms via sftp. Used by iden3, Hermez, Tornado, Matter, Loopring, etc. | ### Phase 2 Implementations | Project | Constraints | Description | | -------- | -------- | -------- | | [MPC Phase 2 (Quadratic Funding)](https://github.com/quadratic-funding/mpc-phase2-suite) | Currently 5Mn constraints | A comprehensive and blackbox CLI & infra solution using: Github (auth), GCP (firebase) to handle participant coordination and communication, admin panel, Twitter integration, etc. Originally built for Maci/semaphores. | | [Zcash Sapling MPC](https://github.com/zcash-hackworks/sapling-mpc) | ? | Rust script run locally and in sequence (not synchronously like precursor "Sprout"). 90 participants coordinated over email. More details [here](https://z.cash/technology/paramgen/#sapling-mpc) | | [Aztec MPC](https://github.com/AztecProtocol/Setup) | ~$2^{18}$ | Client and AWS server for MPC with monitoring and verification. Compatible with OSX, Linux and Windows. Originally built for their range proofs. Audited. | | [Semaphores MPC](https://github.com/privacy-scaling-explorations/semaphore-phase2-setup) | <$2^{18}$ | A modified version of Aztec MPC. Participants have option of working from docker img. [Full SOP here](https://hackmd.io/oja21FipQ5KhQcXeyuQWFQ). | | [UI browser components](https://github.com/glamperd/setup-mpc-ui) | N/A | A suite of components for browser-based trusted setup ceremonies. Used by clr.fund for Maci, etc. Firebase backend, nodejs server, manual verification. Used by loopring, etc. | | [Loopring MPC](https://github.com/Loopring/trusted_setup) | $2^{28}$ | Rust/python scripts, manual coordination, sftp, Keybase for auth| | [Tornado Phase2-bn254](https://github.com/tornadocash/phase2-bn254) | $2^{15}$ ? | Uses AWS, Twitter, Github for auth, MYSQL db, instructions: [MPC Trusted Setup App](https://github.com/tornadocash/trusted-setup-server); [1114 participants list](https://ceremony.tornado.cash/) | | [Celo old version](https://github.com/celo-org/snark-setup) | ? | Phase 1 is PPoT, Phase 2 uses phase2 Rust crate.| | [Hermez MPC](https://github.com/hermeznetwork/phase2ceremony_4) | ? | In addition to phase2, they had 7 participants do a last randomness round. | **Number of constraints needs to be double checked* Other projects possibly with tooling: Mina (pre pickles), Penumbra, Anoma, etc.