📨 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
- Receives a serialized
TxCircuitVeccontaining the transaction circuit data - Selects the matching circuit variant based on the number of input notes:
1-in / 2-out2-in / 2-out3-in / 2-out4-in / 2-out
- Loads the corresponding prover key from the profile directory (cached after first load)
- 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 theProvetrait and Phoenix circuit typesrusk-profile— stores and retrieves circuit prover keysrusk— uses the prover in prover node mode (--features prover)rusk-test— uses the prover withno_random+debugfor deterministic test proofs