arya nearly linear time zero knowledge proofs for correct
play

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


  1. Arya: Nearly Linear-Time Zero-Knowledge Proofs for Correct Program Execution Jonathan Bootle, Andrea Cerulli, Jens Groth, Sune Jakobsen, Mary Maller

  2. Zero-Knowledge Proofs for Statement Correct Program Execution Witness Prover Verifier

  3. Zero-Knowledge Proofs for Statement Correct Program Execution Witness Prover Verifier

  4. Zero-Knowledge Proofs for Statement Correct Program Execution Completeness: An honest prover Prover Verifier convinces the verifier.

  5. Zero-Knowledge Proofs for Statement Correct Program Execution Soundness: A dishonest prover never convinces the verifier. Completeness: An honest prover Prover Verifier Computational guarantee convinces the verifier. -> argument

  6. Zero-Knowledge Proofs for Statement Correct Program Execution Witness Soundness: A dishonest prover never convinces the verifier. Completeness: An honest prover Prover Verifier Computational guarantee convinces the verifier. Zero-knowledge: -> argument Nothing but the truth of the statement is revealed.

  7. Zero-Knowledge Proofs for Statement Correct Program Execution Interaction Prover Verifier Communication Computation Computation Prover Verifier Cryptographic Assumption

  8. Zero-Knowledge Proofs for Correct Program Execution Registers Memory pc r1 r2 r3 … … … … … flag Primary Input instruction1 Random instruction2 Input Tapes Access Instruction3 Auxiliary Input … TinyRAM Program … … TinyRAM Instructions include ADD, MULT, XOR, AND,…

  9. Zero-Knowledge Proofs for Correct Program Execution Registers Memory pc r1 r2 r3 … … … … … flag Primary Input instruction1 Random instruction2 Input Tapes Access Instruction3 Auxiliary Input … TinyRAM Program … … TinyRAM Public Values <-> Statement

  10. Zero-Knowledge Proofs for Correct Program Execution Registers Memory pc r1 r2 r3 … … … … … flag Primary Input instruction1 Random instruction2 Input Tapes Access Instruction3 Auxiliary Input … TinyRAM Program … … TinyRAM Private Values <-> Prover’s Witness

  11. Zero-Knowledge Proofs for Correct Program Execution Goal: Why TinyRAM? Zero-knowledge proof for • Closer to real world statements • Compilers from restricted C to correct TinyRAM execution TinyRAM with low prover overhead

  12. List of Memory Execution Trace Memory Changes Extra Time Information 0 pc r1 r2 r3 … … … … … flag pc r1 r2 r3 1 pc r1 r2 r3 … … … … … flag pc r1 r2 r3 2 pc r1 r2 r3 … … … … … flag pc r1 r2 r3 3 pc r1 r2 r3 … … … … … flag pc r1 r2 r3 … … instruction1 instruction2 T pc r1 r2 r3 … … … … … flag pc r1 r2 r3 Instruction3 TinyRAM … Primary Input Program … Input Tapes Auxiliary Input …

  13. List of Memory Checks Memory Changes Extra Time Information 0 pc r1 r2 r3 … … … … … flag pc r1 r2 r3 1 pc r1 r2 r3 … … … … flag pc r1 r2 r3 2 pc r1 r2 r3 … … … … flag pc r1 r2 r3 3 pc r1 r2 r3 … … … … … flag pc r1 r2 r3 … … instruction1 Memory instruction2 T pc r1 r2 r3 … … … … flag pc r1 r2 r3 Instruction3 TinyRAM Consistency … Primary Input Program … Input Tapes Auxiliary Input …

  14. List of Memory Checks Memory Changes Extra Time Information 0 pc r1 r2 r3 … … … … … flag pc r1 r2 r3 Correct 1 pc r1 r2 r3 … … … … … flag pc r1 r2 r3 2 pc r1 r2 r3 … … … … … flag pc r1 r2 r3 Instruction 3 pc r1 r2 r3 … … … … … flag pc r1 r2 r3 Execution … … instruction1 instruction2 T pc r1 r2 r3 … … … … … flag pc r1 r2 r3 Instruction3 TinyRAM … Primary Input Program … Input Tapes Auxiliary Input …

  15. List of Memory Checks Memory Changes Extra Time Information 0 pc r1 r2 r3 … … … … … flag pc r1 r2 r3 1 pc r1 r2 r3 … … … … … flag pc r1 r2 r3 2 pc r1 r2 r3 … … … … … flag pc r1 r2 r3 3 pc r1 r2 r3 … … … … … flag pc r1 r2 r3 … … instruction1 Word instruction2 T pc r1 r2 r3 … … … … … flag pc r1 r2 r3 Instruction3 TinyRAM … Primary Input Program Decompositions … Input Tapes Auxiliary Input …

  16. Proving Correct Program Execution Sources of Overhead Our Solutions • Large fields and large cyclic • Use hash-based proof system groups over any field • Permutation networks for • Alternative approach to checking checking memory permutations • Large circuits for bitwise • Word decomposition technique operations gives constant-size circuits

  17. � � Results Work Prover Verifier Communication Rounds Assumption Complexity Complexity BCTV14 Ω(𝑈 log 𝑈 ' ) 𝜕(𝑀 + 𝑤 ) 𝜕(1) 1 KoE This LT-CRHF 𝑃(𝛽𝑈) 𝑃(log log 𝑈) 𝑞𝑝𝑚𝑧(𝜇) 𝑈 + 𝑀 + 𝑤 𝑞𝑝𝑚𝑧(𝜇) 𝑈 + 𝑀 Work But what is 𝛽 ? Security 2 78 9:; < Program Length 𝑀 Runtime Bound 𝑈 Public Input 𝑊

  18. Arithmetising TinyRAM Overview TinyRAM Execution Trace Algebraic Constraints Main Polynomials Contributions Prior work: Linear-Time Ideal Protocols Zero-Knowledge Look-Up Zero-Knowledge Proofs Arguments and More Standard Protocols 18

  19. Ideal Linear Commitment Protocols Commit to vectors P V 𝑦 ← C Commit to vectors Send random challenges 𝑧 ← C … … Check linear 𝑨 ← C combinations against Compute linear combinations Linear combinations commitments

  20. Ideal Linear Commitment Protocols Commit to execution trace P V 𝑦 ← C Commit to vectors Send random challenges 𝑧 ← C … … Coefficients of linear 𝑨 ← C combinations embed Compute linear combinations Linear combinations useful conditions

  21. Committing Encode 2 6 6 2 0 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 Prover Hash computes linear combination 5 9 3 2 4

  22. Checking Commitments Encode 2 6 6 2 0 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 Prover Hash computes linear combination Encode 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

  23. Correct Instruction Execution pc r1 r2 r3 pc r1 r2 r3 … … … … … flag Covers all Transition Circuit TinyRAM Check consistency of instructions values across each pc r1 r2 … … … … flag pc r2 r3 time step Transition Circuit Constant size circuit pc r1 r2 r3 … … … … flag pc r1 r2 r3 Give batch argument that each copy of circuit is satisfied

  24. Word Decomposition Avoid binary circuits when checking bitwise operations on non-binary field elements! 𝑏, 𝑐 ∈ 0,1 𝑏 + 𝑐 = 2 𝑏 ∧ 𝑐 + (𝑏 ⊕ 𝑐)

  25. Word Decomposition Register value Binary Decomposition 𝑏 𝒃 𝟏 𝒃 𝟐 𝒃 𝟑 𝒃 𝟒 … … … … 𝒃 𝑿7𝟑 𝒃 𝑿7𝟐 𝑏 P Odd bits 𝒃 𝟐 𝟏 𝒃 𝟒 𝟏 … … … … 𝒃 𝑿7𝟐 𝟏 𝑏 Q Even bits 𝒃 𝟏 𝟏 𝒃 𝟑 𝟏 … … … … 𝒃 𝑿7𝟑 𝟏 𝑏 = 2𝑏 P + 𝑏 Q

  26. Word Decomposition 𝑏 𝑐 𝒃 𝟏 𝒃 𝟐 𝒃 𝟑 𝒃 𝟒 … … … … 𝒃 𝑿7𝟑 𝒃 𝑿7𝟐 𝒃 𝟏 𝒃 𝟐 𝒃 𝟑 𝒃 𝟒 … … … … 𝒃 𝑿7𝟑 𝒃 𝑿7𝟐 𝑏 P 𝑐 P 𝒃 𝟐 𝟏 𝒃 𝟒 𝟏 … … … … 𝒃 𝑿7𝟐 𝟏 𝒃 𝟐 𝟏 𝒃 𝟒 𝟏 … … … … 𝒃 𝑿7𝟐 𝟏 𝑏 Q 𝑐 Q 𝒃 𝟏 𝟏 𝒃 𝟑 𝟏 … … … … 𝒃 𝑿7𝟑 𝟏 𝒃 𝟏 𝟏 𝒃 𝟑 𝟏 … … … … 𝒃 𝑿7𝟑 𝟏 𝑏 = 2𝑏 P + 𝑏 Q 𝑐 = 2𝑐 P + 𝑐 Q XORs in even bits ANDs in odd bits 𝒃 𝟏 ⊕ 𝒄 𝟏 𝒃 𝟏 ∧ 𝒄 𝟏 𝒃 𝟑 ⊕ 𝒄 𝟑 𝒃 𝟑 ∧ 𝒄 𝟑 … … … … 𝒃 𝑿7𝟑 ⊕ 𝒄 𝑿7𝟑 𝒃 𝑿7𝟑 ∧ 𝒄 𝑿7𝟑 𝑏 Q + 𝑐 Q

  27. Look-up Argument Register Even Odd Decomposition Look-Up Table Value Bits Bits Register Values Even Bits Odd Bits All possible register Use zero-knowledge look-up values argument to show all decompositions correct

  28. Look-up Argument Approach: Values 𝑏 T , 𝑏 ' , … , 𝑏 V lie in table Look-Up Table 𝒄 𝟐 𝑐 T , 𝑐 ' , … , 𝑐 Y already public ó 𝒄 𝟑 1. Commit to 𝑏 T , 𝑏 ' , … , 𝑏 V , 𝑓 T , 𝑓 ' , … , 𝑓 Y 𝒄 𝟒 𝑏 T , 𝑏 ' , … , 𝑏 V ⊂ {𝑐 T , 𝑐 ' , … , 𝑐 Y } … … … 2. Prove in zero-knowledge that ó Verify a ‘square and multiply’ … algorithm in zero-knowledge a b 𝒄 𝒐 V Y a b ∏ = ∏ (𝑦 − 𝑏 ^ ) 𝑦 − 𝑐 for random 𝑦 V Y ∏ = ∏ (𝑌 − 𝑏 ^ ) 𝑌 − 𝑐 ` ` ^_T `_T ^_T `_T for some 𝑓 ` ≥ 0 Think of 𝑛 ≫ 𝑜

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend