Chad? is a zk (zero-knowledge) permissionless proving system that allows users to prove they are a "Chad" without doxxing themselves. The system utilizes zero-knowledge proofs to ensure privacy and security.
The workflow of Chad? is outlined in the diagram below:
-
Pre-written Circuits (Samples):
- Balance Circuit
- Multi-Balance Circuit
These circuits are used as the base for generating proofs. Users can provide custom input and compile these circuits.
-
R1CS (Rank-1 Constraint System): The circuits are compiled to R1CS using either wasm or C++ witness generators.
-
Randomized PTAU Setup: A random PTAU (Powers of Tau) setup is used. The R1CS and PTAU are utilized to generate a ZKey (Zero-Knowledge Key).
-
Verifier Generation: The generated ZKey is used to create a verifier.sol smart contract. The verification key is verified to ensure it is derived from the circuit.
-
Verifier is deployed and verified on Base.
Contributions are welcome! Please submit a pull request or open an issue to discuss any changes.
This project is licensed under the MIT License.