Zero Knowledge, Full Coverage: A Fuzzing Paradox

Innokentii Sennovskii

Innokentii Sennovskii

Aztec labs


Abstract

Blockhchain is feverish with ZK (Zero Knowledge) - a technology that allows to do something that seems impossible: prove a statement to be true without revealing anything else about it:

  • proving your age or nationality without giving your data up
  • confirming you have enough funds for a transaction
  • ensuring that a photo is cropped from an authentic photo taken by a particular camera
  • compressing the results of binary execution in a simple confirmation string.

All of this is now possible. Even Google is integrating ZK tech in Google Wallet! However, making it possible is only the first step, the second is making it secure. Unfortunately, there are lots of challenges due to the complexity of Zero Knowledge Protocols. One of the most efficient ways we traditionally test programs is fuzzing, but zero knowledge circuits don't have branching which fuzzing relies on. So what can we do? In this talk Innokentii will explore how to apply the fuzzing techniques to Zero Knowledge circuits.

Speaker Info

Innokentii Sennovskii

Innokentii Sennovskii (Rumata888) is currently the head of the security team at Aztec labs. His work is centered around Zero Knowledge Protocol implementations security, specifically static and dynamic vulnerability discovery in complex Zero Knowledge Proof systems. He is also an organizer of the CTFZone competition. He teaches a university course on attacks on applied cryptography. Outside of work he has been a winner and a runner-up in the ZKHack competition and discovered vulnerabilities in cryptographic libraries, CPUs and email software. His current interests are applied cryptography and fuzzing.

Organizer

Organizer Logo

Partner Company

Partner Company Logo