Skip to main content

Verification Layer

The Verification Layer is the first stage of the LayerEdge proof pipeline. It serves as the entry point for zk-proofs generated by external protocols—ranging from simple application-specific SNARKs to advanced ZKVM-based STARK systems.

This layer ensures:

  • All proofs are normalized to a common format, regardless of their cryptographic origin.
  • Only structurally and cryptographically valid proofs are passed downstream for aggregation.
  • Throughput and flexibility are maintained even as new zk-proof formats emerge.

Purpose and Role​

The Verification Layer performs two core responsibilities:

Proof Intake​

Accepts zk-proofs from a wide variety of proving systems, including but not limited to:

  • SNARKs

    • Groth16 (e.g., used in Tornado Cash, Semaphore)
    • PLONK / TurboPLONK (e.g., zkSync)
    • Halo2, Nova (recursive-friendly)
  • STARKs

    • AirSTARK
    • Fractal
    • ZKVMs such as RISC Zero and SP1

This layer abstracts away the cryptographic specifics and allows LayerEdge to support heterogeneous zk ecosystems.

Proof Normalization​

Each submitted proof is translated into a standard intermediate format that can be consumed by downstream recursive circuits and aggregator logic.

This includes:

  • Consistent field and group encoding
  • Canonical curve representation
  • Unified public input serialization
  • Flattened proof metadata

Technical Breakdown​

Interface Definition​

Proof producers interact with the Verification Layer using standardized APIs (e.g., gRPC or REST). The following data must be submitted:

  • ProofData: Raw binary or serialized proof
  • ProofMetadata: Cryptographic context for interpreting and validating the proof

What ProofMetadata Includes​

  • Curve Identifiers: e.g., BN254, BLS12-377, BLS12-381
  • Proof Length: Byte length of the serialized proof
  • Public Input Count: Number of inputs used in the zk computation
  • Verification Key Reference: Hash or ID referencing an on-chain or off-chain verification key or commitment

Validation & Error Handling​

Before forwarding any proof to the aggregator system, the Verification Layer ensures:

  • Elliptic Curve Group Membership: Each curve point must lie on its intended curve
  • Correct Length: Proof size must match expected values per system
  • Input Bounds: Public input size must not exceed circuit limits
  • Structural Sanity: Valid encoding, byte formatting, compression flags, etc.

Proofs failing any of these checks are rejected immediately to protect downstream logic.


Key Innovations​

Adaptive Normalization Pipelines​

The Verification Layer is modular by design. Each zk-proof system (e.g., Groth16, PLONK, STARK) is handled by a separate normalization sub-module. New formats can be added without requiring rewrites of aggregation logic.

This ensures LayerEdge remains compatible with:

  • Next-gen proof systems (e.g., UltraPLONK, zkWASM, BitSNARK)
  • Rollup-specific zk circuits
  • ZKML and AI-optimized provers

Parallel Queues for Scalability​

Proof normalization is highly parallelizable. The system creates per-system queues, meaning Groth16, STARK, and ZKVM-based proofs are parsed concurrently—maximizing throughput.

Queue isolation also prevents a malformed batch in one system from delaying others.


Future Considerations​

As more zk-proving frameworks emerge, the Verification Layer is expected to support:

  • Multi-proof submissions: For batch uploads from rollup sequencers.
  • Custom verification key schemas: For ZKML, recursive rollups, etc.

Summary​

FeatureDescription
Proof Types SupportedGroth16, PLONK, Halo2, Nova, STARKs (AirSTARK, Fractal), ZKVMs (RISC0, SP1)
Standardization OutputCanonical curve elements, normalized Merkle/FRI claims, unified metadata
APIsREST/gRPC endpoints for submission
ValidationCurve checks, proof length, public input count, format sanity
ScalabilityParallel queues, modular normalization, upgradable schema