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

Recommend


More recommend