Skip to content

fractalyze/rabbitsnark

Repository files navigation

RabbitSNARK

CI

This is a command-line tool for generating zero-knowledge proofs using the Groth16 proving system. It is built with the ZKIR and utilizes ZKX. The tool is designed to handle circom and gnark circuits and supports both standard and non-zero-knowledge (non-ZK) proof generation modes.

How to build

  1. Clone the RabbitSNARK repository

    git clone https://github.com/fractalyze/rabbitsnark.git
  2. Navigate to the RabbitSNARK project directory

    cd rabbitsnark
  3. Build the RabbitSNARK Prover binary

    bazel build --@zkx//:has_openmp //:prover_main

    This will compile the prover_main binary with OpenMP support for parallelism. After the build completes successfully, the binary will be located at bazel-bin/prover_main.

    If you're generating Groth16 proofs using SP1 with Gnark, add the --//gnark:has_sp1 flag when building.

How to run

bazel-bin/prover_main [GLOBAL_OPTIONS] COMMAND [SUBCOMMAND] [SUBCOMMAND_ARGS] [OPTIONS]

To see available commands:

bazel-bin/prover_main -h

To see help for a specific command (e.g., circom, gnark, version):

bazel-bin/prover_main circom -h
bazel-bin/prover_main gnark -h
bazel-bin/prover_main version -h

To see help for a specific subcommand (e.g., compile, prove):

bazel-bin/prover_main circom compile -h
bazel-bin/prover_main gnark prove -h