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.

Built With

Share this project:

Updates