Files
Wolfgang WelzandPaul 1557e8d268
Benchmark Check / changes (push) Has been cancelled
Benchmark Check / bench (ARM64, apple_m2_pro, prove, macOS) (push) Has been cancelled
Benchmark Check / bench (X64, cpu, prove, Linux) (push) Has been cancelled
Benchmark Check / bench (X64, nvidia_rtx_3090_ti, cuda, Linux) (push) Has been cancelled
Benchmark Check / bench-status-check (push) Has been cancelled
Benchmark Trends / bench (ARM64, apple_m2_pro, prove, macOS) (push) Has been cancelled
Benchmark Trends / bench (X64, cpu, prove, Linux) (push) Has been cancelled
Benchmark Trends / bench (X64, g6.xlarge, cuda, Linux) (push) Has been cancelled
Benchmark Trends / bench (X64, nvidia_rtx_3090_ti, cuda, Linux) (push) Has been cancelled
Benchmark Reports / alert_devops_if_failed (push) Has been cancelled
Nightly Tasks / crates_validate (push) Has been cancelled
Nightly Tasks / alert_devops_if_failed (push) Has been cancelled
Benchmark Reports / bench (ARM64, apple_m2_pro, prove, macOS) (push) Has been cancelled
Benchmark Reports / bench (X64, cpu, prove, Linux) (push) Has been cancelled
Benchmark Reports / bench (X64, g6.xlarge, cuda, Linux) (push) Has been cancelled
Benchmark Reports / bench (X64, nvidia_rtx_3090_ti, cuda, Linux) (push) Has been cancelled
Benchmark Reports / publish (push) Has been cancelled
ZKVM-969: Groth16: Switch from rapidsnark to gnark (#2740)
Create Groth16 proofs using `gnark`instead of `rapidsnark`.

This process consists of the following parts:
- **`circom-compat`:** the Gnark bindings to Circom's R1CS, WTNS, and
ZKEY for Groth16 proof generation in Go.
- An update to the **`risczero/risc0-groth16-prover` Dockerfile**:
- During the Docker build process, it runs the `circom-compat` converter
to convert the `r1cs` and `zkey` files to their gnark counterparts.
- It replaces `rapidsnark` with the `circom-compat` prover that reads
these converted files plus the witness file.
- In the entrypoint script, it creates a named Unix pipe to write the
witness data to, allowing the prover to start and read the constraint
system while the witness generation is still running.
- A **patched `gnark`** version to match circom's R1CS-to-QAP reduction.
(See https://github.com/risc0/gnark/pull/1)

The resulting docker image has been deployed as
[risczero/risc0-groth16-prover:v2025-01-24.1](https://hub.docker.com/layers/risczero/risc0-groth16-prover/v2025-01-24.1/images/sha256-434755bb2ccc0fb886f67855b67f37ba61c4983cb405dd3159588ce15016bbc3)
and `risc0/groth16/src/docker.rs` has been updated to use that image.
The `circom-compat` Go tests have been added to the CI.

Closes ZKVM-906

---------

Co-authored-by: Paul <paul.gafni@gmail.com>
2025-01-31 20:05:03 +00:00
..
2024-04-17 23:33:20 +00:00
2024-08-14 13:50:34 -07:00