Warning
This project hasn't undergone an audit. It is intended for research and educational purposes only. The code is provided "AS IS" without any representation or warranty.
Zinc+ is a performance-oriented SNARK framework designed to handle computations across multiple mathematical domains without the "witness inflation" overhead typical of traditional arithmetization.
Traditional SNARKs are restricted to a single finite field, forcing complex bitwise logic and non-native modular arithmetic to be emulated, which often bloats the witness by orders of magnitude.
Zinc+ resolves this by allowing constraints to be expressed directly and simultaneously over rational (
Available benchmarks:
| Benchmark | What it measures |
|---|---|
zip_benches |
PCS-level operations (encode, Merkle tree, commit, prove, verify) using scalar evaluations with IPRS codes. Uses i32 evaluations |
zip_plus_benches |
Same PCS-level operations using polynomial evaluations (degree 32 & 64) with both RAA and IPRS codes. Uses {0,1}^D evaluations. |
e2e |
Full Zinc+ SNARK prove & verify on several test AIRs (NoMult, BinaryDecomposition, BigLinear, BigLinearPI) at varying sizes. |
To run benchmarks, use
RUSTFLAGS="-C target-cpu=native" cargo bench \
--features "simd parallel unchecked" \
--bench BENCH_NAME| Flag / Feature | What it does |
|---|---|
-C target-cpu=native |
Lets the compiler emit platform-specific instructions (NEON, AVX-512, etc.). Required for simd. |
simd |
Bit-packs binary polynomials into u64s and uses hand-written NEON / AVX-512 intrinsics for key operations (widening, inner products). |
parallel |
Enables rayon-based multi-threaded execution across the whole stack (sumcheck, encoding, commitment, etc.). |
unchecked |
Replaces checked_add / checked_mul with plain arithmetic, removing overflow guards. Only affects integer-typed computations; field arithmetic is unaffected. |
The content published here may have been refined/augmented by the use of large language models (LLM), computer programs designed to comprehend and generate human language. However, any output refined/generated with the assistance of such programs has been reviewed, edited and revised by Nethermind.
Apache 2.0
see Contributing.