5 stable releases
Uses new Rust 2024
| 1.6.0 | May 4, 2026 |
|---|---|
| 1.3.0 | Apr 17, 2025 |
| 1.1.0 | Feb 14, 2025 |
| 1.0.1 | Jan 23, 2025 |
| 1.0.0 | Jan 16, 2025 |
#9 in #dusk
Used in 2 crates
205KB
4K
SLoC
📨 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
Dependencies
~21MB
~340K SLoC