🚧 WIP right now. Please give us some time. 🚧
🔎 Latest reports live in
reports/
A universal soundness calculator across hash-based zkEVM proof systems and security regimes.
It aims to answer questions like:
- "What if RISC0 moves from Babybear⁴ to Goldilocks³?"
- "What if OpenVM moves from the Toy Problem heuristic to the provable Johnson Bound Regime?"
- "What if ZisK moves from the Toy Problem heuristic to the provable Unique Decoding Regime?"
You can run the calculator by doing python3 -m soundcalc.
As a result, the calculator generates / updates reports in reports/.
Tests can be run with pytest.
We currently support the following zkEVMs:
We support the following security regimes (see below for explanation of regimes):
- Unique Decoding Regime (UDR)
- Johnson Bound Regime (JBR)
Consider a fixed set of parameters describing the prover and verifier of a FRI-based zkEVM.
To evaluate the concrete soundness level of such a system, we introduce a parameter θ in the range (0, 1).
The soundness level is then determined as a function of θ and the zkEVM parameters (e.g., field size, code rate).
Depending on the value of θ, the analysis falls into different regimes:
-
UDR (Unique Decoding Regime):
$\theta \leq (1 - \rho)/2$ , where$\rho$ is the code rate. -
JBR (Johnson Bound Regime):
$(1 - \rho)/2 < \theta < 1 - \sqrt{\rho}$ .
Crucially, θ is not an input to the prover or verifier code—it is only used in the soundness analysis.
All regimes therefore apply to the same zkEVM instance without any change.
A flurry of new results on proximity gaps were published in November 2025 (see Nico's summary).
In soundcalc we have incorporated:
- The improved JBR security bounds of BCHKS25
- The removal of the CBR regime, following the results of DG25 and CS25
soundcalc/main.py: Entry pointsoundcalc/zkvms/: One directory per supported zkVMsoundcalc/proxgaps/: Proximity gaps related functionalitysoundcalc/pcs/: Polynomial commitment schemes functionalitysoundcalc/common/: Common utilities used by the entire codebasesoundcalc/report.py: Markdown report generator (ugly!)
Inspiration:
Based on papers (links point to specific versions where possible):
