SahyadriSahyadriAPI

Plonky3 Zero-Knowledge Proofs

Recursive ZK proof system for verifiable state transitions and trustless cross-chain bridges.

Plonky3 is a state-of-the-art recursive proof system built on Plonkish arithmetization. Sahyadri integrates Plonky3 for generating compact zero-knowledge proofs of block validity, enabling light clients and trustless bridge verification without downloading full block data.

The key innovation of Plonky3 is its use of the Goldilocks field (64-bit), which maps perfectly to modern CPU architectures. This makes proof generation significantly faster compared to other ZK systems that use larger fields requiring expensive multi-precision arithmetic.

Technical Specifications

ParameterValueDescription
Proof SystemPlonky3Recursive SNARK based on Plonkish arithmetization
FieldGoldilocks (64-bit)Optimal for 64-bit architectures
Proof Size~50-200 KBCompact proofs for efficient verification
Proving Time~2-10 secondsPer block proof generation
Verification Time< 100 msConstant-time verification
RecursionSupportedProofs can verify other proofs
Use CasesBridge proofs, light clientsTrustless verification
Implementationsahyadri-plonky3 (Rust)Custom Plonky3 fork
ArithmetizationPlonkishModern ZK circuit representation
Prover ComplexityO(n log n)Efficient proving time
Verifier ComplexityO(1)Constant verification regardless of proof size
Soundness~100-bitCryptographic security level
CompletenessPerfectValid proofs always verify
Zero-KnowledgeYesNo information leakage from proofs

Use Cases

Light Clients

Verify blockchain state without downloading full blocks

Cross-Chain Bridges

Trustless bridge verification between Sahyadri and other chains

State Verification

Prove account balances and transactions efficiently

DID Credentials

Privacy-preserving identity verification

Scalability

Batch multiple proofs into single compact proof

Auditability

Publicly verifiable proofs for regulatory compliance

Proof Generation Example (Rust)

// Rust (Plonky3)
use plonky3::*;

// Build circuit for block validity
let circuit = BlockValidityCircuit::new();

// Generate proof
let proof = circuit.prove(&block_data);

// Verify proof (constant time)
let valid = circuit.verify(&proof);
assert!(valid);

Recursive Proof Composition

// Recursive proofs - verify multiple proofs in one
let proof1 = circuit1.prove(&block1);
let proof2 = circuit2.prove(&block2);

// Aggregate both proofs into single proof
let aggregated = Aggregator::aggregate(&[proof1, proof2]);

// Verify single aggregated proof
let valid = Aggregator::verify(&aggregated);
// valid = true (both proofs verified)

Cross-Chain Bridge Verification

// Bridge flow using ZK proofs
// 1. Generate proof of locked funds on Sahyadri
let lock_proof = bridge_circuit.prove(&lock_transaction);

// 2. Verify proof on target chain (Ethereum, Solana, etc.)
let valid = target_chain.verify(lock_proof);

// 3. Release equivalent tokens on target chain
if valid {
    target_chain.release_tokens(amount, recipient);
}

Architecture Flow

Block Data
→
ZK Circuit
→
Proof Generation
→
Verification
→
Finality