the zcash anonymous cryptocurrency
play

The Zcash Anonymous Cryptocurrency or zk-SNARKs for the interested - PowerPoint PPT Presentation

The Zcash Anonymous Cryptocurrency or zk-SNARKs for the interested layperson Sven M. Hallberg 29 Dec 2016 33rd Chaos Communication Congress, Hamburg What is Zcash Based on Bitcoin (altcoin) Adds a second type of address ( t XXXX, z


  1. The Zcash Anonymous Cryptocurrency or zk-SNARKs for the interested layperson Sven M. Hallberg 29 Dec 2016 33rd Chaos Communication Congress, Hamburg

  2. What is Zcash • Based on Bitcoin (altcoin) • Adds a second type of address ( t XXXX…, z XXXX…) • Uses recent magic (“zk-SNARKs”: 2010–) • Evolution of Zerocoin (2013), Zerocash (2014) • A company, a future (?!) foundation (I am not affiliated.) Miers et al., Zerocoin: Anonymous Distributed E-Cash from Bitcoin Ben-Sasson et al., Zerocash: Decentralized Anonymous Payments from Bitcoin 1 → “Shielded” transactions hide sender, receiver, amount

  3. What’s in this talk Focus on Zcash the abstract system • form of transactions • what is hidden • how validity is proved • where zk-SNARKs come in 2

  4. Bitcoin is… A distributed ledger of consensus-validated transactions. 3 input x from TX Authority input y from TX input z from TX ... Balance output u to ADDR output v to ADDR ...

  5. Zcash is… A distributed ledger of consensus-validated transactions. 4 input x from TX Authority input y from TX input z from TX ... Balance output u to tADDR output v to tADDR ... JoinSplit ?? JoinSplit ...

  6. JoinSplit • Zcash is transfered as notes (“coins”) • Note plaintext (owner, value, etc.) is secret • JoinSplit consumes (2) and creates (2) notes 5 • Each note has a nullifier and a commitment (public) cm 1 nf 1 JoinSplit nf 2 cm 2

  7. JoinSplit description in detail rt commitments in existence Prover knows notes such that… 6 ( v in , v out , rt , nf 1 , nf 2 , cm 1 , cm 2 , epk , seed , h 1 , h 2 , π, C 1 , C 2 , ) nf 1 , nf 2 nullifiers (inputs) cm 1 , cm 2 commitments (outputs) π proof of validity

  8. JoinSplit description in detail rt commitments in existence 6 ( v in , v out , rt , nf 1 , nf 2 , cm 1 , cm 2 , epk , seed , h 1 , h 2 , π, C 1 , C 2 , ) nf 1 , nf 2 nullifiers (inputs) cm 1 , cm 2 commitments (outputs) π proof of validity → Prover knows notes such that…

  9. zk-SNARKs (as a black box) zero-knowledge, succinct, non-interactive arguments of knowledge “API”: 7 • Setup ( stmt ) • π ← Prove ( input ) • Verify ( π ) → libsnark

  10. JoinSplit statement • Balance • Spend authority • Non-malleability 8 Prover knows notes ( a , v , ρ, r ) such that… • Input notes are in rt • nf 1 , nf 2 correspond to input notes • cm 1 , cm 2 correspond to output notes • Uniqueness of ρ

  11. A boolean circuit 9 ¬ ( x ∧ y ) ∨ z

  12. An arithmetic circuit 10 ( x + y ) 2 · y

  13. Arithmetic AND 11 x · y x , y ∈ { 0 , 1 }

  14. Arithmetic NOT 12 1 − x x ∈ { 0 , 1 }

  15. Satisfiability 13 Assign x , y so that output = 0 ( x + y ) 2 · y

  16. zk-SNARKs prove knowledge of x y z Satisfiability of equations 14 x 2 + y 2 = z 2 x 2 + y 2 − z 2 ⇔ = 0 Assign x , y , z so that output = 0

  17. 14 Satisfiability of equations x 2 + y 2 = z 2 x 2 + y 2 − z 2 ⇔ = 0 Assign x , y , z so that output = 0 zk-SNARKs prove knowledge of x , y , z

  18. Game plan • Encode JoinSplit statement as arithmetic circuit • Plug into zk-SNARK • Prove knowledge of notes such that circuit satisfied 15

  19. Ingredients of JoinSplit • Merkle (hash) tree • Commitment scheme • Pseudo-random functions 16 • Arithmetic on N

  20. Ingredients of JoinSplit • Merkle (hash) tree (SHA256) • Commitment scheme (SHA256) • Pseudo-random functions (SHA256) 16 • Arithmetic on N

  21. Binary numbers 31 17 � � 2 i · x i � i = 0

  22. Bit shift 18

  23. Concrete instantiation (Zerocash) 19 “Let H be the SHA256 compression function…”

  24. Questions? 19

  25. zk-SNARKS Ben-Sasson et al., Succinct Non-Interactive Zero Knowledge for a von Neumann Architecture (2015) • pairing-pased cryptography More in the literature… https://eprint.iacr.org/2013/879.pdf • arithmetic circuits → QAPs • e : G 1 × G 2 → G T • G 1 , G 2 from elliptic curves

  26. State of the currency • Trusted setup around 22 Oct • Launch (Genesis Block) on 28 Oct • CPU and GPU miners available • Price started overhyped, fluctuated, cur. ∼ 50 EUR

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