Welcome to the 2nd Interledger Workshop - ILP...Interledger Workshop Welcome to the 2nd July 6, 2016...

Preview:

Citation preview

Interledger WorkshopWelcome to the 2nd

July 6, 2016 @ Level39

Interledger

Adrian Hope-Bailie

Intro to the Project

Live Stream: https://bluejeans.com/795795755

IRC: irc.w3.org #interledger(to get on the queue to ask a question type q+)

Wifi: L39-Visitor

Tweet @interledger or use the hashtag #interledger

09:15 - 09:30 Intro to the Interledger project

09:30 - 10:00 An Interledger Overview

10:00 - 10:45 ILP Packet, Addressing and Routing

10:45 - 11:00 Coffee/Tea break

11:00 - 11:45 Building with ILP: The Stack, Ledger Plug-Ins and “Trustlines”

11:45 - 12:00 Application/Setup Protocols and the W3C Web Payments activity

12:00 - 13:00 Lunch

13:00 - 13:30 Weaving the ILP fabric into BigchainDB

13:30 - 14:00 Demonstrating Real-Money Payments using ILP

14:00 - 17:30 Interledger Hackathon (Coffee/Tea/Snacks available throughout)

Agenda For Today

Interledger Project (interledger.org)

● Community-developed protocol(s) for connecting payment networks

● A vision for the Internet of Value

W3C Community Group (w3.org/community/interledger)

● Co-chaired by:

○ Adrian Hope-Bailie (Ripple) and

○ Dimitri De Jonghe (Ascribe/BigChainDB)

● Mailing list, IRC, Blog, Member Management

What Is the Interledger project?

October 2015 Published the Interledger White Paper

November 2015 Launched Interledger Community Group at W3C (190+ participants)

February 2016 First workshop in San Francisco (50+ attendees)

February 2016 First draft of Crypto-conditions RFC

March 2016 First draft of Architecture Overview (ILP - RFC 1)

June 2016 Re-launch of interledger.org website

July 2016 Second workshop in London (150+ attendees)

July 2016 IETF Berlin - BoF session - Thursday 21 July at 16:20

A Little History

Interledger

Stefan Thomas

An Overview

The State of Payments Is Sad.

Today’s Infrastructure

Low-Volume High-Value Slow Batch Payments

9

Designed for High Value or Batch Payments

A System From a Different Time

Photo by NASA

Where Is The Competition?

Photo: CountryStyle Photography

12

Accepted Payment MethodsPrineta.com

Plenty of Innovation

But: Global Reach Is Prohibitively Expensive

13

Nostro account costs: liquidity, regulations, operations, risk and compliance

BACK TOBASICS

Ledgers Track Accounts and Balances

Sender RecipientLedger

16

Central Ledger Model

Distributed Ledger Model

The World Will Never AgreeOn One Ledger

Diversity Is A Good Thing

20

BlockchainACH Mobile Money Card Networks

But Why Is Everything Disconnected?

21

BlockchainACH Mobile Money Card Networks

How Is Money Transferred Across Ledgers?

22

We Know That There Must Be Local Transfers

23

Alice 100

??? 0

??? 110

Bob 0100 110

Connectors Link Two Ledgers

Connector

Alice 100

Chloe 0

Chloe 100

Bob 0100 100

24

Bilateral Connections Don't Scale

25

Bilateral Connections Don't Scale

26

O(n2)

Bilateral Connections Don't Scale

27

O(n2)

Networks Do Scale

28

O(n)

Networks Do Scale

29

O(n)

Sending With No Direct Connection

30

O(n)

We Need Multiple Hops

31

O(n)

BUT HOW?

TO THEWORKSHOP!

TO THEWORKSHOP!

Learning From History

Internet: Network of Networks

The internet protocol implements two basic functions:addressing and fragmentation.

— RFC 791

Internet: Network of Networks

204.28.124.148IP Address

Internet Architecture

IP

WIFI BLUETOOTH ETHERNET

Internetwork

Network

Transport TCP UDP

Application HTTP SMTP NNTP NTP RTP

InterledgerThe protocol for connecting ledgers.

Interledger Architecture

ILP

ISO 20022BITCOIN ETHEREUM

Interledger

Network

Application SPSP PPSP ...

Where?How much?

Interledger In One Slide (Really)

address: "us.wf.bob"How much?

Interledger In One Slide (Really)

address: "us.wf.bob"amount: "1023.20"

Interledger In One Slide (Really)

address: "us.wf.bob"amount: "1023.20"When?Why?

Interledger In One Slide (Really)

address: "us.wf.bob"amount: "1023.20"expiry: "2016-07-06T09:00:10Z"Why?

Interledger In One Slide (Really)

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

Interledger In One Slide (Really)

Now We Can Support Longer Chains

47

The Interledger

BlockchainACH Mobile Money Card Networks

49

A Standard for Real-Time Payments Across Networks

Show us!

How It Works

Evan Schwartz & Stefan Thomas

ILP Packet, Addressing, Routing

Ledgers Track Accounts and Balances

Sender RecipientLedger

52

But Not Everyone Is on the Same Ledger

53

Connectors Relay Money

Connector

Alice 100

Chloe 0

Chloe 110

Bob 0100 110

54

Connectors Convert Currencies

Connector

Alice 100

Chloe 0

Chloe 110

Bob 0100 110

55

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

57

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

60

us.wf.bob1023.20

Connector Forwards the Packet via Another Transfer

Alice 0

Chloe 100

Chloe 110

Bob 0

61

us.wf.bob1023.20

110

Paths Can Be Short

62

Or Long

63

Uh oh...

64

Can we trust connectors?

If Connectors Fail, Would We Lose Money?

Alice 100

Chloe 0

Chloe 110

Bob 0

?

100

66

Holds Provide Security

Ledgers Provide Hold Functionality

Alice 100

On Hold 0

Chloe 0

Chloe 110

On Hold 0

Bob 0

68

Holds Are Dependent on Conditions + Expiries

69

EXECUTEROLLBACK

Condition Fulfillment Executes Transfer

70

EXECUTEROLLBACK

Timeouts Cause Funds to Be Returned

71

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

73

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

74

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

75

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

76

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

77

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

? ?

Recipient Triggers Payment by Fulfilling the Condition

Transfers Are Executed Right to Left

79

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

80

? ?

Signature Fulfills Condition, Ledger Releases Held Funds

Alice 0

On Hold 100

Chloe 0

Chloe 0

On Hold 110

Bob 0110

81

?

How Does the Connector Get Reimbursed?

Alice 0

On Hold 100

Chloe 0

Chloe 0

On Hold 0

Bob 110

82

?

?

Connector is Notified That Funds Have Been Released

Alice 0

On Hold 100

Chloe 0

Chloe 0

On Hold 0

Bob 110

83

?

Connector Passes on the Recipient’s Signature

Alice 0

On Hold 100

Chloe 0

Chloe 0

On Hold 0

Bob 110

84

?

Receipt Releases Funds from Hold

Alice 0

On Hold 100

Chloe 0

Chloe 0

On Hold 0

Bob 110

85

100

Sender Gets Non-Repudiable Proof of Payment

Alice 0

On Hold 0

Chloe 100

Chloe 0

On Hold 0

Bob 110

86

87

COMMITMENT

Transfers Are Committed L2R, Executed R2L

EXECUTION

(Now) Paths Can Be Short

88

Or Long

89

Or Long (And Still Secure)

90

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

96

Where does this rate come from?

Liquidity Curves Determine Exchange Rates

98

Connie

Connectors Set Rates per Ledger Pair

99

Ledger A

Ledger B

Ledger C

Ledger DA ⇒ B

A ⇒ C

A ⇒ D

Connectors Advertise Their Routes

100

A ⇒ BLedger Z Carmine

Synthetic Routes Are Created

101

A ⇒ BZ ⇒ A

Synthetic Routes Are Created

102

A ⇒ BZ ⇒ A

= Z ⇒ A ⇒ B

And Added to the Routing Table

103

Z ⇒ A ⇒ B

Connie

Z ⇒ A ⇒ C

Connie

Z ⇒ A ⇒ D

Connie

Routing Tables Grow Quickly

104

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?

Coffee Break!

Building with ILP

Evan Schwartz

Stack, Clients, Ledger Plugins

The “Five Bells” Stack

f-b-wallet-client f-b-wallet-client

f-b-wallet f-b-wallet

f-b-ledger f-b-ledger

f-b-connector

Application

Ledger

Interledger

What about other ledgers?

Supporting Different Ledger Types

f-b-ledger

f-b-connector

Ledger

Interledger js-ilp

Plugins Provide Abstractions Over Different Ledgers

f-b-ledger

f-b-connector

Ledger

Interledger js-ilp

js-ilp-plugin-bells

js-ilp-plugin-bells

IL-RFC-4: Ledger Plugin InterfaceAn abstraction interface for Interledgerclients and connectors to communicate and route payments across different ledger protocols.

github.com/interledger/rfcs

github.com/interledger/rfcs

Plugins For Any Type of Ledger

???-ledger

f-b-connector

Ledger

Interledger js-ilp

js-ilp-plugin-???

js-ilp-plugin-???

What if there is no ledger?

ILP Trustlines

Ben Sharafian

“Dial-Up” ILP Using Credit

ILP-EnablementDoing It 'The Right Way'

ILP-EnabledLedger

LedgerPlugin

Alice 100

Connector 0

The Normal ILP Flow (No Trustlines)

Ledger PluginConnector

Adoption To-DateStatus: Not Great

???

An ILP Ledger Is Not Always Available

Connector(The Nerd)

Developer(The Noob)

Protocols Have Humble Beginnings

Connector(The Nerd)

ILP-PluginVirtual

Developer(The Noob)

ILP Flow With Trust-lines

Balance 15

Connector(The Nerd)

ILP-PluginVirtual

Developer(The Noob)

ILP Flow With Trust-lines

ACH, SEPA, PayPal, ...

Balance 15

Connector(The Nerd)

ILP-PluginVirtual

Developer(The Noob)

ILP Flow With Trust-lines

Cash

Balance 15

Recommended