rusk-prover 1.6.0

Local prover for Dusk Network
Documentation

📨 Rusk Prover

Local PLONK zero-knowledge prover for Phoenix (shielded) transactions

Overview

Rusk Prover generates PLONK zero-knowledge proofs for Phoenix transactions locally. It implements the dusk_core::transfer::phoenix::Prove trait and supports transaction circuits with 1 to 4 input notes (each producing 2 output notes). Prover keys are loaded lazily from rusk-profile.

How It Works

  1. Receives a serialized TxCircuitVec containing the transaction circuit data
  2. Selects the matching circuit variant based on the number of input notes:
    • 1-in / 2-out
    • 2-in / 2-out
    • 3-in / 2-out
    • 4-in / 2-out
  3. Loads the corresponding prover key from the profile directory (cached after first load)
  4. Generates and returns the PLONK proof

Features

Feature Description
no_random Use a seeded RNG for deterministic proofs (for testing)
debug Enable tracing and hex logging of proof data

Related Crates

  • dusk-core — defines the Prove trait and Phoenix circuit types
  • rusk-profile — stores and retrieves circuit prover keys
  • rusk — uses the prover in prover node mode (--features prover)
  • rusk-test — uses the prover with no_random + debug for deterministic test proofs