curvy-prover
Authenticated Curvy witness evaluation and self-verified arkworks Groth16 proving for existing snarkjs artifacts.
CircuitProver combines a deployment's curvy-graph-v1 artifact and matching
.zkey. Prover can instead consume an existing snarkjs .wtns assignment.
This crate also publishes the curvy-native-prover executable and can be built
as the standalone prover WASM module.
Install
[]
= "=0.1.0-rc.3"
Prove from circuit input JSON
use CircuitProver;
let zkey = read?;
let graph = read?;
let prover = from_artifacts?;
let proof = prover.prove_json?;
println!;
println!;
# Ok::
Both artifact hashes are checked before their respective parsers run. Generated proofs are verified internally before being returned.
Features and execution targets
| Feature | Purpose |
|---|---|
std |
Native standard-library support; enabled by default |
parallel |
Rayon and arkworks parallel proving; enabled by default |
wasm |
Portable wasm-bindgen prover API |
wasm-threads |
Shared-memory browser prover with initThreadPool(n) |
The native executable accepts CURVY_PROVER_NUM_THREADS=1..64 and defaults to
one thread. Library consumers can configure Rayon globally. Threaded WASM hosts
choose the worker count by awaiting the generated module's initThreadPool(n).
See the workspace guide for complete commands, output directories, and threaded-browser requirements.