Files
zeekay abf99d05fc papers: reorganize into per-paper dirs, add Antje Worring as co-author
Restructured from flat .tex/.pdf files into per-paper subdirectories.
Added Antje Worring as co-author on all papers.
Synced PDFs to pdfs/ for download site.
2026-04-18 21:50:07 -07:00

27 lines
1.5 KiB
TeX

\section{Conclusion}
Property-based testing and fuzzing are the most cost-effective techniques for finding
bugs in cryptographic code. They require minimal setup---write a property, run the
fuzzer---and find bugs that unit tests and code review miss. Our methodology, applied to
Lux Network's cryptographic stack (Go NTT, polynomial arithmetic, FHE, smart contracts),
found 23 bugs including 3 critical issues.
The key insight: write properties, not test cases. A property like ``NTT round-trip is
identity'' tests more effectively than a thousand hand-picked test vectors, because the
fuzzer explores the input space guided by code coverage rather than human intuition.
Start with the round-trip property. If your code has an encode/decode, encrypt/decrypt,
or NTT/INTT pair, write the round-trip fuzz test first. It takes five minutes and catches
the most common class of bugs.
\begin{thebibliography}{99}
\bibitem{gofuzz} Go Team. ``Go Fuzzing.'' The Go Blog, 2022.
\bibitem{foundry} Paradigm. ``Foundry: A Blazing Fast, Portable and Modular Toolkit for Ethereum Application Development.'' 2022.
\bibitem{halmos} Park, D. et al. ``Halmos: Symbolic Testing for EVM Smart Contracts.'' a16z Crypto, 2023.
\bibitem{quickcheck} Claessen, K. and Hughes, J. ``QuickCheck: A Lightweight Tool for Random Testing of Haskell Programs.'' ICFP, 2000.
\bibitem{afl} Zalewski, M. ``American Fuzzy Lop (AFL).'' 2014.
\bibitem{libfuzzer} LLVM Project. ``libFuzzer: A Library for Coverage-Guided Fuzz Testing.'' 2015.
\end{thebibliography}