Fuzzing Processing Pipelines for Zero-Knowledge Circuits

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Hochrainer, Christoph, Isychev, Anastasia, Wüstholz, Valentin, Christakis, Maria
Format: Preprint
Published: 2024
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866915004442214400
author Hochrainer, Christoph
Isychev, Anastasia
Wüstholz, Valentin
Christakis, Maria
author_facet Hochrainer, Christoph
Isychev, Anastasia
Wüstholz, Valentin
Christakis, Maria
contents Zero-knowledge (ZK) protocols have recently found numerous practical applications, such as in authentication, online-voting, and blockchain systems. These protocols are powered by highly complex pipelines that process deterministic programs, called circuits, written in one of many domain-specific programming languages, e.g., Circom, Noir, and others. Logic bugs in circuit-processing pipelines could have catastrophic consequences and cause significant financial and reputational damage. As an example, consider that a logic bug in a ZK pipeline could result in attackers stealing identities or assets. It is, therefore, critical to develop effective techniques for checking their correctness. In this paper, we present the first systematic fuzzing technique for ZK pipelines, which uses metamorphic test oracles to detect critical logic bugs. We have implemented our technique in an open-source tool called Circuzz. We used Circuzz to test four significantly different ZK pipelines and found a total of 16 logic bugs in all pipelines. Due to their critical nature, 15 of our bugs have already been fixed by the pipeline developers.
format Preprint
id arxiv_https___arxiv_org_abs_2411_02077
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Fuzzing Processing Pipelines for Zero-Knowledge Circuits
Hochrainer, Christoph
Isychev, Anastasia
Wüstholz, Valentin
Christakis, Maria
Software Engineering
Cryptography and Security
Programming Languages
Zero-knowledge (ZK) protocols have recently found numerous practical applications, such as in authentication, online-voting, and blockchain systems. These protocols are powered by highly complex pipelines that process deterministic programs, called circuits, written in one of many domain-specific programming languages, e.g., Circom, Noir, and others. Logic bugs in circuit-processing pipelines could have catastrophic consequences and cause significant financial and reputational damage. As an example, consider that a logic bug in a ZK pipeline could result in attackers stealing identities or assets. It is, therefore, critical to develop effective techniques for checking their correctness. In this paper, we present the first systematic fuzzing technique for ZK pipelines, which uses metamorphic test oracles to detect critical logic bugs. We have implemented our technique in an open-source tool called Circuzz. We used Circuzz to test four significantly different ZK pipelines and found a total of 16 logic bugs in all pipelines. Due to their critical nature, 15 of our bugs have already been fixed by the pipeline developers.
title Fuzzing Processing Pipelines for Zero-Knowledge Circuits
topic Software Engineering
Cryptography and Security
Programming Languages
url https://arxiv.org/abs/2411.02077