Skip to main content

batch_verify

Function batch_verify 

Source
pub fn batch_verify(items: &[(&PublicKey, &[u8], &Sig)]) -> Result<()>
Expand description

Batch-verify multiple signatures at once.

This is 3-8x faster than verifying signatures individually for large batches. Uses Arcanum’s optimized Ed25519 batch verifier with Straus’ multi-scalar multiplication algorithm.

§Arguments

  • items - Slice of (public_key, message, signature) tuples to verify

§Returns

  • Ok(()) if all signatures are valid
  • Err if any signature is invalid (does not identify which one)

§Example

let items = events.iter()
    .map(|e| (e.attester(), e.canonical_bytes(), e.signature()))
    .collect::<Vec<_>>();
batch_verify(&items)?;