mirror of
https://github.com/lux-apps/papers.git
synced 2026-10-30 18:15:21 +00:00
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.
27 lines
1.5 KiB
TeX
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}
|
|
|