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
2022-03-17 14:03:29 +08:00
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
2022-03-17 14:03:29 +08:00
- Uses [ark-circom ](https://github.com/gakonst/ark-circom ), Rust wrapper around Circom.
2022-01-17 11:52:33 +08:00
2022-03-17 14:03:29 +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
2022-03-17 14:03:29 +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.
2023-02-24 11:50:51 +05:30
2024-12-25 12:38:35 +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.
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 )
2023-02-24 11:50:51 +05:30
## Build and Test
To install missing dependencies, run the following commands from the root folder
2024-04-21 15:53:46 +02:00
2023-02-24 11:50:51 +05:30
```bash
make installdeps
```
2024-04-21 15:53:46 +02:00
2023-02-24 11:50:51 +05:30
To build and test all crates, run the following commands from the root folder
2024-04-21 15:53:46 +02:00
2023-02-24 11:50:51 +05:30
```bash
make build
make test
```
2023-03-14 17:44:06 +05:30
## 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.