Inspiration
Lightning enforces its own consensus rules within Boltz, allowing LightningFuzz to detect any consensus divergences across different implementations.
What it does
LightningFuzz performs differential fuzzing by sending various byte inputs to multiple Lightning implementations and comparing their outputs to check for consensus consistency.
How we built it
We started by forking the BitcoinFuzz project and then integrated multiple Lightning implementations, including LDK, LND, and NLightning. Additionally, we implemented FFI to interface with C++.
Challenges we ran into
Implementing FFI and ensuring compatibility across different Lightning implementations proved to be challenging.
Accomplishments that we're proud of
Successfully building a functional differential fuzzing tool for Lightning implementations. Other than that, we added a Docker configuration to the existing Bitcoin fuzzing project to make it easy for every teammate to run it.
What we learned
We gained experience in FFI development and differential fuzzing techniques.
What's next for LightningFuzz
Expand support for more Lightning projects and introduce additional fuzzing capabilities.
Log in or sign up for Devpost to join the conversation.