Zero-Knowledge Proof with Fully Distributed Proof Generation
Tianyi Liu
Tiancheng Xie, Jiaheng Zhang, Yupeng Zhang, Dawn Song
1
Background and motivation
2
Zero-knowledge Proof
3
The verifier
The prover
Yes or no
Zero-knowledge Proof
4
The verifier
The prover
Yes or no
x
+
+
0
1
1
1
1
0
0
witness
Zero-knowledge Proof
5
The verifier
The prover
Yes or no
x
+
+
0
1
1
1
1
0
0
witness
Proof
Zero-knowledge
Application: ZK-Rollups and zkEVM
6
Block 1
Block 2
Block 3
Tx 1 | Alice -> Bob, 5 |
Tx 2 | Bob -> Cathy, 5 |
Tx 3 | Cathy -> Alice, 3 |
Tx 4 | Cathy -> Alice, 1 |
Tx 1 | Alice -> Bob, 5 |
Tx 2 | Bob -> Cathy, 5 |
Tx 3 | Cathy -> Alice, 3 |
Tx 4 | Cathy -> Alice, 1 |
Ledger | |
Alice | 5 |
Bob | 0 |
Cathy | 0 |
Ledger | |
Alice | 0 |
Bob | 5 |
Cathy | 0 |
Ledger | |
Alice | 0 |
Bob | 0 |
Cathy | 5 |
Ledger | |
Alice | 3 |
Bob | 0 |
Cathy | 2 |
Ledger | |
Alice | 4 |
Bob | 0 |
Cathy | 1 |
Tx 1
Tx 2
Tx 3
Tx 4
Application: ZK-Rollups and zkEVM
7
Block 1
Block 2
Block 3
Tx 1 | Alice -> Bob, 5 |
Tx 2 | Bob -> Cathy, 5 |
Tx 3 | Cathy -> Alice, 3 |
Tx 4 | Cathy -> Alice, 1 |
Tx 1 | Alice -> Bob, 5 |
Tx 2 | Bob -> Cathy, 5 |
Tx 3 | Cathy -> Alice, 3 |
Tx 4 | Cathy -> Alice, 1 |
Ledger | |
Alice | 5 |
Bob | 0 |
Cathy | 0 |
Ledger | |
Alice | 4 |
Bob | 0 |
Cathy | 1 |
Verify proof π, update the state
∆ledger: Alice 4, Bob 0, Cathy 1
Proof: π
(zero-knowledge) proof
Improve the scalability
Motivation
8
Motivation
9
Current solution: Prover based on Plonk with customized gate and lookup argument
Motivation
10
Challenge: large memory usage
(100+GB for 64 TXs, in our experiment)
Current solution: Prover based on Plonk with customized gates and lookup argument
Motivation
11
Challenge: large memory usage
(100+GB for 64 TXs, in our experiment)
Our solution: fully distributed scheme based on Plonk
Current solution: Prover based on Plonk with customized gate and lookup argument
Brief introduction of Plonk
12
Constraint system for CIRCUIT-SAT
13
x
+
+
1
2
0
2
7
1
9
6
54
3
||
5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Circuit or Input
Witness
Arithmetic Circuit
Constraint system for CIRCUIT-SAT
14
x
+
+
1
2
0
2
7
1
9
6
54
3
||
5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
x
Circuit or Input
Witness
Arithmetic Circuit
Constraint system for CIRCUIT-SAT
15
x
+
+
1
2
0
2
7
1
9
6
54
3
||
5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
2 |
|
+
+
x
Circuit or Input
Witness
Arithmetic Circuit
Constraint system for CIRCUIT-SAT
16
x
+
+
1
2
0
2
7
1
9
6
54
3
||
5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
2 |
3 |
+
+
x
=5
Circuit or Input
Witness
Arithmetic Circuit
Constraint system for CIRCUIT-SAT
17
x
+
+
1
2
0
2
7
1
9
6
54
3
||
5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
2 |
3 |
+
+
x
=5
Circuit or Input
Witness
Arithmetic Circuit
Vector constraint system
18
The verifier
The prover
Vector constraint system
19
The verifier
The prover
Polynomial constraint system
20
Polynomial constraint system
21
Polynomial constraint system
22
Polynomial constraint system
23
In Witness
Verify polynomial identity
24
Verify polynomial identity
25
x
x
x
x
x
x
Verify polynomial identity
26
x
x
x
x
x
x
Schwartz-Zipple lemma
completeness
soundness
Remaining problem
27
x
+
+
1
2
0
2
7
1
9
6
54
3
||
5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
2 |
3 |
Remaining problem
28
x
+
+
1
2
0
2
7
1
9
6
54
3
||
5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
2 |
3 |
Permutation argument
The logic of the proof scheme
29
Computation model
A set of polynomial identities
x
+
+
1
2
0
2
7
1
9
6
54
3
||
5
Constant round polynomial Interactive oracle proof (IOP)�
30
The verifier
The prover
Constant round polynomial Interactive oracle proof (IOP)�
31
The verifier
The prover
Constant round polynomial Interactive oracle proof (IOP)�
32
The verifier
The prover
Constant round polynomial Interactive oracle proof (IOP)�
33
The verifier
The prover
Constant round polynomial Interactive oracle proof (IOP)�
34
The verifier
The prover
Polynomial commitment
Instantiate polynomial oracles: � -- polynomial commitment
35
The verifier
The prover
Properties:
KZG polynomial commitment � based on DLog and qSDH assumption
36
The verifier
The prover
Properties:
Complexity
37
Fully distributed Plonk
38
Generate proof in a distributed way
39
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+
+
x
=5
Directly distribute computation into multiple machines?
Usage of NTT in the proving process
40
Difficulty of distributed NTT
41
output
input
Difficulty of distributed NTT
42
output
input
transpose
transpose
Large communication!
Partition circuit if highly parallelable
43
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+
+
x
=5
Partition circuit if highly parallelable
44
Part 1
Part 2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+
+
x
=5
|
|
|
|
|
Partition circuit if highly parallelable
45
Part 1
Part 2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+
+
x
=5
Half size
|
|
|
|
|
If generating proof for each part…
46
Part 1
Part 2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+
+
x
=5
|
|
|
|
|
If generating proof for each part…
47
Part 1
Part 2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+
+
x
=5
|
|
|
|
|
Verifier cost will increase as #parts grows
Combine univariate polynomial identities to a single bivariate identity
48
Example:
Combine univariate polynomial identities to a single bivariate identity
49
Example:
Combine univariate polynomial identities to a single bivariate identity
50
Example:
Combine univariate polynomial identities to a single bivariate identity
51
Example:
Intuition from Caulk
Combine univariate polynomial identities to a single bivariate identity
52
Example:
Combine univariate polynomial identities to a single bivariate identity
53
Example:
Bivariate proving process
Bivariate constraint system
54
Part 1
Part 2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+
+
x
=5
|
|
|
|
|
|
|
|
Bivariate proving process
55
The verifier
The prover
Bivariate proving process
56
The verifier
The prover
P0
P1
P2
P3
constant
Bivariate proving process
57
The verifier
The prover
P0
Bivariate proving process
58
The verifier
The prover
Compute all evaluations and polynomial commitment proof
P0
Bivariate proving process
59
The verifier
The prover
Compute all evaluations and polynomial commitment proof
P0
Bivariate KZG polynomial commitment
60
The verifier
The prover
Complexity
Not including PC
Distributed PC from KZG
61
Experiment
62
Summary
63
Thanks
Tianyi Liu
Tianyi@tamu.edu