SoK: Understanding zk-SNARKs: The Gap Between Research and Practice
Junkai Liang, Daqi Hu, Pengfei Wu, Yunbo Yang, Qingni Shen, Zhonghai Wu
TL;DR
The paper addresses gaps between zk-SNARK research and practice by systematizing the design of zk-SNARKs through a master recipe and by auditing both the proving systems and libraries used in practice. It introduces a master recipe that unifies the steps from compiling a high-level program to a circuit, mapping to an AIR, and instantiating a proving system before a final zk-SNARK transformation, and it uses this framework to classify and compare over 40 zk-SNARKs and 11 libraries. The study provides a comprehensive, docker-enabled environment to reproduce measurements and draws practical recommendations on library usability, documentation, compatibility, and standardization. By highlighting gaps and offering concrete guidelines, the work aims to accelerate the transition of zk-SNARK research into robust, real-world systems.
Abstract
Zero-knowledge succinct non-interactive arguments of knowledge (zk-SNARKs) are a powerful tool for proving computation correctness, attracting significant interest from researchers, developers, and users. However, the complexity of zk-SNARKs has created gaps between these groups, hindering progress. Researchers focus on constructing efficient proving systems with stronger security and new properties, while developers and users prioritize toolchains, usability, and compatibility. In this work, we provide a comprehensive study of zk-SNARK, from theory to practice, pinpointing gaps and limitations. We first present a master recipe that unifies the main steps in converting a program into a zk-SNARK. We then classify existing zk-SNARKs according to their key techniques. Our classification addresses the main difference in practically valuable properties between existing zk-SNARK schemes. We survey over 40 zk-SNARKs since 2013 and provide a reference table listing their categories and properties. Following the steps in master recipe, we then survey 11 general-purpose popular used libraries. We elaborate on these libraries' usability, compatibility, efficiency and limitations. Since installing and executing these zk-SNARK systems is challenging, we also provide a completely virtual environment in which to run the compiler for each of them. We identify that the proving system is the primary focus in cryptography academia. In contrast, the constraint system presents a bottleneck in industry. To bridge this gap, we offer recommendations and advocate for the opensource community to enhance documentation, standardization and compatibility.
