Zerocash Decentralized Anonymous Payments from Bitcoin

Slides:



Advertisements
Similar presentations
Payment Systems for Electronic Commerce Gary Schneider, 2003
Advertisements

The easy answers to the hard questions! WHAT IS BITCOIN?
Display slides 2 and 3 with Procedure step 2 in the lesson.
Bitcoin: A New Internet Currency Stephen Clayton Senior Economic Education Specialist Federal Reserve Bank of Dallas The opinions expressed are solely.
Chapter 6 E-commerce Payment Systems. Traditional Payment Systems Cash Checking Transfers Credit Card Accounts Stored Value Accounts Accumulating Balance.
ZeroCash: ZeroCoin meets SCIPR-lab Eli Ben-Sasson (Technion), Joint work with Alessandro Chiesa (MIT), Christina Garman (JHU), Matthew Green (JHU), Ian.
1 Integrity for Car-Computing A cryptographic vision for integrity in vehicle networks Eran Tromer Transportation CybserSecurity 18 Feb 2014.
 When the number of business transactions is very large, recording of all transactions in one journal will not be convenient but also cause delay in.
Lect. 18: Cryptographic Protocols. 2 1.Cryptographic Protocols 2.Special Signatures 3.Secret Sharing and Threshold Cryptography 4.Zero-knowledge Proofs.
Secure Digital Currency: Bitcoin Amir Houmansadr CS660: Advanced Information Assurance Spring 2015 Content may be borrowed from other resources. See the.
Ian Miers Christina Garman | Matthew Green | Avi Rubin Zerocoin: Anonymous Distributed E-Cash from Bitcoin.
Payment Systems 1. Electronic Payment Schemes Schemes for electronic payment are multi-party protocols Payment instrument modeled by electronic coin that.
Bitcoin Double Spending Attack Karame, Androulaki & Capkun Presented by Subhro Kar CSCE 715, Fall 2013.
Stefan Dziembowski Why do the cryptographic currencies need a solid theory? Forum Informatyki Teoretycznej, Warsaw
Advanced Computer Communications PROFESSOR:STUDENT: PROF. DR. ING. BRAD REMUS STEFAN FEILMEIER FACULTATEA DE INGINERIE HERRMANN OBERTH MASTER-PROGRAM.
Micro-Payment Protocols and Systems Speaker: Jerry Gao Ph.D. San Jose State University URL:
Your Presenter Amer Sharaf Electronic Payments: Where do we go from here? ByMarkus Jakobsson David Mraihi Yiannis Tsiounis Moti Yung.
Digital Cash Damodar Nagapuram. Overview ► Monetary Freedom ► Digital Cash and its importance ► Achieving Digital Cash ► Disadvantages with digital cash.
Bitcoin: Free Money Roger Ver Blockchain. Bitcoin: Free Money “For the first time in the history of the world, anyone can now send or receive any amount.
BITCOIN Exponential Growth. Good Money “For the first time in the history of the world, anyone can now send or receive any amount of money with anyone.
Bitcoin is the FUTURE of MONEY!!
Announcements: 1. Presentations start next Thursday Questions? This week and Monday: DSA, Digital Cash DSA, Digital Cash DTTF/NB479: DszquphsbqizDay 32.
Emerging payment systems Risks and Regulations: the way forward.
E-Money / Digital Cash Lin Huang. Money / Digital Cash What is Money –Coins, Bill – can’t exist on two places at one time –Bearer bonds: immediate cashable.
WISA An Efficient On-line Electronic Cash with Unlinkable Exact Payments Toru Nakanishi, Mitsuaki Shiota and Yuji Sugiyama Dept. of Communication.
Digital Cash By Gaurav Shetty. Agenda Introduction. Introduction. Working. Working. Desired Properties. Desired Properties. Protocols for Digital Cash.
Digital Currency Kody Myers. Definition Currency that does not exist in any physical form, but can be used similarly to physical currency while retaining.
Bitcoin (what, why and how?)
Chapter 4 Getting Paid. Objectives Understand electronic payment systems Know why you need a merchant account Know how to get a merchant account Explain.
Clemente-Cuervo et al. A PDA Implementation of an Off-line e-Cash Protocol.
Decentralized multi-signature solutions for Bitcoin.
© 2008 Pearson Prentice Hall, Electronic Commerce 2008, Efraim Turban, et al. Electronic Payment Systems.
1 Bitcoin A Digital Currency. Functions of Money.
Bitcoin 101 and Beyond Jonathan Levin VP Business Development, Chainalysis GmbH.
1 Petty cash. 2 3 Not this! Petty cash Efficiency. Reduce the number of postings by adding transactions together. Although the transactions are individually.
Electronic Money. What is Electronic Money? Scrip or money that is exchanged only through electronically is referred to as electronic money. Electronic.
2/16/001 E-commerce Systems Electronic Payment Systems.
Anonymous Digital Cash  Ashok Reddy  Madhu Tera  Laxminarayan Muktinutalapati (Lux)  Venkat Nagireddy.
BITCOIN What is bitcoin? Put simply, bitcoin is a digital currency. It can be used to make electronic payments face to face or over the internet just like.
Five Types of Payment Systems Cash Checking Transfer Credit Card Stored Value Accumulating Balance.
OBJECTIVES  To understand the concept of Electronic Payment System and its security services.  To bring out solution in the form of applications to.
Electronic Cash R. Newman. Topics Defining anonymity Need for anonymity Defining privacy Threats to anonymity and privacy Mechanisms to provide anonymity.
The Silk Road: An Online Marketplace
IS ANONYMOUS CURRENCY A GOOD IDEA? BY ADAM LASSWELL.
Bitcoin as real currency Bitcoin. Phone: | Bitcoin? - decentralized, peer to peer no banks.
Bitcoin Tech Talk Zehady Abdullah Khan (Andy) Graduate Assistant, Computer Science Department, Purdue University.
Ian Miers, Christina Garman, Matthew Green, Avi Rubin Zerocoin: Anonymous Distributed E-Cash from Bitcoin.
What Is Bitcoin? Launched in 2009 A p2p Electronic Cash System
Kermit Lowry, John Whatley, Wesley Cooper, and Matthew Eith
Distributed Financial Technology in Payments
Payment Instruments, Financial Privacy and Online Purchases
Bitcoin - a distributed virtual currency system
Blockchains and Cryptocurrencies: What Financial Planners Need to Know
Cryptocurrencies Project Ideas
Bitcoin Customer support phone number
Zcash Mining – A Guide For Beginners. Zcash (also known as ZEC and seventeenth most valued cryptocurrency with market capitalization of $500 million)
Bitcoin Support Phone Number
Rechtsanwältin – Germany Attorney at Law – New York
Crypto Mining LLC.
Bitcoin: A New Internet Currency
Setting the Stage for a Community Blockchain Incubator
Blockchain Alexander Prenta 9/27/2018.
Debasis Bhattacharya, JD, DBA – UH Maui College, HI
Zero Knowledge Proofs Campbell R. Harvey Duke University, NBER and
Privacy Coins CS1952 L Spring 2019 Maurice Herlihy Brown University.
Zerocash: Decentralized Anonymized Payments from Bitcoins
Blockchain and Distributed Ledger Technology: Innovation, Operation, and Legal and Regulatory Implications Consumer Protection on the Blockchain Emily.
GAYATRI INSTITUTE OF COMPUTER AND MANAGEMENT HINJILICUT (GANJAM)
Cryptocurrency and Blockchain Technology
Presentation transcript:

Zerocash Decentralized Anonymous Payments from Bitcoin Eli Ben-Sasson (Technion) Alessandro Chiesa (MIT) Christina Garman (JHU) Matthew Green (JHU) Ian Miers (JHU) Eran Tromer (Tel Aviv University) Madars Virza (MIT) zerocash-project.org IEEE Symposium on Security and Privacy 2014 20 May 2014

Bitcoin’s privacy problem Bitcoin: decentralized digital currency. 0110010010 1010101100 What’s to prevent double-spending? 0110010010 1010101100 0110010010 1010101100 0110010010 1010101100

Bitcoin’s privacy problem Bitcoin: decentralized digital currency. 0110010010 1010101100 What’s to prevent double-spending? Solution: broadcast every transaction into a public ledger (blockchain): From: To: Value: 5 From: To: Value: 11 0111010010 1010001100 0100011100 1011101100 0001011100 0010001100 0110010010 1010101100 From: To: Value: 17 0110010010 1010101100 The cost: privacy. Consumer purchases (timing, amounts, merchant) seen by friends, neighbors, and co-workers. Account balance revealed in every transaction. Merchant’s cash flow exposed to competitors.

Bitcoin’s privacy problem (cont.) From: To: Value: 5 From: To: Value: 11 0111010010 1010001100 0100011100 1011101100 0001011100 0010001100 From: To: Value: 17 0110010010 1010101100 Pseudonymous, but: Most users use a single or few addresses Transaction graph can be analyzed. [Reid Martin 11] [Barber Boyen Shi Uzun 12] [Ron Shamir 12] [Meiklejohn PJLMVS 13] Also: threat to the currency’s fungibility. Centralized: reveal to the bank. Decentralized: reveal to everyone?!

Past attempts at Bitcoin anonymity Trusted mix (but: operator can trace/steal) Zerocoin: decentralized mix service for Bitcoin [Miers Garman Green Rubin 13] Limitations: Performance: 45 kB/spend (to be broadcast, verified, and stored in blockchain), take ~0.5 s to verify. (for 128-bit security) Single denomination (undivisible) ⇒ reveals amount Reveal payment destinations; no direct transfer Requires explicit “laundry” process. Pinocchio Coin: variant using “Pinocchio” ZK proofs: 344 B/spend [Danezis Fournet Kohlweiss Parno 13] Scalability problem: spend time grows linearly with #coins Still single denomination, reveals amount, reveals destination, explicit. CoinJoin and various other mixing/pooling solutions Goal: fully preserves privacy, efficient, transparent, always on.

Zerocash: divisible anonymous payments Zerocash is a new privacy-preserving protocol for digital currency designed to sit on top of Bitcoin (or similar ledger-based currencies). Zerocash enables users to pay one another directly via payment transactions of variable denomination that reveal neither the origin, destination, or amount. ? From: To: Value: 11 From: To: Value: 11 From: To: Value: 5 From: To: Value: 17 From: To: Value: 17 From: To: Value: 17

Zerocash: in proofs we trust I got the money from last night, and I haven’t spent it in any of my prior transactions. “17 ” accountant’s signature ZK proof Intuition: “virtual accountant” using cryptographic proofs.

More about Zerocash Efficiency: 288 proof bytes/spend at 128-bit security level, <6 ms to verify a proof <1 min to create for 264 coins; asymptotically: log(#coins) 896MB “system parameters” (fixed throughout system lifetime). Trust in initial generation of system parameters (once). Crypto assumptions: Pairing-based elliptic-curve crypto Less common: Knowledge of Exponent [Boneh Boyen 04] [Gennaro 04] [Groth 10] Properties of SHA256, encryption and signature schemes

The Zerocash scheme

Basic anonymous e-cash [Sander Ta-Shma 1999] I hereby spend 1 BTC to create cm Minting: I’m using up a coin with (unique) sn, and I know 𝑟, and a cm in the tree with root, that match sn. I’m using up a coin with (unique) sn, and here are its cm and 𝑟. CRH root cm 1 Spending: cm 2 cm 3 cm (coin commitment) cm 4 cm 5 cm 6 commit 𝑟 (commitment randomness cm 7 cm 8 sn (serial number) Legend: In private wallet In public ledger Proved to be known

Basic anonymous e-cash – requisite proofs I’m using up a coin with (unique) sn, and I know a cm in the tree, and 𝑟, that match sn. Spending: Requires: zero knowledge cm (coin commitment) succinct noninteractive argument proof commit 𝑟 (commitment randomness of knowledge sn (serial number) zkSNARK

zkSNARK constructions for any NP statement Without trusted setup: Theory [BFLS 91] [Kilian 92] [Micali 94] […PCP…] ]Ben-Sasson Chiesa Genkin Tromer 13] With trusted setup: Theory [Groth 10] [Lipmaa 12] [Gennaro Gentry Parno Raykova 13] [Bitansky Chiesa Ishai Ostrovsky Paneth 13] Implementations [Parno Gentry Howell Raykova 13] [Ben-Sasson Chiesa Genkin Tromer Virza 13] [Ben-Sasson Chiesa Tromer Virza 14] zero knowledge succinct noninteractive argument of knowledge zkSNARK SCIPR Lab Underlying zkSNARK used in Zerocash

zkSNARK with great power comes great functionality cm (coin commitment) commit 𝑟 sn (serial number)

Adding variable denomination I hereby spend 𝑣 BTC to create cm, and here is 𝑘, 𝑟 ′ to prove consistency. Minting: I’m using up a coin with value 𝑣 (unique) sn, and I know 𝑟 ′ ,𝑟′′ that are consistent with cm. Spending: zkSNARK cm (coin commitment) commit 𝑟′ 𝑘 𝑣 (value) commit 𝑟′′ sn (serial number)

Adding direct anonymous payments CreateAddress: payee creates 𝑎 pk , 𝑎 sk I’m using up a coin with value 𝑣 (unique) sn, and I know 𝑟 ′ ,𝑟′′,𝜌, 𝑎 pk that are consistent with cm. Minting, spending analogous to above. Unknown to payer Sending? cm (coin commitment) sn (serial number) commit 𝑟′ PRF 𝑘 𝑎 sk 𝑣 (value) commit 𝑟′′ 𝜌 (serial number randomness) 𝑎 pk

Sending direct anonymous payments Create coin using 𝑎 pk of payee. Send coin secrets (𝑣,𝜌, 𝑟 ′ ,𝑟′′) to payee out of band, or encrypted to payee’s public key. cm (coin commitment) sn (serial number) Known to payee commit 𝑟′ PRF 𝑘 𝑎 sk 𝑣 (value) commit 𝑟′′ 𝜌 (serial number randomness) 𝑎 pk

Pouring Zerocash coins Simplified Single transaction type capturing: Sending payments Making change Exchanging into bitcoins Transaction fees 𝑣 1 𝑣 2 dest1 dest2 𝑣 pub old Zerocash coin Pour new Zerocash coin value 𝑣 1 to dest1 old Zerocash coin new Zerocash coin value 𝑣 2 to dest2 public bitcoins of value 𝑣 pub sn 1 sn 2 cm 1 cm 2 … proof the old coins were valid, and values of old coins = 𝑣 1 + 𝑣 2 + 𝑣 pub

Pouring Zerocash coins Simplified Single transaction type capturing: Sending payments Making change Exchanging into bitcoins Transaction fees 𝑣 1 𝑣 2 dest1 dest2 𝑣 pub old Zerocash coin Pour new Zerocash coin value 𝑣 1 to dest1 old Zerocash coin new Zerocash coin value 𝑣 2 to dest2 public bitcoins public bitcoins of value 𝑣 pub of value 𝑣 pub sn 1 sn 1 sn 2 sn 2 cm 1 cm 1 cm 2 cm 2 … … proof proof the old coins were valid, and values of old coins = 𝑣 1 + 𝑣 2 + 𝑣 pub

Example of a Zerocash Pour transaction root 1c4ac4a110e863deeca050dc5e5153f2b7010af9 sn_1 a365e7006565f14342df9096b46cc7f1d2b9949367180fdd8de4090eee30bfdc sn_2 6937031dce13facdebe79e8e2712ffad2e980c911e4cec8ca9b25fc88df73b52 cm_1 a4d015440f9cfae0c3ca3a38cf04058262d74b60cb14ecd6063e047694580103 cm_2 2ca1f833b63ac827ba6ae69b53edc855e66e2c2d0a24f8ed5b04fa50d42dc772 v_pub 0000000000000042 pubkeyHash info 8f9a43f0fe28bef052ec209724bb0e502ffb5427 SigPK 2dd489d97daa8ceb006cb6049e1699b16a6d108d43 Sig f1d2d2f924e986ac86fdf7b36c94bcdf32beec15a38359c82f32dbb3342cb4bedcb78ce116bac69e MAC_1 b8a5917eca1587a970bc9e3ec5e395240ceb1ef700276ec0fa92d1835cb7f629 MAC_2 ade6218b3a17d609936ec6894b7b2bb446f12698d4bcafa85fcbf39fb546603a ciphertext_1 048070fe125bdaf93ae6a7c08b65adbb2a438468d7243c74e80abc5b74dfe3524a987a2e3ed075d54ae7a53866973eaa5070c4e08954ff5d80caae214ce572f42dc6676f0e59d5b1ed68ad33b0c73cf9eac671d8f0126d86b667b319d255d7002d0a02d82efc47fd8fd648057fa823a25dd3f52e86ed65ce229db56816e646967baf4d2303af7fe09d24b8e30277336cb7d8c81d3c786f1547fe0d00c029b63bd9272aad87b3f1a2b667fa575e ciphertext_2 0493110814319b0b5cabb9a9225062354987c8b8f604d96985ca52c71a77055b4979a50099cefc5a359bdf0411983388fa5de840a0d64816f1d9f38641d217986af98176f420caf19a2dc18c79abcf14b9d78624e80ac272063e6b6f78bc42c6ee01edfbcddbeb60eba586eaecd6cb017069c8be2ebe8ae8a2fa5e0f6780a4e2466d72bc3243e873820b2d2e4b954e9216b566c140de79351abf47254d122a35f17f840156bd7b1feb942729dc zkSNARKproof a4c3cad6e02eec51dc8a37ebc51885cf86c5da04bb1c1c0bf3ed97b778277fb8adceb240c40a0cc3f2854ce3df1eafdcefccc532bc5afaefefe9d3975726f2ca8292286ca8dd4f8da21b3f98c61fac2a13f0b82544855b1c4ce7a0c9e57592ee1d233d43a2e76b9bdeb5a365947896f117002b095f7058bdf611e20b6c2087618c58208e3658cfcc00846413f8f355139d0180ac11182095cdee6d9432287699e76ed7832a5fc5dc30874ff0982d9658b8e7c51523e0fa1a5b649e3df2c9ff58dc05dac7563741298025f806dfbe9cfe5c8c40d1bf4e87dacb11467b9e6154fb9623d3fba9e7c8ad17f08b17992715dfd431c9451e0b59d7dc506dad84aef98475d4be530eb501925dfd22981a2970a3799523b99a98e50d00eaab5306c10be5 ~1KB total. Less without direct payments and public outputs.

Decentralized Anonymous Payment (DAP) system Algorithms: Setup CreateAddress Mint Pour VerifyTransaction Receive Security: Ledger indistinguishability Nothing revealed beside public information, even by chosen-transaction adversary. Balance Can’t own more money than received or minted. Transaction non-malleability Cannot manipulate transactions en route to ledger. (Requires further changes to the construction.)

Implementation libzerocash provides DAP interface libsnark Network simulation third-scale Bitcoin network on EC2 Bitcoind + Zerocash hybrid currency libzerocash provides DAP interface bitcoind . Statement for zkSNARK Hand-optimized libsnark zkSNARK SCIPR Lab Instantiate Zerocash primitives and parameters Performance (quadcore desktop) Setup <2 min, 896MB params Mint 23 𝜇s 72B transaction Pour 46 s, 1KB transaction Verify Transaction <9 ms/transaction Receive <2 ms/transaction

Trusted setup Setup generate fixed keys used by all provers and verifiers. If Setup is compromised at the dawn of the currency, attacker could later forge coins. Ran once. Once done and intermediate results erased, no further trust (beyond underlying cryptographic assumptions) Anonymity is unaffected by corrupted setup. Practical trustworthy protocol for running Setup?

Open research problems zkSNARKs can enforce policies and regulation in a privacy-preserving, corruption-proof way. What policies are desireable and feasible? I’m using up a coin with value 𝑣 (unique) sn, and I know 𝑟 ′ ,𝑟′′,𝜌, 𝑎 pk that are consistent with cm and I paid 10% tax and put my name in escrow with an authorized notary. Other Bitcoin applications Blockchain compression Turing-complete scripts/contracts Proof of reserve Eliminating trusted setup.