Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has...

33
Concurrency and Privacy with Payment Channel Networks Friedrich-Alexander-University Purdue University *TU Vienna Giulio Malavolta , Pedro Moreno-Sanchez , Aniket Kate , Matteo Maffei*, and Srivatsan Ravi §

Transcript of Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has...

Page 1: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Concurrency and Privacy with Payment Channel Networks

†Friedrich-Alexander-University ‡Purdue University *TU Vienna

Giulio Malavolta†, Pedro Moreno-Sanchez‡, Aniket Kate‡, Matteo Maffei*, and Srivatsan Ravi§

Page 2: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Bitcoin Scalability Issues

✤ < 10 transactions per second

✤ > 135 GB of memory required

✤ No micropayment (high fees)

2

Page 3: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Payment Channels

✤ Enable multiple payments between two users without committing every single payment to the blockchain

3

Alice

Bob

Alice Alice

Bob Bob

Page 4: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Payment Channel Networks (PCN)

✤ Each payment channel requires to deposit bitcoins

✤ Impractical to open a channel with every other user

4

Alice Bob Cat

1 BTC to Bob 1 BTC to Cat

Page 5: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Hash Time-Lock Contracts

✤ Hash-Time Lock Contract (HTLC) enables conditional payments between two users

5

Alice Bob

HTLC(Alice, Bob, 1, y, 30):Pay Bob 1 BTC iff Bob shows somex such that H(x) = y, before 30 days

Figure 1: Illustrative example of payment channel. White solidboxes denote Bitcoin addresses and their current balance, dashedboxes represent Bitcoin transactions, the clock denotes a time lockcontract [7], a user name along a tick denotes her signature to vali-date the transaction and colored boxes denote the state of the pay-ment channel. Dashed arrows denote temporal sequence. Alice �rstdeposits 5 bitcoins opening a payment channel with Bob, then usesit to pay Bob o�-chain. Finally, the payment channel is closed withthe most recent balance.

2 BACKGROUNDIn this section, we �rst overview the notion of payment channelsand we then describe payment-channel networks.

2.1 Payment ChannelsA payment channel enables several Bitcoin payments between twousers without committing every single payment to the Bitcoinblockchain. The cornerstone of payment channels is depositingbitcoins into a multi-signature address controlled by both users andhaving the guarantee that all bitcoins are refunded at a mutuallyagreed time if the channel expires. In the following, we overview thebasics of payment channels and we refer the reader to [30, 48, 58]for further details.

In the illustrative example depicted in Figure 1, Alice opens apayment channel with Bobwith an initial capacity of 5 bitcoins. Thisopening transaction makes sure that Alice gets the money back aftera certain timeout if the payment channel is not used. Now, Alicecan pay o�-chain to Bob by adjusting the balance of the depositin favor of Bob. Each o�-chain payment augments the balance forBob and reduces it for Alice. When no more o�-chain payments areneeded (or the capacity of the payment channel is exhausted), thepayment channel is closed with a closing transaction included in theblockchain. This transaction sends the deposited bitcoins to eachuser according the most recent balance in the payment channel.

The payment channel depicted in Figure 1 is an example of uni-directional channel: it can be used only for payments from Alice toBob. Bidirectional channels are de�ned to overcome this limitationas o�-chain payments in both directions are possible. Bidirectionalpayment channels operate in essence as the unidirectional version.1The major technical challenge consists in changing the directionof the channel. In the running example, assume that the currentpayment channel balance bal is {Alice: 4, Bob: 1} and further assume1Technically, a bidirectional channel might require that both users contribute fundsto the deposit in the opening transaction. However, current proposals [37] allowbidirectional channels with single deposit funder.

Figure 2: Illustrative example of a payment in a PCN. Non-bold(bold) numbers represent the capacity of the channels before (after)the payment from Alice to Bob. Alice wants to pay 2 bitcoins to Bobvia Carol, Edward and Fabi. Therefore, she starts the payment with3 bitcoins (i.e., payment amount plus fees).

that Bob pays o�-chain one bitcoin back to Alice. The new paymentchannel balance bal0 is {Alice: 5, Bob: 0}. At this point, Alice bene�tsfrom bal0 balance while Bob bene�ts from bal. The solution to thisdiscrepancy consists on that Bob and Alice make sure that anyprevious balance has been invalidated in favor of the most recentone. Di�erent “invalidation” techniques have been proposed andwe refer the reader to [30, 58, 62] for details.

The Bitcoin protocol has been updated recently to fully supportpayment channels. In particular, transaction malleability [8], alongwith a set of other interesting new features, have been added tothe Bitcoin protocol with the recent adoption of Segregated Wit-ness [15]. This event paves the way to the implementation andtesting of PCNs on the main Bitcoin blockchain as of today [67].

2.2 A Payment Channel Network (PCN)A PCN can be represented as a directed graph G = (V,E), wherethe set V of vertices represents the Bitcoin accounts and the set Eof weighted edges represents the payment channels. Every vertexu 2 V has associated a non-negative number that denotes thefee it charges for forwarding payments. The weight on a directededge (u1,u2) 2 E denotes the amount of remaining bitcoins that u1can pay to u2. For ease of explanation, in the rest of the paper werepresent a bidirectional channel betweenu1 andu2 as two directededges, one in each direction.2 Such a network can be used then toperform o�-chain payments between two users that do not have anopen channel between them but are connected by a path of openpayment channels.

The success of a payment between two users depends on thecapacity available along a path connecting the two users and thefees charged by the users in such path. Assume that s wants topay � bitcoins to r and that they are connected through a paths ! u1 ! . . . ! un ! r . For their payment to be successful, everylink must have a capacity�i � � 0i , where �

0i = � �Pi�1j=1 fee(u j ) (i.e.,

the initial payment value minus the fees charged by intermediateusers in the path). At the end of a successful payment, every edge

2In practice, there is a subtle di�erence: In a bidirectional channel between Alice andBob, Bob can always return to Alice the bitcoins that she has already paid to him.However, if two unidirectional channels are used, Bob is limited to pay to Alice thecapacity of the edge Bob! Alice, independently of the bitcoins that he has receivedfrom Alice. Nevertheless, our simpli�cation greatly ease the understanding of the restof the paper and proposed algorithms can be easily extended to support bidirectionalchannels.

H(x) = y

(x , )

?

Page 6: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

The Lightning Network

✤ Multiple “chained” HTLC enable multi-hop payments in the presence of untrusted intermediaries

6

Alice Bob Cat

y

x : H(x) = y

Page 7: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

The Lightning Network

✤ Multiple “chained” HTLC enable multi-hop payments in the presence of untrusted intermediaries

7

Alice Bob Cat

y

x : H(x) = yHTLC(Alice, Bob, 1, y, 30)

Page 8: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

The Lightning Network

✤ Multiple “chained” HTLC enable multi-hop payments in the presence of untrusted intermediaries

8

Alice Bob Cat

y

x : H(x) = yHTLC(Alice, Bob, 1, y, 30) HTLC(Bob, Cat, 1, y, 29)

Page 9: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

The Lightning Network

✤ Multiple “chained” HTLC enable multi-hop payments in the presence of untrusted intermediaries

9

Alice Bob Cat

y

HTLC(Alice, Bob, 1, y, 30) HTLC(Bob, Cat, 1, y, 29)x

Page 10: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

The Lightning Network

✤ Multiple “chained” HTLC enables multi-hop payments in the presence of untrusted intermediaries

✤ Bob does not gain or lose coins

10

Alice Bob Cat

y

xHTLC(Alice, Bob, 1, y, 30) HTLC(Bob, Cat, 1, y, 29)

Page 11: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Contributions

✤ Definition of security and privacy properties for PCNs

✤ Privacy analysis of PCNs and solution (Fulgor)

✤ Concurrency analysis of PCNs and solution (Rayo)

✤ Prototype implementation

11

Page 12: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Security Properties

✤ Our model highlights two main security properties:

✤ Balance Security:

✤ Serializability:

12

△ = 10

after payment△ = 9

[ ]Pr < negl

2

1 3=>2a

1 2b

Page 13: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Privacy Properties

✤ Our model highlights two privacy properties

✤ (Off-path) value privacy:

✤ (On-path) relationship anonymity:

13

≈4 4 4 4 2 2 2 2

P0 P0P1 P1

P0 P1P1 P0≈P0

P1

P0

P1

P0

P1

P1

P0

Page 14: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Privacy in PCNs: Challenge?

✤ Off-chain payments => Privacy-preserving payments

14

Alice Bob Cat

HTLC(Alice, Bob, 1, y, 30) HTLC(Bob, Cat, 1, y, 29)

Figure 1: Illustrative example of payment channel. White solidboxes denote Bitcoin addresses and their current balance, dashedboxes represent Bitcoin transactions, the clock denotes a time lockcontract [7], a user name along a tick denotes her signature to vali-date the transaction and colored boxes denote the state of the pay-ment channel. Dashed arrows denote temporal sequence. Alice �rstdeposits 5 bitcoins opening a payment channel with Bob, then usesit to pay Bob o�-chain. Finally, the payment channel is closed withthe most recent balance.

2 BACKGROUNDIn this section, we �rst overview the notion of payment channelsand we then describe payment-channel networks.

2.1 Payment ChannelsA payment channel enables several Bitcoin payments between twousers without committing every single payment to the Bitcoinblockchain. The cornerstone of payment channels is depositingbitcoins into a multi-signature address controlled by both users andhaving the guarantee that all bitcoins are refunded at a mutuallyagreed time if the channel expires. In the following, we overview thebasics of payment channels and we refer the reader to [30, 48, 58]for further details.

In the illustrative example depicted in Figure 1, Alice opens apayment channel with Bobwith an initial capacity of 5 bitcoins. Thisopening transaction makes sure that Alice gets the money back aftera certain timeout if the payment channel is not used. Now, Alicecan pay o�-chain to Bob by adjusting the balance of the depositin favor of Bob. Each o�-chain payment augments the balance forBob and reduces it for Alice. When no more o�-chain payments areneeded (or the capacity of the payment channel is exhausted), thepayment channel is closed with a closing transaction included in theblockchain. This transaction sends the deposited bitcoins to eachuser according the most recent balance in the payment channel.

The payment channel depicted in Figure 1 is an example of uni-directional channel: it can be used only for payments from Alice toBob. Bidirectional channels are de�ned to overcome this limitationas o�-chain payments in both directions are possible. Bidirectionalpayment channels operate in essence as the unidirectional version.1The major technical challenge consists in changing the directionof the channel. In the running example, assume that the currentpayment channel balance bal is {Alice: 4, Bob: 1} and further assume1Technically, a bidirectional channel might require that both users contribute fundsto the deposit in the opening transaction. However, current proposals [37] allowbidirectional channels with single deposit funder.

Figure 2: Illustrative example of a payment in a PCN. Non-bold(bold) numbers represent the capacity of the channels before (after)the payment from Alice to Bob. Alice wants to pay 2 bitcoins to Bobvia Carol, Edward and Fabi. Therefore, she starts the payment with3 bitcoins (i.e., payment amount plus fees).

that Bob pays o�-chain one bitcoin back to Alice. The new paymentchannel balance bal0 is {Alice: 5, Bob: 0}. At this point, Alice bene�tsfrom bal0 balance while Bob bene�ts from bal. The solution to thisdiscrepancy consists on that Bob and Alice make sure that anyprevious balance has been invalidated in favor of the most recentone. Di�erent “invalidation” techniques have been proposed andwe refer the reader to [30, 58, 62] for details.

The Bitcoin protocol has been updated recently to fully supportpayment channels. In particular, transaction malleability [8], alongwith a set of other interesting new features, have been added tothe Bitcoin protocol with the recent adoption of Segregated Wit-ness [15]. This event paves the way to the implementation andtesting of PCNs on the main Bitcoin blockchain as of today [67].

2.2 A Payment Channel Network (PCN)A PCN can be represented as a directed graph G = (V,E), wherethe set V of vertices represents the Bitcoin accounts and the set Eof weighted edges represents the payment channels. Every vertexu 2 V has associated a non-negative number that denotes thefee it charges for forwarding payments. The weight on a directededge (u1,u2) 2 E denotes the amount of remaining bitcoins that u1can pay to u2. For ease of explanation, in the rest of the paper werepresent a bidirectional channel betweenu1 andu2 as two directededges, one in each direction.2 Such a network can be used then toperform o�-chain payments between two users that do not have anopen channel between them but are connected by a path of openpayment channels.

The success of a payment between two users depends on thecapacity available along a path connecting the two users and thefees charged by the users in such path. Assume that s wants topay � bitcoins to r and that they are connected through a paths ! u1 ! . . . ! un ! r . For their payment to be successful, everylink must have a capacity�i � � 0i , where �

0i = � �Pi�1j=1 fee(u j ) (i.e.,

the initial payment value minus the fees charged by intermediateusers in the path). At the end of a successful payment, every edge

2In practice, there is a subtle di�erence: In a bidirectional channel between Alice andBob, Bob can always return to Alice the bitcoins that she has already paid to him.However, if two unidirectional channels are used, Bob is limited to pay to Alice thecapacity of the edge Bob! Alice, independently of the bitcoins that he has receivedfrom Alice. Nevertheless, our simpli�cation greatly ease the understanding of the restof the paper and proposed algorithms can be easily extended to support bidirectionalchannels.

Page 15: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Privacy in PCNs: Challenge?

✤ Off-chain payments => Privacy-preserving payments

15

Alice Bob Cat

HTLC(Alice, Bob, 1, y, 30) HTLC(Bob, Cat, 1, y, 29)

Figure 1: Illustrative example of payment channel. White solidboxes denote Bitcoin addresses and their current balance, dashedboxes represent Bitcoin transactions, the clock denotes a time lockcontract [7], a user name along a tick denotes her signature to vali-date the transaction and colored boxes denote the state of the pay-ment channel. Dashed arrows denote temporal sequence. Alice �rstdeposits 5 bitcoins opening a payment channel with Bob, then usesit to pay Bob o�-chain. Finally, the payment channel is closed withthe most recent balance.

2 BACKGROUNDIn this section, we �rst overview the notion of payment channelsand we then describe payment-channel networks.

2.1 Payment ChannelsA payment channel enables several Bitcoin payments between twousers without committing every single payment to the Bitcoinblockchain. The cornerstone of payment channels is depositingbitcoins into a multi-signature address controlled by both users andhaving the guarantee that all bitcoins are refunded at a mutuallyagreed time if the channel expires. In the following, we overview thebasics of payment channels and we refer the reader to [30, 48, 58]for further details.

In the illustrative example depicted in Figure 1, Alice opens apayment channel with Bobwith an initial capacity of 5 bitcoins. Thisopening transaction makes sure that Alice gets the money back aftera certain timeout if the payment channel is not used. Now, Alicecan pay o�-chain to Bob by adjusting the balance of the depositin favor of Bob. Each o�-chain payment augments the balance forBob and reduces it for Alice. When no more o�-chain payments areneeded (or the capacity of the payment channel is exhausted), thepayment channel is closed with a closing transaction included in theblockchain. This transaction sends the deposited bitcoins to eachuser according the most recent balance in the payment channel.

The payment channel depicted in Figure 1 is an example of uni-directional channel: it can be used only for payments from Alice toBob. Bidirectional channels are de�ned to overcome this limitationas o�-chain payments in both directions are possible. Bidirectionalpayment channels operate in essence as the unidirectional version.1The major technical challenge consists in changing the directionof the channel. In the running example, assume that the currentpayment channel balance bal is {Alice: 4, Bob: 1} and further assume1Technically, a bidirectional channel might require that both users contribute fundsto the deposit in the opening transaction. However, current proposals [37] allowbidirectional channels with single deposit funder.

Figure 2: Illustrative example of a payment in a PCN. Non-bold(bold) numbers represent the capacity of the channels before (after)the payment from Alice to Bob. Alice wants to pay 2 bitcoins to Bobvia Carol, Edward and Fabi. Therefore, she starts the payment with3 bitcoins (i.e., payment amount plus fees).

that Bob pays o�-chain one bitcoin back to Alice. The new paymentchannel balance bal0 is {Alice: 5, Bob: 0}. At this point, Alice bene�tsfrom bal0 balance while Bob bene�ts from bal. The solution to thisdiscrepancy consists on that Bob and Alice make sure that anyprevious balance has been invalidated in favor of the most recentone. Di�erent “invalidation” techniques have been proposed andwe refer the reader to [30, 58, 62] for details.

The Bitcoin protocol has been updated recently to fully supportpayment channels. In particular, transaction malleability [8], alongwith a set of other interesting new features, have been added tothe Bitcoin protocol with the recent adoption of Segregated Wit-ness [15]. This event paves the way to the implementation andtesting of PCNs on the main Bitcoin blockchain as of today [67].

2.2 A Payment Channel Network (PCN)A PCN can be represented as a directed graph G = (V,E), wherethe set V of vertices represents the Bitcoin accounts and the set Eof weighted edges represents the payment channels. Every vertexu 2 V has associated a non-negative number that denotes thefee it charges for forwarding payments. The weight on a directededge (u1,u2) 2 E denotes the amount of remaining bitcoins that u1can pay to u2. For ease of explanation, in the rest of the paper werepresent a bidirectional channel betweenu1 andu2 as two directededges, one in each direction.2 Such a network can be used then toperform o�-chain payments between two users that do not have anopen channel between them but are connected by a path of openpayment channels.

The success of a payment between two users depends on thecapacity available along a path connecting the two users and thefees charged by the users in such path. Assume that s wants topay � bitcoins to r and that they are connected through a paths ! u1 ! . . . ! un ! r . For their payment to be successful, everylink must have a capacity�i � � 0i , where �

0i = � �Pi�1j=1 fee(u j ) (i.e.,

the initial payment value minus the fees charged by intermediateusers in the path). At the end of a successful payment, every edge

2In practice, there is a subtle di�erence: In a bidirectional channel between Alice andBob, Bob can always return to Alice the bitcoins that she has already paid to him.However, if two unidirectional channels are used, Bob is limited to pay to Alice thecapacity of the edge Bob! Alice, independently of the bitcoins that he has receivedfrom Alice. Nevertheless, our simpli�cation greatly ease the understanding of the restof the paper and proposed algorithms can be easily extended to support bidirectionalchannels.

Same y!

Page 16: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Privacy in PCNs: Our Solution

✤ Our setting: P2P Network

✤ Our goal: ✤ On-chain operations: HTLC as in the Lightning Network

✤ Rest of cryptographic operations must be off-chain

✤ Full compatibility with the current Bitcoin script

✤ Our solution:✤ Fulgor: Based on Multi-hop HTLC

16

Page 17: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Multi-hop HTLC

✤ Building block: Non-interactive zero knowledge (ZKBoo [GMO16])

17

Alice Bob Cat

x0 : H(x0) = y0

x1 : H(x0 ⊕ x1) = y1

Page 18: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Multi-hop HTLC

✤ Building block: Non-interactive zero knowledge (ZKBoo [GMO16])

18

Alice Bob Cat

x0 : H(x0) = y0

x1 : H(x0 ⊕ x1) = y1 (x0 , y0)

H(x0) = y0?

Page 19: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Multi-hop HTLC

✤ Building block: Non-interactive zero knowledge (ZKBoo [GMO16])

19

Alice Bob Cat

x0 : H(x0) = y0

x1 : H(x0 ⊕ x1) = y1 s := (x1 , y1, y0, π)π : ∃ x0 s.t. H(x0 ⊕ x1) = y1 ∧ H(x0) = y0

V(s,π) = 1

Page 20: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Multi-hop HTLC

✤ Building block: Non-interactive zero knowledge (ZKBoo [GMO16])

20

Alice Bob Cat

x0 : H(x0) = y0

x1 : H(x0 ⊕ x1) = y1

s := (x1 , y1, y0, π)

π : ∃ x0 s.t. H(x0 ⊕ x1) = y1 ∧ H(x0) = y0

HTLC(Alice, Bob, 1, y1, 30)

Page 21: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Multi-hop HTLC

✤ Building block: Non-interactive zero knowledge (ZKBoo [GMO16])

21

Alice Bob Cat

x0 : H(x0) = y0

x1 : H(x0 ⊕ x1) = y1

s := (x1 , y1, y0, π)

π : ∃ x0 s.t. H(x0 ⊕ x1) = y1 ∧ H(x0) = y0

HTLC(Alice, Bob, 1, y1, 30) HTLC(Bob, Cat, 1, y0, 29)

Page 22: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Multi-hop HTLC

22

Alice Bob Cat

x0 : H(x0) = y0

x1 : H(x0 ⊕ x1) = y1

s := (x1 , y1, y0, π)

π : ∃ x0 s.t. H(x0 ⊕ x1) = y1 ∧ H(x0) = y0

HTLC(Alice, Bob, 1, y1, 30) HTLC(Bob, Cat, 1, y0, 29)

HTLC(Alice, Bob, 1, r1, 30) HTLC(Bob, Cat, 1, r0, 29)≈ ≈

Page 23: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Multi-hop HTLC

23

Alice Bob Cat

x0 : H(x0) = y0

x1 : H(x0 ⊕ x1) = y1

s := (x1 , y1, y0, π)

π : ∃ x0 s.t. H(x0 ⊕ x1) = y1 ∧ H(x0) = y0

HTLC(Alice, Bob, 1, y1, 30) HTLC(Bob, Cat, 1, y0, 29) x0x1 ⊕ x0

Page 24: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Multi-hop HTLC

✤ Soundness of NIZK => Bob does not loss coins

✤ Zero-knowledge of NIZK => Bob does not steal coins

24

Alice Bob Cat

x0 : H(x0) = y0

x1 : H(x0 ⊕ x1) = y1

s := (x1 , y1, y0, π)

π : ∃ x0 s.t. H(x0 ⊕ x1) = y1 ∧ H(x0) = y0

HTLC(Alice, Bob, 1, y1, 30) HTLC(Bob, Cat, 1, y0, 29) x0x1 ⊕ x0

Page 25: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Concurrency in PCNs

✤ Concurrent on-chain payments can be easily ordered by miners

✤ No user has a complete view of off-chain concurrent payments in a P2P network

✤ A blocking solution can lead to deadlocks

25

Alice to GabrielBob to Edward

Page 26: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Concurrency in PCNs

✤ Concurrent on-chain payments can be easily ordered by miners

✤ No user has a complete view of off-chain concurrent payments in a P2P network

✤ A blocking solution can lead to deadlocks

26

Alice to GabrielBob to Edward

Page 27: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Concurrency in PCNs

✤ Concurrent on-chain payments can be easily ordered by miners

✤ No user has a complete view of off-chain concurrent payments in a P2P network

✤ A blocking solution can lead to deadlocks

27

Alice to GabrielBob to Edward

Page 28: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Concurrency in PCNs

✤ Concurrent on-chain payments can be easily ordered by miners

✤ No user has a complete view of off-chain concurrent payments in a P2P network

✤ A blocking solution can lead to deadlocks

28

Alice to GabrielBob to Edward

Page 29: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Concurrency in PCNs: Our Solution

✤ A non-blocking solution (Rayo): at least one payment finishes

✤ Main idea: Use global transaction identifiers

29

Alice to GabrielBob to Edward

T2

T1

Abort T1

Queue T2

Page 30: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Concurrency vs Privacy Tradeoff

✤ Global identifiers leak transaction ID to intermediate users

✤ Non-blocking solutions cannot achieve strong privacy

30

P0P1

P0

P1

P*0P*1

P*1

P*0Anonymity set for P0

BLO

CK

ING

(Ful

gor)

P0P1

P0

P1

P0P1

P1

P0Anonymity set for P0

NO

N-B

LOC

KIN

G(R

ayo)

Page 31: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Implementation and Performance

✤ Running time of our solution largely dominated by NIZK✤ Creating a proof requires 309 ms. Proof verification requires 130 ms

✤ Proof size: 1.65MB

✤ 5-hop payment:✤ Non-private (LN): 609 ms

✤ Private: 1929 ms and ~ 5 MB (Proofs are not included in the blockchain)

31

Page 32: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Conclusions

✤ Define the security and privacy properties of interest in PCN

✤ Inherent tradeoff between concurrency and privacy

✤ Fulgor and Rayo: two approaches for concurrency and privacy

✤ Our solutions are efficient, compatible with Bitcoin script and without storage overhead in the blockchain

32

Page 33: Concurrency and Privacy with Payment Channel Networks - Scaling Bitcoin · The Bitcoin protocol has been updated recently to fully support payment channels. In particular, transaction

Thank you for your attention!

Giulio Malavolta, Pedro Moreno-Sanchez,

Aniket Kate, Matteo Maffei, and Srivatsan Ravi

@pedrorechez

@aniketpkate @matteo_maffei

Paper: eprint.iacr.org/2017/820