Taalonafhankelijke Detectie van Computation–Constraint Inconsistenties in ZKP-Programma’s via Waardeinferentie
Vrije Universiteit Brussel
2025
Genomineerde longlist mtech+prijs
Zero-knowledge proof (ZKP) is een cryptografische methode waarmee kan worden bewezen dat een bewering klopt, zonder daarbij extra informatie prijs te geven. Denk bijvoorbeeld aan het aantonen dat iemand ouder is dan achttien zonder geboortedatum of naam te onthullen. Bij ZKP's zijn altijd twee partijen betrokken: de prover, die een bewijs aanlevert, en de verifier, die nagaat of dat bewijs correct is. Het bijzondere is dat de verifier kan vaststellen of een bewering waar is, zonder toegang te krijgen tot de achterliggende gegevens.
Hoewel dit veelbelovende mogelijkheden biedt voor privacy en veiligheid, is het programmeren van zulke systemen bijzonder complex. Ontwikkelaars moeten namelijk precies aangeven welke controles de verifier moet uitvoeren wanneer die een bewijs binnenkrijgt. Als er zelfs maar één controle ontbreekt, kan een vals bewijs toch worden aanvaard en vallen alle privacy-garanties weg.
Deze scriptie introduceert een formeel model om systematisch na te gaan of er nergens een controle ontbreekt. Met behulp van dit model konden zes nieuwe soorten kwetsbaarheden worden beschreven die door bestaande hulpmiddelen niet opgespoord konden worden. Toepassing van het model leidde tot de ontdekking van vijftien tot dan toe onbekende kwetsbaarheden in zes grote ZKP-projecten, waaronder die van Microsoft en TikTok.
Daarnaast werd een prototype ontwikkeld als eerste stap richting de automatisering van dit model. Het onderzoek toont aan dat zo'n aanpak veelbelovend is, maar dat toekomstige implementaties nog preciezer en efficiënter moeten worden om grote ZKP-programma's binnen een redelijke tijd te kunnen analyseren.
Meer lezen