@@ -14,6 +14,7 @@ A zkSNARK toolkit to work with [circom](https://github.com/iden3/circom) zkSNARK
1414 + [x] Proof verification
1515 + [x] Solidity verifier generation
1616 + [x] Local key setup for developement
17+ + [x] Proof Aggregation
1718
1819## Usage examples
1920
@@ -35,13 +36,18 @@ FLAGS:
3536 -V, --version Prints version information
3637
3738SUBCOMMANDS:
38- dump-lagrange Dump " SRS in lagrange form" from a " SRS in monomial form"
39- export-verification-key Export verifying key
40- generate-verifier Generate verifier smart contract
41- help Prints this message or the help of the given subcommand(s)
42- prove Generate a SNARK proof
43- setup Trusted locally set up Plonk universal srs in monomial form
44- verify Verify a SNARK proof
39+ analyse Analyse the circuit and output some stats
40+ check-aggregation Check proofs aggregation
41+ dump-lagrange Dump " SRS in lagrange form" from a " SRS in monomial form"
42+ export-recursive-verification-key Export Recursive verifying key
43+ export-verification-key Export verifying key
44+ generate-verifier Generate verifier smart contract
45+ help Prints this message or the help of the given subcommand(s)
46+ prove Generate a SNARK proof
47+ recursive-prove Aggregate multiple proofs
48+ recursive-verify Verify recursive proof
49+ setup Trusted locally set up Plonk universal srs in monomial form
50+ verify Verify a SNARK proof
4551
4652# Getting help for a subcommand
4753> plonkit prove --help
@@ -97,7 +103,7 @@ Proof is correct
97103circuit.circom circuit.r1cs circuit.sym circuit.wasm input.json proof.bin proof.json public.json setup_2^20.key verifier.sol vk.bin witness.wtns
98104` ` `
99105
100- Moreover, if you want to set up a SRS locally for testing, you can make use of ` setup` subcommand:
106+ If you want to set up a SRS locally for testing, you can make use of ` setup` subcommand:
101107
102108` ` `
103109plonkit-setup
@@ -117,6 +123,26 @@ OPTIONS:
117123
118124You may also want to manually edit and lower down ` plonk::SETUP_MIN_POW2` in the codes to fast generate a relatively small-sized SRS.
119125
126+ Moreover, you can make use of the ` analyse` subcommand to print out the statistics of a circuit (num of inputs, num of constraints, num of gates...):
127+ ` ` `
128+ plonkit-analyse
129+ Analyse the circuit and output some stats
130+
131+ USAGE:
132+ plonkit analyse [OPTIONS]
133+
134+ FLAGS:
135+ -h, --help Prints help information
136+ -V, --version Prints version information
137+
138+ OPTIONS:
139+ -c, --circuit < circuit> Circuit R1CS or JSON file [default: circuit.r1cs| circuit.json]
140+ -o, --output < output> Output file [default: analyse.json]
141+ ` ` `
142+
143+ # ## Proof Aggregation
144+ Plonkit also supports Proof Aggregation. You can aggregate multiple proofs into one, see [test_poseidon_plonk_recursive.sh](./test/test_poseidon_plonk_recursive.sh) for a workflow example.
145+
120146# # Installation
121147
122148Install Rust
0 commit comments