Introduction Prerequisites The Proof Applications References
zk-SNARKs
Panagiotis Grontas
NTUA-advTCS
01/06/2017
1 / 68 (NTUA-advTCS) zk-SNARKs
zk-SNARKs Panagiotis Grontas NTUA-advTCS 01/06/2017 1 / 68 - - PowerPoint PPT Presentation
Introduction Prerequisites The Proof Applications References zk-SNARKs Panagiotis Grontas NTUA-advTCS 01/06/2017 1 / 68 (NTUA-advTCS) zk-SNARKs Introduction Effjciently verify the correctness of computations without executing
Introduction Prerequisites The Proof Applications References
1 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References
2 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References
3 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References
4 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References
5 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References
Transform the verifjcation of the computation to checking a relation between secret polynomials: computation validity ↔ p(x)q(x) = s(x)r(x)
The verifjer chooses a random evaluation point that must be kept secret: p(x0)q(x0) = s(x0)r(x0)
Homomorphic Encryption to compute the evaluation of the polynomials at x0 by using Enc(x0): Enc(p(x0))Enc(q(x0)) = Enc(s(x0))Enc(r(x0))
Randomise for ZK: Enc(k + p(x0))Enc(k + q(x0)) = Enc(k + s(x0))Enc(kr(x0)) 6 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References ZK Proofs
7 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References ZK Proofs
8 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References ZK Proofs
9 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References ZK Proofs
10 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References ZK Proofs
11 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References ZK Proofs
12 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References ZK Proofs
13 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References ZK Proofs
14 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References ZK Proofs
15 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References ZK Proofs
q
q
16 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References ZK Proofs
17 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References ZK Proofs
18 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References ZK Proofs
19 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References ZK Proofs
20 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References ZK Proofs
21 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References ZK Proofs
22 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References Cryptography
23 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References Cryptography
24 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References Cryptography
25 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References Cryptography
26 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References Cryptography
0), Enc(x1 0), · · · , Enc(xd 0)
0), Enc(bx1 0), · · · , Enc(bxd 0)
27 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References Cryptography
28 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References Cryptography
29 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References Cryptography
30 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References Cryptography
31 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References Cryptography
32 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References Cryptography
0), Enc(x1 0), · · · Enc(xd 0)
0), Enc(bx1 0), · · · Enc(bxd 0)
33 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References Cryptography
34 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References Cryptography
35 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References Cryptography
36 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References Cryptography
37 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References Cryptography
38 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References Cryptography
39 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References Cryptography
40 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References
41 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References
42 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References R1CS
43 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References R1CS
44 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References R1CS
45 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References R1CS
46 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References QAP
47 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References QAP
48 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References zkSNARK
0)}d k=0 (in reality: d = 2 · 106)
0)}d k=0
k=1
k=1
k=1
49 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References zkSNARK
k=1
k=1
k=1
50 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References zkSNARK
Evaluates the circuit for the function and obtains the output As a result the P knows the values of ci Solves for h Defjne:
k∈Imid ckvk(x)
Generate the proof (9 encrypted values):
′
mid = Enc(bvmid(x0)), W
′ = Enc(bw(x0)), Y ′ = Enc(by(x0)),
′ = Enc(bh(x0))
All these values can be computed by leveraging the homomorphic properties of the underlying cryptosystem from what is on the CRS Performance: O(|C|) + O(|C|log2(|C|) 51 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References zkSNARK
′
mid, Enc(1)) = e(Vmid, Enc(b))
′, Enc(1)) = e(W, Enc(b)),
′, Enc(1)) = e(H, Enc(b))
′, Enc(1)) = e(Y, Enc(b))
e(Enc(v0(x0))·Enc(vio(x0))·Vmid,Enc(w0(x0)W)) e(y0(x0)Y,Enc(1))
52 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References zkSNARK
53 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References zkSNARK
m
i=1
m
i=1
54 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References zkSNARK
m
i=1
55 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References zkSNARK
56 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References zkSNARK
57 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References zkSNARK
58 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References Verifying cloud computations
59 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References Verifying cloud computations
60 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References zCash
61 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References zCash
62 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References zCash
63 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References zCash
64 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References zCash
0, · · · , gxd
65 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References zCash
1 e
1s2d
1sd 2···snd
66 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References zCash
i
i ) = e(g, g)s2 i
67 / 68 (NTUA-advTCS) zk-SNARKs
Introduction Prerequisites The Proof Applications References
Rosario Gennaro Craig Gentry Bryan Parno Mariana Raykova ”Quadratic span programs and succinct NIZKs without PCPs.” Annual International Conference on the Theory and Applications of Cryptographic
Parno, B., Howell, J., Gentry, C., Raykova, M. (2013, May). Pinocchio: Nearly practical verifjable
Eli Ben Sasson, Alessandro Chiesa, Christina Garman, Matthew Green, Ian Miers, Eran Tromer, and Madars Virza. 2014. Zerocash: Decentralized Anonymous Payments from Bitcoin. In Proceedings of the 2014 IEEE Symposium on Security and Privacy (SP ’14). IEEE Computer Society, Washington, DC, USA, 459-474.
Eli Ben-Sasson, Alessandro Chiesa, Eran Tromer, and Madars Virza. ”Succinct Non-Interactive Zero Knowledge for a von Neumann Architecture.” In USENIX Security, vol. 2014. 2014.
Advances in Cryptology – CRYPTO ’91, Lecture Notes in Computer Science Vol. 576, J. Feigenbaum ed., Springer-Verlag, 1991.
Succinct Computational Integrity and Privacy Research
Christian Reitwiessner zkSNARKs in a nutshell
Vitalik Buterin zkSNARKs: under the hood
Alfred Menezes An introduction to pairing based crypto
Zerocash parameter generation 68 / 68 (NTUA-advTCS) zk-SNARKs