what's Zerokit?
Zerokit is a collection of zero-knowledge cryptographic modules implemented in Rust, designed for integration into system programming environments such as native binaries, WASM, and via FFI bindings. Its primary focus is the Rate-Limiting Nullifier (RLN) protocol, particularly RLNv2, which uses zkSNARKs to enforce user-defined message rate limits in privacy-preserving broadcast systems without revealing sender identities. Leveraging Circom-based circuits through ark-circom and Groth16 proofs, it enables efficient witness calculation, proof generation, and verification. Zerokit powers RLN functionality in key projects like nwaku (the Nim reference implementation of Waku v2) and js-rln (JavaScript RLN bindings), supporting spam-resistant decentralized messaging in the Waku ecosystem. Developed by Vac's Applied Cryptography and Zero-Knowledge Service Unit (now under Logos Research), it emphasizes performance optimizations such as parallel execution, Poseidon hashing, and cross-compilation, making ZK primitives accessible for privacy-focused protocols.
Incorporated a 3x speedup optimization for RLN proofs using precomputed multi-scalar multiplication for the stable 90% of computations, with the implementation already completed in Nim.