Arya: Nearly Linear-Time Zero-Knowledge Proofs for Correct Program Execution
Jonathan Bootle, Andrea Cerulli, Jens Groth, Sune Jakobsen, Mary Maller
Arya: Nearly Linear-Time Zero-Knowledge Proofs for Correct Program - - PowerPoint PPT Presentation
Arya: Nearly Linear-Time Zero-Knowledge Proofs for Correct Program Execution Jonathan Bootle, Andrea Cerulli, Jens Groth, Sune Jakobsen, Mary Maller Zero-Knowledge Proofs for Statement Correct Program Execution Witness Prover Verifier
Jonathan Bootle, Andrea Cerulli, Jens Groth, Sune Jakobsen, Mary Maller
Prover Verifier Witness Statement
Prover Verifier Witness Statement
Prover Verifier Statement
Completeness: An honest prover convinces the verifier.
Soundness: A dishonest prover never convinces the verifier. Computational guarantee
Statement Prover Verifier
Completeness: An honest prover convinces the verifier.
Soundness: A dishonest prover never convinces the verifier. Computational guarantee
Statement
Zero-knowledge: Nothing but the truth of the statement is revealed.
Prover Verifier
Completeness: An honest prover convinces the verifier.
Witness
Prover Verifier
Prover Computation Verifier Computation Communication Cryptographic Assumption
Statement
Interaction
Auxiliary Input Primary Input
Input Tapes
pc r1 r2 r3 … … … … … flag
Registers instruction1 instruction2 Instruction3 … … … TinyRAM Program Memory Random Access
Instructions include ADD, MULT, XOR, AND,…
Auxiliary Input Primary Input
Input Tapes
pc r1 r2 r3 … … … … … flag
Registers instruction1 instruction2 Instruction3 … … … TinyRAM Program Memory Random Access
Public Values <-> Statement
Auxiliary Input Primary Input
Input Tapes
pc r1 r2 r3 … … … … … flag
Registers instruction1 instruction2 Instruction3 … … … TinyRAM Program Memory Random Access
Private Values <-> Prover’s Witness
Why TinyRAM?
TinyRAM
pc r1 r2 r3 … … … … … flag pc r1 r2 r3 … … … … … flag pc r1 r2 r3 … … … … … flag pc r1 r2 r3 … … … … … flag pc r1 r2 r3 … … … … … flag
Time 1 2 3 … … T Auxiliary Input Primary Input
Input Tapes
instruction1 instruction2 Instruction3 … … … TinyRAM Program Memory List of Memory Changes
pc r1 r2 r3 pc r1 r2 r3 pc r1 r2 r3 pc r1 r2 r3 pc r1 r2 r3
Extra Information
pc r1 r2 r3 … … … … … flag pc r1 r2 r3 … … … … flag pc r1 r2 r3 … … … … flag pc r1 r2 r3 … … … … … flag pc r1 r2 r3 … … … … flag
Time 1 2 3 … … T Auxiliary Input Primary Input
Input Tapes
instruction1 instruction2 Instruction3 … … … TinyRAM Program Memory List of Memory Changes
pc r1 r2 r3 pc r1 r2 r3 pc r1 r2 r3 pc r1 r2 r3 pc r1 r2 r3
Extra Information
pc r1 r2 r3 … … … … … flag pc r1 r2 r3 … … … … … flag pc r1 r2 r3 … … … … … flag pc r1 r2 r3 … … … … … flag pc r1 r2 r3 … … … … … flag
Time 1 2 3 … … T Auxiliary Input Primary Input
Input Tapes
instruction1 instruction2 Instruction3 … … … TinyRAM Program Memory List of Memory Changes
pc r1 r2 r3 pc r1 r2 r3 pc r1 r2 r3 pc r1 r2 r3 pc r1 r2 r3
Extra Information
pc r1 r2 r3 … … … … … flag pc r1 r2 r3 … … … … … flag pc r1 r2 r3 … … … … … flag pc r1 r2 r3 … … … … … flag pc r1 r2 r3 … … … … … flag
Time 1 2 3 … … T Auxiliary Input Primary Input
Input Tapes
instruction1 instruction2 Instruction3 … … … TinyRAM Program Memory List of Memory Changes
pc r1 r2 r3 pc r1 r2 r3 pc r1 r2 r3 pc r1 r2 r3 pc r1 r2 r3
Extra Information
Sources of Overhead
groups
checking memory
Our Solutions
permutations
gives constant-size circuits
Work Prover Complexity Verifier Complexity Communication Rounds Assumption BCTV14 Ω(𝑈 log 𝑈 ') 𝜕(𝑀 + 𝑤 ) 𝜕(1) 1 KoE This Work 𝑃(𝛽𝑈)
𝑞𝑝𝑚𝑧(𝜇) 𝑈
𝑞𝑝𝑚𝑧(𝜇) 𝑈
𝑃(log log 𝑈) LT-CRHF
But what is 𝛽?
18
TinyRAM Execution Trace Algebraic Constraints Polynomials Ideal Protocols Standard Protocols
Prior work: Linear-Time Zero-Knowledge Proofs
Arithmetising TinyRAM Zero-Knowledge Look-Up Arguments and More
P
𝑦 ← C
V
𝑧 ← C 𝑨 ← C
Check linear combinations against commitments
Linear combinations
Commit to vectors Commit to vectors Compute linear combinations
… …
Send random challenges
P
𝑦 ← C
V
𝑧 ← C 𝑨 ← C
Coefficients of linear combinations embed useful conditions
Linear combinations
Commit to execution trace Commit to vectors Compute linear combinations
… …
Send random challenges
2 6 6 2 2 3 7 2 5 7 3 1 7 4 3 7 2 8 4 8 4 5 7 4 6 8 9 3 5 4 2 8 4 6 7 2 3 4 6 2 1 5 6 3 3 7 4 3 9 8 4 7 2 4 5 2 5 3 9 Encode Hash Prover computes linear combination 5 9 3 2 4
2 6 6 2 2 3 7 2 5 7 3 1 7 4 3 7 2 8 4 8 4 5 7 4 6 8 9 3 5 4 2 8 4 6 7 2 3 4 6 2 1 5 6 3 3 7 4 3 9 8 4 7 2 4 5 2 5 3 9 Encode Hash Prover computes linear combination 5 9 3 2 4 2 3 7 2 5 7 3 1 7 4 Verifier encodes and spot-checks columns High minimum distance catches cheating Encode
pc r1 r2 r3 … … … … … flag pc r1 r2 … … … … flag pc r1 r2 r3 … … … … flag pc r1 r2 r3 pc r2 r3 pc r1 r2 r3
Check consistency of values across each time step
Give batch argument that each copy of circuit is satisfied
Covers all TinyRAM instructions Constant size circuit
Avoid binary circuits when checking bitwise operations on non-binary field elements!
𝒃𝟏 𝒃𝟐 𝒃𝟑 𝒃𝟒 … … … … 𝒃𝑿7𝟑 𝒃𝑿7𝟐
𝑏
Register value Binary Decomposition
𝒃𝟐 𝟏 𝒃𝟒 𝟏 … … … … 𝒃𝑿7𝟐 𝟏
𝑏P
𝒃𝟏 𝟏 𝒃𝟑 𝟏 … … … … 𝒃𝑿7𝟑 𝟏
𝑏Q
Odd bits Even bits
𝑏 = 2𝑏P + 𝑏Q
𝒃𝟏 𝒃𝟐 𝒃𝟑 𝒃𝟒 … … … … 𝒃𝑿7𝟑 𝒃𝑿7𝟐
𝑏
𝒃𝟐 𝟏 𝒃𝟒 𝟏 … … … … 𝒃𝑿7𝟐 𝟏
𝑏P
𝒃𝟏 𝟏 𝒃𝟑 𝟏 … … … … 𝒃𝑿7𝟑 𝟏
𝑏Q 𝑏 = 2𝑏P + 𝑏Q
𝒃𝟏 𝒃𝟐 𝒃𝟑 𝒃𝟒 … … … … 𝒃𝑿7𝟑 𝒃𝑿7𝟐
𝑐
𝒃𝟐 𝟏 𝒃𝟒 𝟏 … … … … 𝒃𝑿7𝟐 𝟏
𝑐P
𝒃𝟏 𝟏 𝒃𝟑 𝟏 … … … … 𝒃𝑿7𝟑 𝟏
𝑐Q 𝑐 = 2𝑐P + 𝑐Q
𝒃𝟏 ⊕ 𝒄𝟏 𝒃𝟏 ∧ 𝒄𝟏 𝒃𝟑 ⊕ 𝒄𝟑 𝒃𝟑 ∧ 𝒄𝟑 … … … … 𝒃𝑿7𝟑 ⊕ 𝒄𝑿7𝟑 𝒃𝑿7𝟑 ∧ 𝒄𝑿7𝟑
𝑏Q + 𝑐Q
XORs in even bits ANDs in odd bits
Register Value Even Bits Odd Bits Register Values Even Bits Odd Bits
Decomposition Look-Up Table
All possible register values
Use zero-knowledge look-up argument to show all decompositions correct
𝒄𝟐 𝒄𝟑 𝒄𝟒 … … … … 𝒄𝒐
Look-Up Table Values 𝑏T, 𝑏', … , 𝑏V lie in table ó 𝑏T, 𝑏', … , 𝑏V ⊂ {𝑐T, 𝑐', … , 𝑐Y} ó ∏ (𝑌 − 𝑏^)
V ^_T
= ∏ 𝑌 − 𝑐
` ab Y `_T
for some 𝑓
` ≥ 0
Think of 𝑛 ≫ 𝑜
V ^_T
` ab Y `_T
𝑐T, 𝑐', … , 𝑐Y already public Verify a ‘square and multiply’ algorithm in zero-knowledge
1 1 1 Memory Location Current Value Previous Access Time Previous Value Access Time Should be equal First Access Next Access Last Access Should be equal Set equal
One memory location -> Cycle All locations -> permutation
V ^_T
V ^_T
Work Prover Complexity Verifier Complexity Communication Rounds Assumption BCTV14 Ω(𝑈 log 𝑈 ') 𝜕(𝑀 + 𝑤 ) 𝜕(1) 1 KoE This Work 𝑃(𝛽𝑈)
𝑞𝑝𝑚𝑧(𝜇) 𝑈
𝑞𝑝𝑚𝑧(𝜇) 𝑈
𝑃(log log 𝑈) LT-CRHF