schmidty's avatar
schmidty 3 months ago
Fuzz testing and Bitcoin Core... We received a pretty overwhelming response to our recent job post for a Bitcoin Core Fuzzing Internship at Brink. Brink received over 70 applications for the role with many qualified candidates. After the results of a coding challenge, we decided to actually move forward with two engineers for the 3 month role. Dongjia Zhang is a Ph.D. fuzzing researcher and maintainer of the LibAFL fuzzing library used to fuzz test Bitcoin Core. Stratos has a background in vulnerability research and will join Dongjia in working with Niklas (@dergoegge) in the coming months to enhance the fuzz testing capabilities in Bitcoin Core. Fuzz testing is the idea of throwing a bunch of quasi-random inputs at various functions of a codebase and seeing if anything abnormal happens. Think of it like mining for bugs. There is work in both the Bitcoin Core codebase as well as fuzz tooling (like fuzzamoto) in order to test more and more of Bitcoin Core in this way. Here is a bit more about fuzz testing in Bitcoin Core: Here is a conversation we had with Matt Morehouse on fuzz testing the Lightning Network: Marco (@macrohead7) recently completed his year long onsite fuzzing fellowship at Brink and provided some thoughts as well: Brink is proud to support the build out of further fuzzing capabilities in the Bitcoin Core codebase as well as other ecosystem softwares. We have not had intern roles before either and are excited to see how it works out. Welcome Dongjia and Stratos! image

Replies (6)

schmidty's avatar
schmidty 3 months ago
A literal phd in fuzzing. Pretty incredible.
schmidty's avatar
schmidty 3 months ago
I know there is work on differential fuzzing for Bitcoin node implementations to surface incompatibilities. Same for Lightning I think. I dont know about SRI/SV2 work in this regard.
sedited's avatar
sedited 3 months ago
Actually I think that would be pretty cool. Probably also not too crazy of an effort, since it is well specced.