How ILP Works

Post on 11-Apr-2017

186 views 0 download

Transcript of How ILP Works

How It Works

Evan Schwartz & Stefan Thomas

ILP Packet, Addressing, Routing

Ledgers Track Accounts and Balances

Sender RecipientLedger

2

But Not Everyone Is on the Same Ledger

3

Connectors Relay Money

Connector

Alice 100

Chloe 0

Chloe 110

Bob 0100 110

4

Connectors Convert Currencies

Connector

Alice 100

Chloe 0

Chloe 110

Bob 0100 110

5

How do we ask a connectorto pass on a payment?

We Need a Way to Send Instructions to Connectors

Alice 100

Chloe 0

Chloe 110

Bob 0

7

Um, excuse me? ...hello there…? ZZZZZZ

address: "us.wf.bob"

Interledger In One Slide

Hierarchical identifier

Decimal amountamount: "1023.20"

us.wf.bob1023.20

Sender Attaches Packet to Local Transfer

Alice 100

Chloe 0

Chloe 110

Bob 0100

10

us.wf.bob1023.20

Connector Forwards the Packet via Another Transfer

Alice 0

Chloe 100

Chloe 110

Bob 0

11

us.wf.bob1023.20

110

Paths Can Be Short

12

Or Long

13

Uh oh...

14

Can we trust connectors?

If Connectors Fail, Would We Lose Money?

Alice 100

Chloe 0

Chloe 110

Bob 0

?

100

16

Holds Provide Security

Ledgers Provide Hold Functionality

Alice 100

On Hold 0

Chloe 0

Chloe 110

On Hold 0

Bob 0

18

Holds Are Dependent on Conditions + Expiries

19

EXECUTEROLLBACK

Condition Fulfillment Executes Transfer

20

EXECUTEROLLBACK

Timeouts Cause Funds to Be Returned

21

EXECUTEROLLBACK

address: "us.wf.bob"amount: "1023.20"expiry: "2016-07-06T09:00:10Z"condition: "cc:0:3:4a7DEpj8f9..."

Interledger In One Slide (Really)

Timestamp (ISO 8601)

Crypto Condition

Funds Are Committed From Left to Right

23

Alice 100

On Hold 0

Chloe 0

Chloe 110

On Hold 0

Bob 0

COMMITMENT

Sender Puts Funds On Hold

Alice 100

On Hold 0

Chloe 0

Chloe 110

On Hold 0

Bob 0

100

24

us.wf.bob1023.20cc:0:3:4a...2016-07...

Connector Gets Notification of Funds on Hold

Alice 0

On Hold 100

Chloe 0

Chloe 110

On Hold 0

Bob 0

25

us.wf.bob1023.20cc:0:3:4a...2016-07...

?

Connector Puts Funds on Hold

Alice 0

On Hold 100

Chloe 0

Chloe 110

On Hold 0

Bob 0

26

us.wf.bob1023.20cc:0:3:4a...2016-07...

110?

Recipient Gets Notification of Funds on Hold

Alice 0

On Hold 100

Chloe 0

Chloe 0

On Hold 110

Bob 0

27

us.wf.bob1023.20cc:0:3:4a...2016-07...

? ?

Recipient Triggers Payment by Fulfilling the Condition

Transfers Are Executed Right to Left

29

Alice 0

On Hold 100

Chloe 0

Chloe 0

On Hold 110

Bob 0

EXECUTION

? ?

Recipient Signs Receipt

Alice 0

On Hold 100

Chloe 0

Chloe 0

On Hold 110

Bob 0

30

? ?

Signature Fulfills Condition, Ledger Releases Held Funds

Alice 0

On Hold 100

Chloe 0

Chloe 0

On Hold 110

Bob 0110

31

?

How Does the Connector Get Reimbursed?

Alice 0

On Hold 100

Chloe 0

Chloe 0

On Hold 0

Bob 110

32

?

?

Connector is Notified That Funds Have Been Released

Alice 0

On Hold 100

Chloe 0

Chloe 0

On Hold 0

Bob 110

33

?

Connector Passes on the Recipient’s Signature

Alice 0

On Hold 100

Chloe 0

Chloe 0

On Hold 0

Bob 110

34

?

Receipt Releases Funds from Hold

Alice 0

On Hold 100

Chloe 0

Chloe 0

On Hold 0

Bob 110

35

100

Sender Gets Non-Repudiable Proof of Payment

Alice 0

On Hold 0

Chloe 100

Chloe 0

On Hold 0

Bob 110

36

37

COMMITMENT

Transfers Are Committed L2R, Executed R2L

EXECUTION

(Now) Paths Can Be Short

38

Or Long

39

Or Long (And Still Secure)

40

The Interledger

address: "us.wf.bob"amount: "1023.20"expiry: "2016-07-06T09:00:10Z"condition: "cc:0:3:4a7DEpj8f9..."

Enabled By a Simple Packet Format

How do those addresses work?

address: "us.wf.bob"ledger account

Interledger Addresses

address: "us.wf.bob.mary"ledger subledger

Interledger Addresses

account

Connectors Convert Currencies

Connector

Alice 100

Chloe 0

Chloe 110

Bob 0100 110

46

Where does this rate come from?

Liquidity Curves Determine Exchange Rates

48

Connie

Connectors Set Rates per Ledger Pair

49

Ledger A

Ledger B

Ledger C

Ledger DA ⇒ B

A ⇒ C

A ⇒ D

Connectors Advertise Their Routes

50

A ⇒ BLedger Z Carmine

Synthetic Routes Are Created

51

A ⇒ BZ ⇒ A

Synthetic Routes Are Created

52

A ⇒ BZ ⇒ A

= Z ⇒ A ⇒ B

And Added to the Routing Table

53

Z ⇒ A ⇒ B

Connie

Z ⇒ A ⇒ C

Connie

Z ⇒ A ⇒ D

Connie

Routing Tables Grow Quickly

54

Z ⇒ A Local

Z ⇒ A ⇒ B

Connie

Z ⇒ A ⇒ C

Connie

Z ⇒ A ⇒ D

Connie

Z ⇒ C Local

Z ⇒ C ⇒ E Chao

Z ⇒ C ⇒ F Carl

Autonomous Systems

Core vs. Periphery

Routing a Payment

us.wf.bob.car1023.20

First We Route Up

us.wf.bob.car1023.20

Then Across

us.wf

us.wf.bob.car1023.20

Then Across

us.wf

us.wf.bob.car1023.20

And Finally Down

us.wf

us.wf.bob.car1023.20

us.wf.bob

And Finally Down

us.wf

us.wf.bob

us.wf.bob.carus.wf.bob.car1023.20

Some Ledgers Aren't Real Ledgers

us.wf

us.wf.bob

us.wf.bob.car

us.*

Questions?