What’s “Verified Verifiers”?

This working group will formally establish the validity of a zero-knowledge proof, by ensuring correctness of the cryptographic software that runs the verification step of the ZKP protocol, by use of formal verification of that software. ☺

 

Objectives

  1. Select and endorse a specific verifier for a chosen Zero-Knowledge Proof (ZKP) scheme.
  2. Rigorously define all properties of the chosen verifier at the highest level of detail.
  3. Conduct a comprehensive formal verification process on an implementation of the scheme.

The ZKProof.org Steering Committee is focused on:

  • Producing concrete formal verification outcomes and artifacts
  • Establishing a replicable process for formal verification that can serve as a reference for future ZKP schemes

This Working Group aims to deliver results within 12 months of kick-off, setting a new standard for trust and reliability in ZKP implementations.

Presentations

ZKProof & EF Workshop
Formal Verification of ZKP Zurich, October 21st 2024

This focused workshop is a collaborative effort between ZKProof and the Ethereum Foundation’s FV-zkEVM team. It aims to advance the practice of formal verification within zero-knowledge-proof systems. Attendees will engage in deep technical discussions, participate in collaborative problem-solving sessions, and contribute to strategic roadmaps for future research and implementation.

 

Sessions Overview:

  1. Vilhelm’s presentation on zkWasm verification methodology, which provided interesting lessons for zkEVM work.
  2. Julian’s talk and demo about his work with Denis on doing verification of cryptography using EasyCrypt, useful for the Groth16 verified verifier.
  3. then Marco’s CLAP framework presentation, showing how simple optimizations beat hand-crafted results while keeping assurances.
  4. and finally the roadmap discussions for both the zkEVM verification and Verified Verifier efforts.

Key Themes that emerged:

  • Start verification during design phase – you get cost/time savings when formal methods inform development rather than validate it.
  • Separate circuit construction from optimization and the idea of witness generators as specifications which allows cleaner composition.
  • Verification approaches by layers – the low/middle/high spec pattern works well and gives reusable FV work.
  • Testing alone isn’t sufficient for critical systems – formal methods caught critical bugs that fuzzing missed.
  • Documentation of optimization rationale is crucial – much time spent reverse-engineering design decisions.
  • Build maintainable verification frameworks – MathLib’s success shows a model for the way forward.
  • Industry needs different guarantees than academia – clear caveats about what’s verified.
  • Current learning resources are inadequate – need better onboarding for engineers.

Open Questions:

  1. How do we bridge the gap between cryptographic papers and formal verification?
  2. What’s the right balance between tool consolidation and specialized solutions?
  3. How do we maintain verification as VMs evolve?

Next Steps:

  • Random oracle model implementation in Lean (target: Q1 2025)
  • Circuit verification tooling improvements
  • Better documentation of optimization strategies
  • Preparation for ZKProof 7 in Sofia (March 2025) – with more work on Verified Verifier
  • Initial zkEVM verification frameworks and specifications

Kick-off session at ZKProof 6 in Berlin, May 2024

The Ouroboros of ZK: Why Verifying the Verifier Opens Up Longer-Term ZK Innovation.

Speaker: Ben Livshits (Matter Labs)

The world of zero-knowledge proofs is rapidly evolving. We increasingly have rollups and other ZK-based solutions coming to the forefront of blockchain scaling efforts. As these technologies become more widespread, we are faced with new challenges in ensuring their reliability, security, and efficiency. At ZKProof 6, we were fortunate to hear from Ben Livshits of Matter Labs (zkSync) on how we can improve the reliability of ZK systems.The primary goal of ZK technology is to move away from wasteful multi-execution on Layer 1 blockchains, in favour of the production of proofs of such execution, which is more efficient. This shift promises to make blockchain transactions more affordable and scalable. However, the journey doesn’t end with efficiency gains. There are significant reliability and correctness problems that also need addressing.

Show More

Formal Verification of Arithmetic Circuits

Speaker: Marcin Kostrzewa, Reilabs

In his talk at ZKProof 6, Marcin Kostrzewa from Reilabs spoke about formal verification of arithmetic circuits, and the work done by the team at Reilabs to do this practically in the real world.
The vulnerabilities that arise in ZK protocols fall into five main categories:
– Underconstrained circuits
– Non-deterministic circuits
– Arithmetic issues (overflows, underflows, mismatching bit lengths)
– Assigned but not constrained variables
– Finite field arithmetic complexities
A reason for these issues is that unlike traditional programming, ZK circuit designers must work with non-linear polynomial equations and finite field arithmetic, which can be counterintuitive for developers accustomed to standard computer science paradigms.

Show More