Enhancing Manually Guided Fuzz Testing with Fuzz Shrinking for EVM Smart Contracts
Naoki Yoshida · Cvut DSpace (Czech Technical University) · 2025
Testování bezpečnosti smart kontraktů čelí značným výzvám při ladění a analýze problémů odhalených při ručně řízeném fuzzingu. Tento přístup k testování sice účinně vyhledává zranitelnosti, ale výsledné testovací případy často obsahují stovky nebo tisíce kroků, takže ladění a analýza příčin jsou časově náročné a složité. V této práci představujeme Fuzz Shrink v ručně řízeném fuzzingu, nový přístup k automatické minimalizaci testovacích případů při zachování jejich schopnosti vyvolat chybu. Implementujeme vícefázový zmenšovací algoritmus, který kombinuje odstraňování typu flow a postupné zmenšování, podporované efektivní architekturou správy stavů, která zpracovává jak stavy EVM, tak stavy běhu Pythonu. Naše implementace v rámci Wake vykazuje míru redukce velikosti testovacího při zachování schopnosti reprodukce chyb. Náš přístup významně zkracuje dobu ladění z hodin na minuty u různých protokolů smart kontraktů, přičemž praktická vyhodnocení ukazují zlepšení efektivity pracovních postupů ladění. Prostřednictvím systematického hodnocení s využitím reálných protokolů a komplexních případových studií demonstrujeme, jak Fuzz Shrink řeší neefektivitu ladění v pracovních postupech testování smart kontraktů, čímž přispívá ke spolehlivějším a bezpečnějším blockchain systémům.