pub trait ProofBackend: Send + Sync {
// Required methods
fn generate_range_proof(
&self,
value: u64,
min: u64,
max: u64,
) -> Result<Vec<u8>>;
fn verify_range_proof(
&self,
proof: &[u8],
min: u64,
max: u64,
) -> Result<bool>;
fn merkle_root(&self, leaves: &[Vec<u8>]) -> Result<[u8; 32]>;
fn generate_merkle_proof(
&self,
leaves: &[Vec<u8>],
index: usize,
) -> Result<MerkleProof>;
fn verify_merkle_proof(
&self,
proof: &MerkleProof,
root: &[u8; 32],
leaf: &[u8],
) -> Result<bool>;
}Expand description
Zero-knowledge proof backend for range proofs and Merkle trees.
Default implementation uses BLAKE3 hashes as a lightweight fallback.
Enable zk-proofs feature for real Bulletproofs/Plonky2 support.
Required Methods§
Sourcefn generate_range_proof(
&self,
value: u64,
min: u64,
max: u64,
) -> Result<Vec<u8>>
fn generate_range_proof( &self, value: u64, min: u64, max: u64, ) -> Result<Vec<u8>>
Generate a range proof for a value.
Sourcefn verify_range_proof(&self, proof: &[u8], min: u64, max: u64) -> Result<bool>
fn verify_range_proof(&self, proof: &[u8], min: u64, max: u64) -> Result<bool>
Verify a range proof.
Sourcefn generate_merkle_proof(
&self,
leaves: &[Vec<u8>],
index: usize,
) -> Result<MerkleProof>
fn generate_merkle_proof( &self, leaves: &[Vec<u8>], index: usize, ) -> Result<MerkleProof>
Generate Merkle inclusion proof.
Sourcefn verify_merkle_proof(
&self,
proof: &MerkleProof,
root: &[u8; 32],
leaf: &[u8],
) -> Result<bool>
fn verify_merkle_proof( &self, proof: &MerkleProof, root: &[u8; 32], leaf: &[u8], ) -> Result<bool>
Verify Merkle inclusion proof.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".