Protocol-State Guided Fuzzing of Distributed Systems
How annotations could help drive deep behavior and scenario coverage for distributed databases, consensus algorithms, and replicated storage systems.
Technical notebook by Dr. Thomas Pani.
Notes, experiments, and talks on executable specifications, formal verification, model checking, fuzzing, model-based testing, software reliability, and AI-assisted verification.
For profile, advisory work, and contact information, see thpani.net.
How annotations could help drive deep behavior and scenario coverage for distributed databases, consensus algorithms, and replicated storage systems.
Property-based testing can look a lot like model-based testing, until the next valid input depends on values the system under test just returned.
A practical explanation of executable specifications as runnable references for critical software behavior, with a DNS balancer control-plane example.
An in-depth report on formally verifying Aztec's governance protocol, including modeling decisions, invariants, verification conditions, and outcomes.
Recording and repository for a hands-on Protocol Berg workshop: build a functional EVM/Solidity smart-contract fuzzer in Python.
A technical comparison of formal methods and exhaustive testing, and why the difference matters in practice.
A practitioner's map of fuzzing tools, techniques, and how the field has evolved.
SSF-MC: verifying accountable safety for Ethereum's 3-slot finality consensus protocol with TLA+, Alloy, and SMT.
Solarkraft #2: writing small modular TLA+ runtime monitors for Soroban smart contracts.
Solarkraft #1: smart contract vulnerabilities, the traditional security model, and runtime monitoring for Soroban contracts.