Push-Button Verification for
Yu Feng
ZK Circuits
Roadmap
Overview
Ongoing & Next Steps
Common Bug Detection for ZK Circuits
01
02
03
Spectrum of Formal Methods
Motivations, Challenges
Push-button Verification
Overview
Spectrum of Formal Methods
Testing
Bounded Model Checking, Symbolic Execution
Formal Verification
Guarantee
Human Efforts
Pros: Highest Guarantee
Cons: More Human/Expert Efforts
Pros: Less Human Efforts
Cons: Less Guarantee
An Architecture View of ZK Circuits
Smart
Contracts
Application Circuits
Core ZK Libraries & Building Blocks
ZK Circuit Verification: Current Roadmap
Coda
Core Library Circuits
(Verified Components)
Developer
Application Circuits
Picus
(Fully Verified)
Properties
Smart
Contracts
Application Circuits
Core ZK Libraries & Building Blocks
Common Bug Detection for�ZK Circuits
Uniqueness Property
Push-button Verification
Translating a program and its property into constraints that can be reasoned about by off-the-shelf solver
Symbolic Compilation
Constraint Solver
Program
Property
Constraints
Solution
https://github.com/alex-ozdemir/CVC4/blob/ff/src/theory/ff
foo (int a) {
y = 1;
if (a > 0) y = 10;
assert y > 4
}
SMT formula
- Large circuits
- Non-linear ops
- Finite fields
…
Push-button Solver for ZK Circuits
https://en.wikipedia.org/wiki/DPLL_algorithm
Circuit
Solver
Finite Field Solver
SAT Solver
Automatic Circuit Invariant Synthesis
Some properties are difficult to prove without invariants
Modular Verification for Large Circuits
Gadget
Summary
Evaluation
Compared Against Ecne (https://github.com/franklynwang/EcneProject)
65 (98%)
49 (74%)
Plans & Next Steps
Ongoing & Next Steps
Smart
Contracts
Application Circuits
Core ZK Libraries & Building Blocks
THANKS
Coda: https://github.com/Veridise/Coda
- Formal verification using interactive theorem proving (i.e., Coq)
- Provide the highest guarantee, but requires manual/expert efforts
Picus: https://github.com/Veridise/Picus
- Push-button verification for common issues in ZK circuits
Medjai: https://github.com/Veridise/Medjai
- Push-button verification for Cairo contracts
Smart
Contracts
Application Circuits
Core ZK Libraries & Building Blocks