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