MPC Phase 2 Trusted Setup ceremonies are necessary for ensuring the security and privacy of cryptographic protocols that require zero-knowledge proofs. These ceremonies are used to generate the initial parameters for the zero-knowledge proof system, which must be securely and randomly generated to prevent any backdoors or biases from being introduced. Without a secure and trustworthy setup, the entire protocol could be compromised, leading to serious security vulnerabilities and potential breaches.
MPC Trusted Setup ceremonies can be made secure through a variety of measures, including multi-party computation, randomization, and transparency. In an MPC ceremony, participants work together to generate the initial parameters for the zero-knowledge proof system, ensuring that no one individual has complete control over the process. Additionally, the use of randomization helps to ensure that the generated parameters are unbiased and cannot be predicted in advance. Transparency plays a critical role for ensuring that the ceremony is conducted fairly and that all participants can verify the integrity of the generated parameters.
The Phase 1 is universally reusable in any point of contribution as input for any zkSNARKs Phase 2. Briefly, the goal of the Phase 1 is to securely generate zk-SNARK parameters for circuits of up to a huge amount of constraints. For example, the Perpetual Powers of Tau Phase 1 Ceremony conducted by people from the EF, generated zkSNARK parameters up to 2 ^ 28 (260+ million) constraints. This means that the process will generate twice as many minus one (530+ million) powers of tau (pretty suitable for every zkSNARK circuit out of there). The Phase 2 is a circuit-specific ceremony. Therefore, the Phase 2 must be don for each individual circuit. At the end of the ceremony or at a certain point in time, the last contribution (.zkey
file) will be used for extracting the verification key and everything will be ready for proofs generation and verification!
During a Trusted Setup ceremony, a group of participants work together to generate the initial parameters for a zero-knowledge proof system. The process typically involves multiple rounds, with each participant contributing some entropy to the system and passing the results to the next participant. The goal is to generate a set of parameters that are random, unbiased, and unpredictable, with no one individual having complete control over the process. The ceremony may be conducted using multi-party computation techniques to ensure fairness and transparency.
The output of a Trusted Setup ceremony is a set of parameters that are used to generate zero-knowledge proofs for a specific protocol or application. To trust the output, it is important to ensure that the ceremony was conducted fairly and that no backdoors or biases were introduced into the parameters. This may involve auditing the process, using multi-party computation techniques to ensure transparency, and relying on the reputation and trustworthiness of the participants involved. Additionally, the parameters may undergo further testing and verification to ensure their security and validity.
p0tion is a project (formerly known as MPC Phase 2 Suite) from MACI/QFI team from PSE. You could think p0tion as a toolkit for making effortless running Trusted Setup Phase 2 ceremonies for multiple circuit at the same time. Making one of these MPC protocols requires time and development resources for design, auditing, testing, security, operations, ceremony conduction plan, guides and so on. That’s why we are working toward p0tion to be an agnostic-from-ceremony public good toolkit, usable by everyone, to make their Groth16 zk-applications scale and safely production-ready by running their Phase 2 Trusted Setup ceremonies.
There are three main steps to run a ceremony with p0tion
setup
) by providing the output of the circuit compilation as input to the command.contribute
).