A Primer on NIZK Proofs for Secure Computation - Stéphane Vincent - Dec 2018
Non-interactive zero-knowledge proofs (NIZKPs) are an essential element for providing security, confidentiality and privacy on public smart contract platforms. After introducing the necessary background on circuit representation, a description of a C-to-arithmetic-circuit compiler is provided. Finally, two NIZP systems based on different cryptographic assumptions are presented.
One of the key cryptographic primitives behind various constructions, including privacy-preserving authentication, short signature schemes, and zero-knowledge proofs is the bilinear mapping technique that uses pairings over elliptic curves. Initially used in cryptography to break the discrete logarithm problem in a group of points of some elliptic curves, pairings are now considered to be one of the most suitable mathematical tools to design secure and efficient cryptographic protocols.
This paper presents a detailed overview of current approaches used: Interactive Proofs, Homomorphic public-key cryptosystems, Discrete logarithm problem, MPC derivative and Incrementally Verifiable Computation. The properties of existing implementations are discussed and their performances compared based on available benchmarks.
An overview of current approaches for verifiable database interactions. When only queries are involved, the solutions only need to prove authenticity. With updates, computations integrity must be proven.
Under some conditions, binary asynchronous Byzantine consensus can be reached in a single communication step. This paper show how these conditions can be relaxed when only a subset of faulty nodes is Byzantine.
R1CS (rank-1 constraint systems) define a set of bi-linear equations which serve as constraints suitable for ZK proofs. This paper presents J-R1CS, a simple and lightweight JSON Lines format dedicated to R1CS. It was proposed at the 2nd ZKProof workshop
as a community standard (presentation in pdf
By spawning multiple Single-Sender consensus processes, and introducing the concept of proof to prevent premature timeout messages from Byzantine nodes, the MPC protocol achieves efficient consensus that is very fast under favourable circumstances.
We provide the first succinct and complete description of the Bulletproofs zero-knowledge proof system, as well as instructions how to create such proofs using public libraries.