zerokit/README.md

48 lines
1.7 KiB
Markdown
Raw Normal View History

2022-01-17 11:52:33 +08:00
# Zerokit
A set of Zero Knowledge modules, written in Rust and designed to be used in other system programming environments.
## Initial scope
Focus on RLN and being able to use [Circom](https://iden3.io/circom) based
version through ark-circom, as opposed to the native one that currently exists
in Rust.
2022-01-17 11:52:33 +08:00
## Acknowledgements
- Uses [ark-circom](https://github.com/gakonst/ark-circom), Rust wrapper around Circom.
2022-01-17 11:52:33 +08:00
- Inspired by Applied ZKP group work, e.g. [zk-kit](https://github.com/appliedzkp/zk-kit).
2022-01-17 11:52:33 +08:00
- [RLN library](https://github.com/kilic/rln) written in Rust based on Bellman.
- [semaphore-rs](https://github.com/worldcoin/semaphore-rs) written in Rust based on ark-circom.
2025-01-30 19:25:30 +02:00
- The circom witness calculation code of the rln crate is based on [circom-witnesscalc](https://github.com/iden3/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.
2024-04-21 15:53:46 +02:00
## Users
Zerokit is used by -
- [nwaku](https://github.com/waku-org/nwaku)
- [js-rln](https://github.com/waku-org/js-rln)
## Build and Test
To install missing dependencies, run the following commands from the root folder
2024-04-21 15:53:46 +02:00
```bash
make installdeps
```
2024-04-21 15:53:46 +02:00
To build and test all crates, run the following commands from the root folder
2024-04-21 15:53:46 +02:00
```bash
make build
make test
```
## Release assets
2024-04-21 15:53:46 +02:00
We use [`cross-rs`](https://github.com/cross-rs/cross) to cross-compile and generate release assets for rln.