Zero-Knowledge Proof Frameworks: A Systematic Survey
Nojan Sheybani, Anees Ahmed, Michel Kinsy, Farinaz Koushanfar
TL;DR
The paper addresses the practicality gap in zero-knowledge proofs by surveying 25 open-source ZKP frameworks across major constructions and evaluating their usability and performance. It combines a cryptographic taxonomy with a hands-on experimental evaluation on matrix multiplication and SHA-256 benchmarks, supported by open-source Docker environments for reproducible development. Key contributions include a cross-construction usability/accessibility analysis, performance benchmarks across 18 frameworks, and tailored recommendations for selecting frameworks based on application needs and resource constraints. The work also discusses future directions and provides an open repository to accelerate adoption, highlighting the potential for wider real-world use of privacy-preserving computations.
Abstract
Zero-Knowledge Proofs (ZKPs) are a cryptographic primitive that allows a prover to demonstrate knowledge of a secret value to a verifier without revealing anything about the secret itself. ZKPs have shown to be an extremely powerful tool, as evidenced in both industry and academic settings. In recent years, the utilization of user data in practical applications has necessitated the rapid development of privacy-preserving techniques, including ZKPs. This has led to the creation of several robust open-source ZKP frameworks. However, there remains a significant gap in understanding the capabilities and real-world applications of these frameworks. Furthermore, identifying the most suitable frameworks for the developers' specific applications and settings is a challenge, given the variety of options available. The primary goal of our work is to lower the barrier to entry for understanding and building applications with open-source ZKP frameworks. In this work, we survey and evaluate 25 general-purpose, prominent ZKP frameworks. Recognizing that ZKPs have various constructions and underlying arithmetic schemes, our survey aims to provide a comprehensive overview of the ZKP landscape. These systems are assessed based on their usability and performance in SHA-256 and matrix multiplication experiments. Acknowledging that setting up a functional development environment can be challenging for these frameworks, we offer a fully open-source collection of Docker containers. These containers include a working development environment and are accompanied by documented code from our experiments. We conclude our work with a thorough analysis of the practical applications of ZKPs, recommendations for ZKP settings in different application scenarios, and a discussion on the future development of ZKP frameworks.
