Decentralized Anonymous Micropayments
Alessandro Chiesa, Matthew Green, Jingcheng Liu, Peihan Miao, Ian Miers, Pratyush Mishra
http://eprint.iacr.org/2016/1033
1
D ecentralized A nonymous M icropayments Alessandro Chiesa, Matthew - - PowerPoint PPT Presentation
D ecentralized A nonymous M icropayments Alessandro Chiesa, Matthew Green, Jingcheng Liu, Peihan Miao, Ian Miers, Pratyush Mishra http://eprint.iacr.org/2016/1033 1 Digital Payments Payment Network Customer Merchant 2 Digital Payments
Alessandro Chiesa, Matthew Green, Jingcheng Liu, Peihan Miao, Ian Miers, Pratyush Mishra
http://eprint.iacr.org/2016/1033
1
2
Customer Merchant Payment Network
2
$ $
Customer Merchant
+
Transaction fee Transaction amount
Payment Network
2
$
Customer Merchant Payment Network
2
$
$
Customer Merchant Payment Network
2
$
$
Customer Merchant Payment Network
Supporting small payments is important for applications.
2
$
$
Customer Merchant Payment Network
Supporting small payments is important for applications.
Eg: payments instead of ads while browsing.
2
$
$
Customer Merchant Payment Network
Supporting small payments is important for applications.
Eg: payments instead of ads while browsing.
Rich history of micropayment schemes constructions:
2
$
$
Customer Merchant Payment Network
Supporting small payments is important for applications.
Eg: payments instead of ads while browsing.
Rich history of micropayment schemes constructions: [Whe96, Riv97, LO98, JY96, RS01, MR02]…
2
$
$
Customer Merchant Payment Network
Supporting small payments is important for applications.
Eg: payments instead of ads while browsing.
Rich history of micropayment schemes constructions: [Whe96, Riv97, LO98, JY96, RS01, MR02]… … but no widespread deployments across multiple merchants.
2
$
$
Customer Merchant Payment Network
Supporting small payments is important for applications.
Eg: payments instead of ads while browsing.
Rich history of micropayment schemes constructions: [Whe96, Riv97, LO98, JY96, RS01, MR02]… … but no widespread deployments across multiple merchants.
Potential reason: Prior systems required central mediator.
2
$
$
Customer Merchant Payment Network
Supporting small payments is important for applications.
Eg: payments instead of ads while browsing.
Rich history of micropayment schemes constructions: [Whe96, Riv97, LO98, JY96, RS01, MR02]… … but no widespread deployments across multiple merchants.
Potential reason: Prior systems required central mediator.
Why? Requires creating financial relations, meeting regulations, etc.
between banks, merchants and regulators.
3
between banks, merchants and regulators.
LEDGER From To Amt Sign
⋮
A M 10 σA M N 2.3 σM
3
between banks, merchants and regulators.
LEDGER From To Amt Sign
⋮
A M 10 σA M N 2.3 σM A B 4.3 σA
3
between banks, merchants and regulators.
LEDGER From To Amt Sign
⋮
A M 10 σA M N 2.3 σM A B 4.3 σA
3
between banks, merchants and regulators.
LEDGER From To Amt Sign
⋮
A M 10 σA M N 2.3 σM A B 4.3 σA
Problem 1: High Transaction fees
3
between banks, merchants and regulators.
LEDGER From To Amt Sign
⋮
A M 10 σA M N 2.3 σM A B 4.3 σA
Problem 1: High Transaction fees
3
between banks, merchants and regulators.
LEDGER From To Amt Sign
⋮
A M 10 σA M N 2.3 σM A B 4.3 σA
Problem 1: High Transaction fees
Problem 2: Slow Confirmation time
3
between banks, merchants and regulators.
LEDGER From To Amt Sign
⋮
A M 10 σA M N 2.3 σM A B 4.3 σA
Problem 1: High Transaction fees
Problem 2: Slow Confirmation time
3
between banks, merchants and regulators.
LEDGER From To Amt Sign
⋮
A M 10 σA M N 2.3 σM A B 4.3 σA
Problem 1: High Transaction fees
Problem 2: Slow Confirmation time
Problem 3: Lack of Anonymity
3
between banks, merchants and regulators.
LEDGER From To Amt Sign
⋮
A M 10 σA M N 2.3 σM A B 4.3 σA
Problem 1: High Transaction fees
Problem 2: Slow Confirmation time
Problem 3: Lack of Anonymity
3
between banks, merchants and regulators.
LEDGER From To Amt Sign
⋮
A M 10 σA M N 2.3 σM A B 4.3 σA
Problem 1: High Transaction fees
Problem 2: Slow Confirmation time
Problem 3: Lack of Anonymity
Consequences:
3
between banks, merchants and regulators.
LEDGER From To Amt Sign
⋮
A M 10 σA M N 2.3 σM A B 4.3 σA
Problem 1: High Transaction fees
Problem 2: Slow Confirmation time
Problem 3: Lack of Anonymity
Consequences:
3
between banks, merchants and regulators.
LEDGER From To Amt Sign
⋮
A M 10 σA M N 2.3 σM A B 4.3 σA
Problem 1: High Transaction fees
Problem 2: Slow Confirmation time
Problem 3: Lack of Anonymity
Consequences:
micropayment apps)
3
between banks, merchants and regulators.
LEDGER From To Amt Sign
⋮
A M 10 σA M N 2.3 σM A B 4.3 σA
4
Problem 3: Lack of Anonymity
Consequences:
micropayment apps)
between banks, merchants and regulators.
LEDGER From To Amt Sign
⋮
A M 10 σA M N 2.3 σM A B 4.3 σA
4
Pass-Shelat (CCS 2015)
Problem 3: Lack of Anonymity
Consequences:
micropayment apps)
between banks, merchants and regulators.
LEDGER From To Amt Sign
⋮
A M 10 σA M N 2.3 σM A B 4.3 σA
4
Pass-Shelat (CCS 2015)
Problem 3: Lack of Anonymity
Consequences:
micropayment apps)
between banks, merchants and regulators.
LEDGER From To Amt Sign
⋮
A M 10 σA M N 2.3 σM A B 4.3 σA
4
Pass-Shelat (CCS 2015)
Problem 3: Lack of Anonymity
Consequences:
micropayment apps)
between banks, merchants and regulators.
LEDGER From To Amt Sign
⋮
A M 10 σA M N 2.3 σM A B 4.3 σA
4
Pass-Shelat (CCS 2015)
Problem 3: Lack of Anonymity
Consequences:
micropayment apps)
between banks, merchants and regulators.
LEDGER From To Amt Sign
⋮
A M 10 σA M N 2.3 σM A B 4.3 σA
5
Pass-Shelat (CCS 2015)
Zerocash (Oakland 2014)
and amount.
6
6
micropayments that are:
6
micropayments that are: decentralized (for ease of deployment),
6
micropayments that are: decentralized (for ease of deployment), anonymous (for fungibility, etc.), and
6
micropayments that are: decentralized (for ease of deployment), anonymous (for fungibility, etc.), and
6
micropayments that are: decentralized (for ease of deployment), anonymous (for fungibility, etc.), and
6
micropayments that are: decentralized (for ease of deployment), anonymous (for fungibility, etc.), and
6
micropayments that are: decentralized (for ease of deployment), anonymous (for fungibility, etc.), and
6
micropayments that are: decentralized (for ease of deployment), anonymous (for fungibility, etc.), and
6
micropayments that are: decentralized (for ease of deployment), anonymous (for fungibility, etc.), and
(probabilistic)
6
micropayments that are: decentralized (for ease of deployment), anonymous (for fungibility, etc.), and
(probabilistic)
7
7
Alice "pays" Bob $0.01
7
$1
Alice "pays" Bob $0.01
7
$1
Alice "pays" Bob $0.01
7
$1
Alice "pays" Bob $0.01
7
w.p. 99/100
$1
Alice "pays" Bob $0.01
7
w.p. 99/100
$1 $1
Alice "pays" Bob $0.01
7
nullpayment (Alice wins)
w.p. 99/100
$1 $1
Alice "pays" Bob $0.01
7
nullpayment (Alice wins)
w.p. 1/100 w.p. 99/100
$1 $1
Alice "pays" Bob $0.01
7
nullpayment (Alice wins)
w.p. 1/100 w.p. 99/100
$1 $1 $1
Alice "pays" Bob $0.01
7
nullpayment (Alice wins) macropayment (Bob wins)
w.p. 1/100 w.p. 99/100
$1 $1 $1
Alice "pays" Bob $0.01
7
nullpayment (Alice wins) macropayment (Bob wins)
w.p. 1/100 w.p. 99/100
$1 $1 $1
Alice "pays" Bob $0.01
Probabilistic payments imply micropayments:
7
nullpayment (Alice wins) macropayment (Bob wins)
w.p. 1/100 w.p. 99/100
$1 $1 $1
Alice "pays" Bob $0.01
Probabilistic payments imply micropayments:
Transaction fee is amortized over many payments.
7
nullpayment (Alice wins) macropayment (Bob wins)
w.p. 1/100 w.p. 99/100
$1 $1 $1
Alice "pays" Bob $0.01
Probabilistic payments imply micropayments:
Transaction fee is amortized over many payments. Nullpayments are offline and do not require interaction with payment network.
Pass-Shelat
8
Zerocash
Pass-Shelat
8
Zerocash
coin-flipping + Bitcoin
Pass-Shelat
8
Ledger From To Amt Sign
⋮
M N 2.3 σM A M 10 σA
Zerocash
coin-flipping + Bitcoin
Pass-Shelat
8
Ledger From To Amt Sign
⋮
M N 2.3 σM A M 10 σA A E 4.3 σA
Zerocash
coin-flipping + Bitcoin
coin-flip
Pass-Shelat
8
Ledger From To Amt Sign
⋮
M N 2.3 σM A M 10 σA A E 4.3 σA
Zerocash
coin-flipping + Bitcoin
coin-flip
Pass-Shelat
8
Ledger From To Amt Sign
⋮
M N 2.3 σM A M 10 σA A E 4.3 σA
Zerocash
coin-flipping + Bitcoin
coin-flip
Pass-Shelat
8
Ledger From To Amt Sign
⋮
M N 2.3 σM A M 10 σA A E 4.3 σA E B 4.3 σE
Zerocash
coin-flipping + Bitcoin
coin-flip
Pass-Shelat
8
Ledger From To Amt Sign
⋮
M N 2.3 σM A M 10 σA A E 4.3 σA E B 4.3 σE
Zerocash
coin-flipping + Bitcoin zero knowledge proofs + Bitcoin
coin-flip
Pass-Shelat
8
Ledger From To Amt Sign
⋮
M N 2.3 σM A M 10 σA A E 4.3 σA E B 4.3 σE
Zerocash
pkA, skA pkB, skB
Ledger Old New Proof
⋮
8436378
cm1
π1
6327690
cm2
π2 coin-flipping + Bitcoin zero knowledge proofs + Bitcoin
coin-flip
Pass-Shelat
8
Ledger From To Amt Sign
⋮
M N 2.3 σM A M 10 σA A E 4.3 σA E B 4.3 σE
Zerocash
pkA, skA pkB, skB
Ledger Old New Proof
⋮
8436378
cm1
π1
6327690
cm2
π2 coin-flipping + Bitcoin zero knowledge proofs + Bitcoin
c1
coin-flip
Pass-Shelat
8
Ledger From To Amt Sign
⋮
M N 2.3 σM A M 10 σA A E 4.3 σA E B 4.3 σE
Zerocash
pkA, skA pkB, skB
Ledger Old New Proof
⋮
8436378
cm1
π1
6327690
cm2
π2 coin-flipping + Bitcoin zero knowledge proofs + Bitcoin
c1
coin-flip
Pass-Shelat
8
Ledger From To Amt Sign
⋮
M N 2.3 σM A M 10 σA A E 4.3 σA E B 4.3 σE
Zerocash
a) derives sn1 from c1 and skA.
pkA, skA pkB, skB
Ledger Old New Proof
⋮
8436378
cm1
π1
6327690
cm2
π2 coin-flipping + Bitcoin zero knowledge proofs + Bitcoin
c1
sn1
coin-flip
Pass-Shelat
8
Ledger From To Amt Sign
⋮
M N 2.3 σM A M 10 σA A E 4.3 σA E B 4.3 σE
Zerocash
a) derives sn1 from c1 and skA. b) creates new coin c3 with comm cm3.
pkA, skA pkB, skB
Ledger Old New Proof
⋮
8436378
cm1
π1
6327690
cm2
π2 coin-flipping + Bitcoin zero knowledge proofs + Bitcoin
c1
sn1
coin-flip
Pass-Shelat
8
Ledger From To Amt Sign
⋮
M N 2.3 σM A M 10 σA A E 4.3 σA E B 4.3 σE
Zerocash
a) derives sn1 from c1 and skA. b) creates new coin c3 with comm cm3. c) creates ZK proof π3 for above.
pkA, skA pkB, skB
Ledger Old New Proof
⋮
8436378
cm1
π1
6327690
cm2
π2 coin-flipping + Bitcoin zero knowledge proofs + Bitcoin
c1
sn1
coin-flip
Pass-Shelat
8
Ledger From To Amt Sign
⋮
M N 2.3 σM A M 10 σA A E 4.3 σA E B 4.3 σE
Zerocash
a) derives sn1 from c1 and skA. b) creates new coin c3 with comm cm3. c) creates ZK proof π3 for above. d) appends tx = (sn1, cm3, π3).
pkA, skA pkB, skB
Ledger Old New Proof
⋮
8436378
cm1
π1
6327690
cm2
π2
sn1 cm3
π3 coin-flipping + Bitcoin zero knowledge proofs + Bitcoin
c1
sn1
coin-flip
Pass-Shelat
8
Ledger From To Amt Sign
⋮
M N 2.3 σM A M 10 σA A E 4.3 σA E B 4.3 σE
Zerocash
a) derives sn1 from c1 and skA. b) creates new coin c3 with comm cm3. c) creates ZK proof π3 for above. d) appends tx = (sn1, cm3, π3). Cannot link sn1 with cm1 without skA.
pkA, skA pkB, skB
Ledger Old New Proof
⋮
8436378
cm1
π1
6327690
cm2
π2
sn1 cm3
π3 coin-flipping + Bitcoin zero knowledge proofs + Bitcoin
c1
sn1
9
9
Ledger Old New Proof
⋮
8436378
cm1
π1
6327690
cm2
π2
9
Ledger Old New Proof
⋮
8436378
cm1
π1
6327690
cm2
π2
sn1 cm3
π3
9
coin-flip
Ledger Old New Proof
⋮
8436378
cm1
π1
6327690
cm2
π2
sn1 cm3
π3
9
coin-flip
Ledger Old New Proof
⋮
8436378
cm1
π1
6327690
cm2
π2
sn1 cm3
π3
9
coin-flip
Ledger Old New Proof
⋮
8436378
cm1
π1
6327690
cm2
π2
sn1 cm3
π3
sn3 cm4
π4
9
coin-flip
Ledger Old New Proof
⋮
8436378
cm1
π1
6327690
cm2
π2
sn1 cm3
π3
sn3 cm4
π4
Major Issues: Linkability Double Spending
10
10
Ledger ⋮ tx1
Escrow
10
Ledger ⋮ tx1
Escrow
sn
10
Ledger ⋮ tx1
Escrow
sn
10
Ledger ⋮ tx1
Escrow
tx
sn
10
Ledger ⋮ tx1 tx
Escrow
tx
∋ sn sn
11
11 Ledger
⋮
tx1 tx2
11 Ledger
⋮
tx1 tx2
c = COMM(tx3)
append to ledger. Instead, commits to it and generates ZK proof of correctness.
11 Ledger
⋮
tx1 tx2
c = COMM(tx3)
c, π
append to ledger. Instead, commits to it and generates ZK proof of correctness.
11 Ledger
⋮
tx1 tx2
c = COMM(tx3)
c, π
to open the commitment probabilistically.
append to ledger. Instead, commits to it and generates ZK proof of correctness.
11 Ledger
⋮
tx1 tx2
c = COMM(tx3)
c, π
to open the commitment probabilistically.
Nullpayment: Alice can spend coin again, but Bob learns nothing about the coin!
1-p
append to ledger. Instead, commits to it and generates ZK proof of correctness.
p
11 Ledger
⋮
tx1 tx2 tx3
c = COMM(tx3)
c, π
to open the commitment probabilistically.
Nullpayment: Alice can spend coin again, but Bob learns nothing about the coin! Macropayment: Bob gets tx and learns serial number.
1-p
append to ledger. Instead, commits to it and generates ZK proof of correctness.
p
11 Ledger
⋮
tx1 tx2 tx3
c = COMM(tx3)
c, π
to open the commitment probabilistically.
Nullpayment: Alice can spend coin again, but Bob learns nothing about the coin! Macropayment: Bob gets tx and learns serial number.
1-p
append to ledger. Instead, commits to it and generates ZK proof of correctness.
p
11 Ledger
⋮
tx1 tx2 tx3
c = COMM(tx3)
c, π
to open the commitment probabilistically.
Nullpayment: Alice can spend coin again, but Bob learns nothing about the coin! Macropayment: Bob gets tx and learns serial number.
1-p
append to ledger. Instead, commits to it and generates ZK proof of correctness.
Fractional Message Transfer Fractional hiding: w.p 1-p, Bob learns nothing about message. Fractional binding: Bob can always open with probability p.
p
11 Ledger
⋮
tx1 tx2 tx3
c = COMM(tx3)
c, π
to open the commitment probabilistically.
Nullpayment: Alice can spend coin again, but Bob learns nothing about the coin! Macropayment: Bob gets tx and learns serial number.
1-p
append to ledger. Instead, commits to it and generates ZK proof of correctness.
Fractional Message Transfer Fractional hiding: w.p 1-p, Bob learns nothing about message. Fractional binding: Bob can always open with probability p. Wants fractional hiding
p
11 Ledger
⋮
tx1 tx2 tx3
c = COMM(tx3)
c, π
to open the commitment probabilistically.
Nullpayment: Alice can spend coin again, but Bob learns nothing about the coin! Macropayment: Bob gets tx and learns serial number.
1-p
append to ledger. Instead, commits to it and generates ZK proof of correctness.
Fractional Message Transfer Fractional hiding: w.p 1-p, Bob learns nothing about message. Fractional binding: Bob can always open with probability p. Wants fractional binding Wants fractional hiding
12
Malice can use the same coin in multiple payments in parallel.
12
Malice can use the same coin in multiple payments in parallel.
12
COMM(tx) COMM(tx)
Malice can use the same coin in multiple payments in parallel.
12
COMM(tx)
Ledger
⋮
tx1 tx2
COMM(tx)
Malice can use the same coin in multiple payments in parallel.
12
COMM(tx)
txC txB
Ledger
⋮
tx1 tx2
COMM(tx)
Malice can use the same coin in multiple payments in parallel.
12
COMM(tx)
txC txB
Ledger
⋮
tx1 tx2 txC
COMM(tx)
Malice can use the same coin in multiple payments in parallel.
12
COMM(tx)
txC txB
Ledger
⋮
tx1 tx2 txC
COMM(tx)
Malice can use the same coin in multiple payments in parallel. Offline setting ⇒ such attacks cannot be prevented.
12
COMM(tx)
txC txB
Ledger
⋮
tx1 tx2 txC
COMM(tx)
13
13
Ledger
⋮
tx1 tx2
13
Ledger
⋮
tx1 tx2 txdep
dep
payments, Alice creates a deposit coin.
13
c = COMM(txmp, ss1) Ledger
⋮
tx1 tx2 txdep
dep
ss1 ss2
payments, Alice creates a deposit coin.
secret share of the deposit sn.
13
c = COMM(txmp, ss1)
c, π
Ledger
⋮
tx1 tx2 txdep
dep
ss1 ss2
payments, Alice creates a deposit coin.
& secret share is correct.
secret share of the deposit sn.
13
c = COMM(txmp, ss1)
c, π
Ledger
⋮
tx1 tx2 txdep
dep
ss1 ss2
payments, Alice creates a deposit coin.
& secret share is correct.
secret share of the deposit sn.
13
c = COMM(txmp, ss1)
c, π
Ledger
⋮
tx1 tx2 txdep
dep
ss1 ss2
payments, Alice creates a deposit coin.
& secret share is correct.
secret share of the deposit sn.
(txmp, ss1) and he posts this to the ledger.
13
c = COMM(txmp, ss1)
c, π
Ledger
⋮
tx1 tx2 txdep txmp, ss1
dep
ss1 ss2
payments, Alice creates a deposit coin.
& secret share is correct.
secret share of the deposit sn.
(txmp, ss1) and he posts this to the ledger.
14
14
Ledger
⋮
tx1 tx2
14
Ledger
⋮
tx1 tx2
14
Ledger
⋮
tx1 tx2
14
Ledger
⋮
tx1 tx2 txmp, ss1
txmp, ss1
14
Ledger
⋮
tx1 tx2 txmp, ss1
txmp, ss1
14
Ledger
⋮
tx1 tx2 txmp, ss1
txmp, ss1
14
Ledger
⋮
tx1 tx2 txmp, ss1
again!
txmp, ss1 txmp, ss2
14
Ledger
⋮
tx1 tx2 txmp, ss1 sndep
again!
txmp, ss1 txmp, ss2 ss1 + ss2 = sndep
14
Ledger
⋮
tx1 tx2 txmp, ss1 sndep
again!
txmp, ss1 txmp, ss2 ss1 + ss2 = sndep
15
Probabilistic opening:
15
Probabilistic opening: Deposits:
15
Probabilistic opening: Deposits: prevents linkability.
15
Probabilistic opening: Deposits: prevents linkability. prevent double-spending.
15
Probabilistic opening: Deposits: prevents linkability. prevent double-spending.
15
Are we done?
Probabilistic opening: Deposits: prevents linkability. prevent double-spending.
15
Are we done? Functionality:
Probabilistic opening: Deposits: prevents linkability. prevent double-spending.
15
Are we done? Functionality: Feature: Customers should be able to withdraw deposits.
Probabilistic opening: Deposits: prevents linkability. prevent double-spending.
15
Are we done? Functionality: Feature: Customers should be able to withdraw deposits. Problem: Customer can withdraw before revocation.
Probabilistic opening: Deposits: prevents linkability. prevent double-spending.
15
Are we done? Functionality: Feature: Customers should be able to withdraw deposits. Problem: Customer can withdraw before revocation. Problem: What if merchant refuses to reply?
Probabilistic opening: Deposits: prevents linkability. prevent double-spending.
15
Are we done? Functionality: Feature: Customers should be able to withdraw deposits. Problem: Customer can withdraw before revocation. Problem: What if merchant refuses to reply? Economic analysis: How to set deposit value?
Probabilistic opening: Deposits: prevents linkability. prevent double-spending.
15
Are we done? Functionality: Feature: Customers should be able to withdraw deposits. Problem: Customer can withdraw before revocation. Problem: What if merchant refuses to reply? Economic analysis: How to set deposit value? See paper for solutions!
16
16
Used translucent crypto + game theory to construct
16
Used translucent crypto + game theory to construct Decentralized Anonymous Micropayments
16
Used translucent crypto + game theory to construct Decentralized Anonymous Micropayments Game-theoretic analysis more broadly applicable:
Eg: Pass-Shelat do not specify value of deposit. Eg: Probabilistic smart contracts.
16
Used translucent crypto + game theory to construct Decentralized Anonymous Micropayments We also discovered pain points in Zerocash interface. Resulted in a more “programmable” interface. Game-theoretic analysis more broadly applicable:
Eg: Pass-Shelat do not specify value of deposit. Eg: Probabilistic smart contracts.
16
Used translucent crypto + game theory to construct
Thanks!
http://eprint.iacr.org/2016/1033
Decentralized Anonymous Micropayments We also discovered pain points in Zerocash interface. Resulted in a more “programmable” interface. Game-theoretic analysis more broadly applicable:
Eg: Pass-Shelat do not specify value of deposit. Eg: Probabilistic smart contracts.