IEEE Transactions on Dependable and Secure Computing · 2022 · 75 citations · 19 references
ComputingComputer EngineeringComputer ScienceCompilersCryptographyDistributed SystemsDeductive VerificationDistributed ComputingPrivacy-preserving ProtocolsZero-knowledge ProofsArithmetic CircuitsLinear ArithmeticNon-interactive Zero-knowledge ProofsRank-1 Constraint SystemsScalabilityZero-knowledge Proof ProtocolsZero-knowledge Proof Systems
A zero-knowledge (ZK) proof guarantees that the result of a computation is correct while keeping part of the computation details private. Some ZK proofs are tiny and can be verified in short time, which makes them one of the most promising technologies for solving two key aspects: the challenge of enabling privacy to public and transparent distributed ledgers and enhancing their scalability limitations. Most practical ZK systems require the computation to be expressed as an arithmetic circuit that is encoded as a set of equations called rank-1 constraint system (R1CS). In this paper, we present <sc xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">Circom</small> , a programming language and a compiler for designing arithmetic circuits that are compiled to R1CS. More precisely, with <sc xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">Circom</small> , programmers can design arithmetic circuits at a constraint level, and the compiler outputs a file with the R1CS description, and WebAssembly and <sc xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">C++</small> programs to efficiently compute all values of the circuit. We also provide an open-source library called <sc xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">circomlib</small> with multiple circuit templates. <sc xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">Circom</small> can be complemented with <sc xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">snarkjs</small> , a library for generating and validating ZK proofs from R1CS. Altogether, our software tools abstract the complexity of ZK proving mechanisms and provide a unique and friendly interface to model low-level descriptions of arithmetic circuits.
19
Universally composable security: a new paradigm for cryptographic protocols
Ran Canetti · 2001 · 3.3K citations
The knowledge complexity of interactive proof-systems
Sbafi Goldwasser, Silvio Micali, Charles Rackoff · 1985 · 1.2K citations · Full text
Zerocoin: Anonymous Distributed E-Cash from Bitcoin
Ian Miers, Christina Garman, Matthew Green et al. · 2013 · 942 citations · Full text
Computing, Computer Science, Finance +17
Pinocchio: Nearly Practical Verifiable Computation
Bryan Parno, Jon Howell, Craig Gentry et al. · 2013 · 835 citations · Full text