Here we present the beginning of our work to develop a formal verification tool for LLZK from Veridise, a new language designed to implement zero-knowledge circuits. The zero-knowledge technology is how future versions of Ethereum are planned to be implemented.
As usual, our technique is to work by translation to the Rocq formal verification language, using a representation as similar as possible to the source code to simplify reasoning. Then, we will be able to verify that:
- For any possible inputs, a circuit correctly computes a functional specification (no over-constraint).
- There are no possible invalid witnesses that can be accepted by the circuit (no under-constraint).