Picus proves your ZK circuits are deterministic
Automated formal verification detects underconstrained bugs with mathematical certainty. Prove determinism or get concrete counterexamples showing exactly how constraints fail.
Automated formal verification with mathematical certainty
Underconstrained Detection
Identifies circuits with missing or incomplete constraints. Finds areas where multiple witness values satisfy the same constraints
Concrete Counterexample
Every bug comes with exact input/output pairs that break determinism. No guesswork required. Reproduce issues immediately with concrete witness values.
Formal Determinism Proofs
Proves circuits are deterministic with mathematical certainty. Guarantees the same inputs always produce the same outputs. Verification completes in minutes, not weeks.
CI/CD Friendly
Runs on Foundry projects with minimal setup. Integrates into GitHub Actions. Get vulnerability reports on every pull request.
Symbolic analysis and solver-based reasoning
Symbolic Analysis
Analyzes constraint systems defined over finite fields. Checks if polynomial equations encode deterministic computation. Verifies that constraints uniquely determine outputs from inputs.
Solver-Based Reasoning
Combines lightweight static analysis with solver-based reasoning. Proves absence of underconstrained bugs or generates counterexamples.
Mathematical Guarantees
Formal verification provides certainty, not probability. When Picus says a circuit is deterministic, it’s mathematically proven. No false negatives for verified properties.
Picus in Action
Essential for production ZK development
Pre-Audit Verification
Catch critical bugs before external audits. Reduce audit findings and costs. Demonstrate thorough verification to auditors.
Continuous Integration
Integrate Picus into CI/CD workflows. Catch regressions immediately when circuits change. Verification completes in a few minutes for each circuit.
Production Assurance
Prove security properties before mainnet deployment. Mathematical certainty for billion-dollar protocols. No probabilistic guarantees, only formal proofs.
Comprehensive ZK security
Picus
Formal Verification
Proves determinism with mathematical certainty. Detects underconstrained bugs. Guarantees same inputs produce same outputs.
ZK Vanguard
Static Analysis
Detects a wide range of ZK vulnerabilities. Private input leakage. Unused signals. Non-deterministic witness code. Overflow errors.
Together, Picus and ZK Vanguard provide complete coverage of your ZK circuit security
Frequently AskedQuestions
How long does Picus take to verify a circuit?
Most circuits verify in under 10 minutes. Complex circuits may take longer depending on constraint count. Fast enough for continuous integration workflows.
Can Picus miss underconstrained bugs?
Picus uses formal verification, providing mathematical guarantees. For verified circuits, underconstrained bugs are provably absent. When Picus reports a circuit as deterministic, that determination is certain.
What ZK languages does Picus support?
Picus supports any language that can be translated to LLZK. Currently that includes Circom, Halo2, Zirgen and Plonky3
What do I do with a counterexample?
Counterexamples show exact witness values that violate determinism. Add constraints to eliminate the non-deterministic behavior. Re-run Picus to verify the fix. Counterexamples help you find where constraints are missing.
How does Picus integrate with our development workflow?
Run Picus via AuditHub platform or integrate into CI/CD pipelines. Analysis runs automatically on circuit changes. Results integrate with your existing tooling.
How is formal verification different from testing?
Testing checks specific inputs. Formal verification proves properties hold for all inputs. Testing can miss edge cases. Formal verification provides mathematical certainty.
Prove your circuits are secure
Mathematical guarantees for ZK circuit determinism. Verification in minutes.
Get started in 30 minutes / No setup required / See results immediately