Blog
Posts I have written elsewhere on security, software engineering, blockchains, programming languages, and zero-knowledge proofs.
-
The economics of security have changed. AI has made finding and exploiting bugs cheaper, including in cryptographic and zero-knowledge code, while validation and remediation remain slow. Here is our view of what happened, what comes next, and how teams should change the way they secure their stack to defend against AI-assisted attackers.
-
zkVMs are moving to the center of Ethereum's roadmap, which means a bug in a zkVM is turning into a bug in Ethereum itself. We built zkvmBlast, a zkVM-agnostic differential fuzzer that runs the same program across SP1, RISC0, OpenVM, Pico, Zisk, and Airbender against a reference simulator and flags any disagreement. It hunts for both soundness and completeness bugs, with a deliberate focus on completeness, an under-explored class that can turn a single valid block into a liveness failure. We share the first batch of findings.
-
We are releasing zk-skills, a set of open-source security skills for AI coding agents, starting with circom-auditor: a first line of defense against vulnerabilities in Circom circuits, compatible with both Claude Code and Codex. On the zkbugs benchmark it detects up to 66 of 70 known bugs when pointed at the vulnerable circuits, and up to 40 of 56 when let loose on the full original codebases, far ahead of existing Circom security tools.
-
We pointed our AI audit pipeline at bron-crypto, Bron Labs's Go library for MPC and threshold signatures, and confirmed four bugs. All of them are now fixed upstream. This is the third post in our series on bugs our agents found across open source cryptography.
-
We turned zkao (our AI auditor) on OpenVM, a state-of-the-art zkVM, and it found a critical soundness bug: the pairing check accepted a prover-supplied witness without proper subfield checking, which lets a malicious prover forge any pairing equality. It is fixed in OpenVM 1.6.0 and tracked as CVE-2026-46669. This is the second post in our series on bugs our agents found across open source cryptography.
-
We pointed our AI audit pipeline at Cloudflare's CIRCL experimental cryptography library and confirmed seven real bugs, from a critical float64 precision loss in threshold RSA to a complete access-control break in attribute-based encryption. All seven are now fixed upstream. This is the first post in a series on bugs our agents found across open source cryptography.
-
The first two known exploits against live ZK circuits both stem from Groth16 verifiers with an incorrect trusted setup. A deep dive into what went wrong and how snarkjs users can avoid the same mistake.
-
A practical tour of prediction markets under the hood: how prices form through order books and AMMs, how markets resolve via oracles and disputes, and what remains unsolved.
-
Introducing a formal model for reasoning about rollup security, covering forced transactions, safe blacklisting, and upgradeability, verified with the Alloy model checker.
-
Announcing a website for documenting and analyzing ZK circuit vulnerabilities, featuring 89 documented bugs, 22 reproduced exploits, and evaluations of security tools.
-
Launching the zkBugs GitHub repository with end-to-end reproducible exploits for known ZK circuit vulnerabilities in Circom, including step-by-step methodology for crafting exploits.
-
A survey of where vulnerabilities arise across the SNARK stack and the current landscape of security tools, from static analysis and fuzzing to formal verification.