zerocash addressing bitcoin s privacy problem
play

Zerocash: addressing Bitcoin's privacy problem Alessandro Chiesa - PowerPoint PPT Presentation

Zerocash: addressing Bitcoin's privacy problem Alessandro Chiesa UC Berkeley 1 Bitcoin's Privacy Problem 2 Would you like a new credit card? You will pay almost no fees! Sure! Any fine print? We will publicly broadcast every payment that


  1. Zerocash: addressing Bitcoin's privacy problem Alessandro Chiesa UC Berkeley 1

  2. Bitcoin's Privacy Problem 2

  3. Would you like a new credit card? You will pay almost no fees! Sure! Any fine print? We will publicly broadcast every payment that you make. Sender Recipient Amount Time Alice Starbucks $8.75 2017.06.02 @ 10:05 Alice Uber $11.50 2017.06.02 @ 11:00 … … … … No big deal. 3

  4. No big deal. Very invasive deal! Payment history reveals lots of information: • medical information (specialty of your doctors) insurance companies could use it to increase premium or even deny coverage • current and past locations (your travel patterns) gold mine for stalkers, burglars, assassins, … • merchant cash flow suppliers, daily sales, … all exposed to competitors 4

  5. 5

  6. Your bank will not offer you this absurd deal. Not just out of magnanimity: Federal privacy laws mandate opt-out from data sharing. GLBA ( Gramm-Leach-Bliley Act ) mandates civil penalties of up to $100K per violation What about Bitcoin? no opt-out Sender Recipient Amount Time 14e… 5b6… 8.75 2017.06.02@10:05 f71… 88a… 11.5 2017.06.02@11:00 … … … … "Not the same. These are just addresses!" 6

  7. "Those are just addresses." These are known by everyone you interact with. And literally anyone can analyze the ledger. Transaction Graph addresses 1ab... 5 2 f3a... 2 1 1 56f... 3 1 112... 4 5 4 9be... time transaction graph + side-info → addresses become names of people! Not just theoretical: FBI Silk Road investigations, IRS subpoena to Coinbase, deanon studies, … [Reid Martin 11] [Barber Boyen Shi Uzun 12] [Ron Shamir 12] [Ron Shamir 13] [Meiklejohn Pomarole Jordan Levchenko McCoy Voelker Savage 13] [Ron Shamir 14] 7

  8. Mitigations to the Privacy Problem Use new address for each payment. Launder money with others. 1ab... 1 9be... 1 0ac... f3a... 56f... 432... 1 1 ⋮ ⋮ 112... ffa... "Seems" harder to analyze. But tracks remain… [MMLN17] Recent quantitative results exploiting such tracks. [KFTS17] Bitcoin history is publicly stored forever . Methods of analysis only get stronger . 8

  9. Fungibility a dollar is a dollar, regardless of its history Recognized as crucial property of money 350+ years ago. ( Crawfurd v. The Royal Bank , 1749) Bitcoin & co are NOT fungible because a coin's pedigree is public. Dangerous consequences: •ill-defined value •different people value the same coin differently •the same person values different coins differently •heuristic: new coins more valuable than old ones •central party that determines correct value? •price discrimination (salary raise → rent hike) •censorship (miners filter transactions) 9

  10. If privacy is so important why isn't Bitcoin private? 10

  11. Privacy vs Accountability From Alice From Scrooge … … From Bob To Bob To Donald … … To Eve Amount 1 Amount 2 … … Amount 1 How does the world know that Bob has 1 Bitcoin to spend? check that he received it, and that he did not spend it What if users encrypted their payment transactions? From Enc( A ) From Enc( S ) … … From Enc( B ) To Enc( B ) To Enc( D ) … … To Enc( E ) Amount Enc( 1 ) Amount Enc( 2 ) … … Amount Enc( 1 ) Not clear how to check a payment's validity. privacy and accountability are at odds 11

  12. The Zerocash Protocol 12

  13. Zerocash A cryptographic protocol achieving a digital currency that is: Decentralized works when given any (ideal) ledger Privacy-preserving anyone can post a payment transaction to anyone else, while provably hiding the payment's sender, receiver, amount Efficient payment transactions take less than 1min to produce, are less than 1KB in size, and take a few milliseconds to verify 13

  14. The Basic Intuition From Enc( A ) From Enc( S ) From Enc( B ) From c 1 To Enc( B ) To Enc( D ) To Enc( E ) To c 2 Amount Enc( 1 ) Amount Enc( 2 ) Amount Enc( 1 ) Amount c 3 π π ' π '' π ''' Proof Proof Proof Proof I am publishing three ciphertexts c 1 , c 2 , c 3 . They contain the encryptions of a sender address, a receiver address, and a transfer amount respectively. Moreover, the amount transfered has not been double spent. I have generated a cryptographic proof π ''' that all of this is true. Q1: what kind of crypto proof? Q2: what exactly is the statement being proved? 14

  15. Requirements on Crypto Proof From Enc( A ) From Enc( S ) From Enc( B ) To Enc( B ) To Enc( D ) To Enc( E ) Amount Enc( 1 ) Amount Enc( 2 ) Amount Enc( 1 ) π π ' π '' Proof Proof Proof Q1: what kind of crypto proof? zero knowledge (nothing revealed beyond truth of statement) succinct (proof is very short and cheap to verify) NIZK non-interactive (need to write it down!) proof argument (true statements have proofs, false ones do not) of knowledge (technical… allows using crypto in statement) ZK-SNARK have concretely efficient constructions libsnark.org 15

  16. Requirements on Crypto Proof From Enc( A ) From Enc( S ) From Enc( B ) To Enc( B ) To Enc( D ) To Enc( E ) Amount Enc( 1 ) Amount Enc( 2 ) Amount Enc( 1 ) π π ' π '' Proof Proof Proof Q2: what exactly is the statement being proved? this requires some thought time to have some design fun 16

  17. Attempt #0: template view of mint mint spend mint spend blockchain Transaction types type 1 type 2 coin 17

  18. Attempt #1: plain serial numbers view of mint mint spend mint spend mint mint spend mint spend sn 1 sn 2 sn 2 sn 3 sn 1 blockchain Transaction types mint Consume 1 BTC to create a value- 1 coin w/ serial number sn . sn Consume the coin w/ serial number sn . spend sn Good: cannot double spend coin Bad: spend linkable to its mint serial sn anyone can spend! number … 18

  19. Attempt #2: committed serial numbers view of mint mint spend mint spend mint mint spend mint spend cm 1 cm 2 sn 2 ,r 2 cm 3 sn 1 ,r 1 blockchain Transaction types mint Consume 1 BTC to create a value- 1 coin w/ commitment cm . cm Consume the coin w/ serial number sn . spend sn,r Good: cannot double spend others can't spend my coins coin cm commitment Bad: r COMM spend linkable to its mint serial … sn number 19

  20. Attempt #3: ZKPoK of commitment view of mint mint spend mint spend mint mint spend mint spend cm 1 cm 2 sn 2 , π 2 cm 3 sn 1 , π 1 blockchain Transaction types mint Consume 1 BTC to create a value- 1 coin w/ commitment cm . cm Consume the coin w/ serial number sn . spend [Sander Ta-Shma sn, π Here is a ZK proof π that I know secret r s.t. CRYPTO 1999] • cm ∈ "list of prior commitments" exists • cm =COMM (sn;r) well-formed Good: cannot double spend others can't spend my coins coin cm commitment spend and mint unlinkable Bad: r COMM fixed denomination serial sn number … 20

  21. Attempt #4: variable denomination view of mint mint spend mint spend mint mint spend mint spend cm 1 ,v 1 ,k 1 ,r 1 cm 2 ,v 2 ,k 2 ,r 2 sn 2 ,v 2 , π 2 cm 3 ,v 3 ,k 3 ,r 3 sn 1 ,v 1 , π 1 blockchain Transaction types mint Consume v BTC to create a value- v coin w/ commitment cm . cm,v,k,r Consume the value- v coin w/ serial number sn . spend sn,v, π Here is a ZK proof π that I know secret (r,s) s.t. • cm ∈ "list of prior commitments" exists • cm =COMM (v,k;r) & k =COMM (sn;s) well-formed Good: cannot double spend others can't spend my coins cm commitment coin spend and mint unlinkable r variable denomination COMM Bad: v s value COMM only hides sender serial sn number … 21

  22. Attempt #5: payment addresses view of mint mint spend mint spend mint mint spend mint spend cm 1 ,v 1 ,k 1 ,r 1 cm 2 ,v 2 ,k 2 ,r 2 sn 2 ,v 2 , π 2 cm 3 ,v 3 ,k 3 ,r 3 sn 1 ,v 1 , π 1 blockchain Transaction types mint Consume v BTC to create a value- v coin w/ commitment cm . cm,v,k,r Consume the value- v coin w/ serial number sn . spend sn,v, π Here is a ZK proof π that I know secret (cm,k,r,s, ρ ,apk,ask) s.t. • cm ∈ "list of prior commitments" exists • cm =COMM (v,k;r) & k =COMM (apk, ρ ;s) well-formed • sn =PRF ( ρ ;ask) & apk =PRF (0;ask) mine Good: cannot double spend others can't spend my coins cm commitment coin address spend and mint unlinkable serial sn apk r variable denomination COMM number Bad: v s ask value COMM PRF PRF still only hides sender secret public apk ρ key 0 key … 22

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