Skip to content
TopicTracker
From HackerNewsView original
TranslationTranslation

Adventures in Automated Smart Contract Testing: A Spark Is Born

The article recounts the author's early journey into automated smart contract testing, describing how they developed a tool called GASER to find gas-cost vulnerabilities in Ethereum smart contracts. The post details the initial spark of the idea, the technical challenges faced, and the early experimental results from the project.

Background

- Gustavo Grieco is a security researcher who works on automated analysis of smart contracts. This blog describes his early experiments that led to what became **Medusa** (formerly called "crytic/spark"), a fuzzer for Ethereum smart contracts. - *Fuzzing* is a testing technique that throws random or semi-random inputs at a program to crash it or trigger bugs. For smart contracts, fuzzers generate random sequences of function calls with random parameters to find logic errors, security flaws, or crashes. - This post covers the 2019–2020 period, when most Ethereum smart contract testing was manual or used symbolic execution tools like Mythril. Fuzzing for EVM bytecode was still immature. - The key insight: existing test generation tools struggled with deeply nested control flow (e.g., reaching a specific require/if inside multiple branches). Grieco devised a way to guide fuzzing using *taint tracking plus library callbacks*, which became the core idea of Medusa. - The work was done at **Trail of Bits**, a well-known security firm that builds several open-source smart contract analysis tools (Slither, Echidna, Manticore). Medusa is now their flagship EVM fuzzer.

Related stories