Skip to content

About

Formal Verification for Ethereum

Topics

Resources

Stars

11 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Awesome Ethereum Formal Verification Awesome

A curated list of awesome Ethereum formal verification tools, projects, and resources

Formal verification is a mathematical approach to proving the correctness of smart contracts and blockchain protocols. This list focuses on formally verified Ethereum-related projects, tools, and academic research.

Contents

Projects

Cryptography

Name Category Formal Verification Stack
KZG Commitment Commitment Scheme βœ… Isabelle/HOL
Merkle Tree Commitment Scheme πŸ—οΈ WIP Lean
Binius Commitment Scheme πŸ—οΈ WIP (ring-switching + Binary Basefold proved; FRI-Binius in progress) Lean
Sumcheck Interactive Oracle Proof πŸ—οΈ WIP (full-protocol soundness landed; knowledge-soundness bridge pending) Lean
FRI Interactive Oracle Proof βœ…, βœ… (RBR soundness) Lean
Batched FRI Interactive Oracle Proof πŸ—οΈ WIP Lean
STIR Interactive Oracle Proof πŸ—οΈ WIP Lean
WHIR Interactive Oracle Proof πŸ—οΈ WIP Lean
Spartan Interactive Oracle Proof πŸ—οΈ WIP Lean
XMSS (leanSig) Signature Scheme βœ… (SUF-CMA in the ROM) Lean
SPHINCS+ (leanSPHINCS) Signature Scheme βœ… (SUF-CMA in the ROM) Lean
Poseidon2 (Plonky3 AIR) Hash Function βœ… (constraint soundness) Lean
Keccak (Plonky3 AIR) Hash Function βœ… (determinism and correctness) Rocq
Keccak / SHA-2 (OpenVM) Hash Function βœ… (chip soundness) Lean

Protocol

Name Category Formal Verification Stack
Ethereum PoS L1 βœ…, βœ… (archived) Rocq, Dafny
Casper FFG L1 βœ… Rocq
Gasper L1 βœ… (bounded model checking) TLA+, Apalache
3-Slot Finality (3SF) L1 βœ… (Accountable Safety, bounded model checking) TLA+, Apalache, CVC5, Alloy
RANDAO L1 βœ… Maude, PVeStA
Staking deposit contract L1 βœ… K Framework
Consensus specs (Fulu, Gloas, Heze) L1 πŸ—οΈ WIP Lean
leanSpec (Lean Consensus) L1 πŸ—οΈ WIP, πŸ—οΈ WIP (Verity client) Lean
EIP1559 EIP βœ… UPPAAL
Cairo (language) zkVM (language) βœ… Lean
leanVM zkVM πŸ—οΈ WIP (verifier knowledge soundness on the FV branch) Lean
Jolt zkVM πŸ—οΈ WIP (bytecode expansion proved), πŸ—οΈ WIP Lean
SP1 zkVM βœ… (RV64 core chips), βœ… (determinism) Lean, Picus
OpenVM zkVM βœ… (RV32IM chips) Lean
Pico zkVM βœ… (RV32IM / RV64IM chips) Lean
RISC Zero zkVM πŸ—οΈ WIP (determinism), πŸ—οΈ WIP (archived PoC) Zirgen, Lean, Picus
Intmax2 Zk Rollup βœ… Lean
CBC Casper (L1) βœ… Isabelle/HOL

Application

Name Category Formal Verification Stack
Uniswap V3 DEX βœ… Isabelle/HOL based custom tool
Uniswap V4 DEX βœ… Certora Prover
Compound V3 Lending βœ… Certora Prover
Euler Finance V2 Lending βœ… Certora Prover
DJED Stablecoin βœ… LUSTRE, Isabelle/HOL
AMM DEX βœ… Lean
Morpho Blue Lending πŸ—οΈ WIP Verity (Lean)

Formal Specifications & Semantics

  • EVMYulLean - Executable formal model of the EVM and Yul in Lean 4 (blog)
  • KEVM - Executable EVM semantics in the K Framework
  • evm-sail - Formal, executable EVM specification written in Sail, exportable to Lean, Rocq, Isabelle and HOL4 (WIP)
  • evm-equivalence - Per-opcode equivalence proofs between EVMYulLean and KEVM in Lean 4 (WIP)
  • Etheorem - Executable Lean 4 implementation of the consensus specs (Fulu, Gloas, Heze), tested against consensus-spec-tests
  • formal-leanSpec - Lean 4 formalization of the Lean Consensus specification (leanSpec)
  • riscv-zkvm - Lean extraction of the official Sail RISC-V specification for zkVM verification, built on the Lean backend for Sail

Formal Verification Tools

Production-Ready Tools

  • Certora Prover - Formal verification tool for EVM, Solana, and Stellar chains, open source since February 2025
  • K Framework (KEVM) - Ethereum verification using K specifications
  • Kontrol - Formal verification of Foundry tests using KEVM
  • halmos - Symbolic testing tool for EVM smart contracts
  • HEVM - Symbolic EVM for symbolic execution, equivalence checking and formal verification
  • SMTChecker - SMT-based formal verification module built into the Solidity compiler
  • Act - Formal specification language for Ethereum smart contracts

Emerging Tools

  • Verity - Lean 4 EDSL for EVM smart contracts with a machine-checked compiler to Yul (docs)
  • Isabelle/Solidity - Shallow embedding of Solidity in Isabelle/HOL with a verification condition generator (see also the deep embedding)
  • rocq-of-solidity - Formal verification of Solidity smart contracts in Rocq
  • rocq-of-python - Converts Ethereum's Python specifications to Rocq (Coq) for formal verification (paused)
  • Mythril - Symbolic-execution-based security analysis tool for EVM bytecode
  • solc-verify - Modular verifier for Solidity smart contracts based on Boogie (no updates since 2023)

ZK Circuit Verification

  • Picus - Automated verification of the uniqueness (determinism) property of ZK circuits
  • clean - Lean 4 DSL for writing and verifying ZK circuits (blog)
  • zkLean - Lean 4 DSL for ZK statements, with an extractor for Jolt
  • LLZK - MLIR-based intermediate representation for ZK circuits
  • CertiPlonk - Extraction and verification of Plonky3 constraint systems in Lean
  • Garden - Formal verification of ZK circuits in Rocq
  • zkvm-verus - Evaluation of Verus for zkVM/zkEVM verification
  • VeIR - Verified MLIR-style compiler infrastructure in Lean, aimed at a verified ZK compiler toolchain

Proof Libraries

  • ArkLib - Formally verified interactive oracle reductions and SNARK components in Lean
  • VCVio - Lean framework for machine-checked cryptographic security proofs
  • CompPoly - Computable polynomials in Lean
  • iris-lean - Lean 4 port of the Iris separation logic framework

Archived Tools

  • Microsoft VeriSol - Formal verifier for Solidity smart contracts (archived)
  • Manticore - Symbolic execution tool for smart contracts (archived)
  • Clear - Lean framework for verifying Yul programs (archived)

Security Reports

Audit Portfolios

Academic Research

Research Projects

Academic Papers

Vulnerability Detection

Specific Vulnerability Research

Contributing

Contributions are welcome! Please follow the guidelines below.

Guidelines

  1. Quality over quantity - Only include high-quality, actively maintained projects
  2. Provide descriptions - Each entry should have a clear, concise description
  3. Verify links - Ensure all links are working and point to the correct resources
  4. Follow format - Maintain consistent formatting throughout the list
  5. Stay relevant - Focus on Ethereum and EVM-compatible formal verification

How to Contribute

  1. Fork this repository
  2. Create a new branch for your additions
  3. Add your entry in the appropriate section
  4. Ensure your addition follows the format
  5. Submit a pull request with a clear description

License

CC0

To the extent possible under law, the contributors have waived all copyright and related or neighboring rights to this work.


Note: This list is continuously updated. If you find any broken links or outdated information, please open an issue or submit a pull request.

About

Formal Verification for Ethereum

Topics

Resources

Stars

11 stars

Watchers

0 watching

Forks

Contributors