A set of Zero Knowledge modules, written in Rust and designed to be used in other system programming environments.
Focus on RLN and being able to use Circom based version through ark-circom, as opposed to the native one that currently exists in Rust.
-
Uses ark-circom, Rust wrapper around Circom.
-
Inspired by Applied ZKP group work, e.g. zk-kit.
-
RLN library written in Rust based on Bellman.
-
semaphore-rs written in Rust based on ark-circom.
-
The circom witness calculation code of the rln crate is based on circom-witnesscalc by iden3. The execution graph file used by this code has been generated by means of the same iden3 software. The circom-witnesscalc code fragments have been borrowed instead of depending on this crate, because its types of input and output data were incompatible with the corresponding zerokit code fragments, and circom-witnesscalc has some dependencies, which are redundant for our purpose.
Zerokit is used by -
To install missing dependencies, run the following commands from the root folder
make installdeps
To build and test all crates, run the following commands from the root folder
make build
make test
We use cross-rs
to cross-compile and generate release assets for rln.