/phase2

Primary LanguageRustOtherNOASSERTION

phase2 Crates.io

Fork the great phase2. This library is still under development.

Purpose

This library is to provide zk trusted initialization process or basic circuits development template for developers on NEO to simplify the development process.

Basic process

The phase2 process requires multiple contributors to provide different random number seeds to ensure security. The process is as follows:

  • The project party or developer uses a file named phase1radix2mXX to generate the initial Groth16 parameter file xxxx_phase2_paramter for their own circuit. The phase1radix2mXX file can be generated by powersoftau, and the file specification needs to correspond to the circuit size.
  • Contributors in each round use secret random numbers to update the Groth16 parameter file xxxx_phase2_paramter submitted by contributors in the previous round, and publicly submit new Groth16 parameter files. Other participants act as validators, verifying that the new Groth16 parameter file uses the same randomness as the parameter file submitted by contributors from the previous round. Contributors in the first round use the initial Groth16 parameter file provided by the project
  • Until the last contributor has updated the Groth16 parameter file and passed the verification, the secure Groth16 parameters required by the project circuit will be obtained.

Security Warnings

This library does not make any guarantees about constant-time operations, memory access patterns, or resistance to side-channel attacks.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.