Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA...

53
Interledger Adrian Hope-Bailie Project Overview and Update

Transcript of Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA...

Page 1: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Interledger

Adrian Hope-Bailie

Project Overview and Update

Page 2: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←
Page 3: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Ledgers Track Accounts and Balances

Sender RecipientLedger

3

Page 4: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Central Ledger Model

Page 5: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Distributed Ledger Model

Page 6: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

The World Will Never AgreeOn One Ledger

Page 7: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Diversity Is A Good Thing

7

BlockchainSEPA M-PESA Visa

Page 8: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

But Why Is Everything Disconnected?

8

BlockchainSEPA M-PESA Visa

Page 9: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Learning From History

Page 10: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Internet: Network of Networks

Page 11: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Internet Architecture

IP

TCP UDP

HTTP SMTP NTPRTP DNS ...

FIREFOX THUNDERBIRD WHATSAPP ...

PPPETHERNET

WIFI COPPER BLUETOOTH SAT

Page 12: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Internet: Network of Networks

204.28.124.148IP Address

Page 13: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

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

— RFC 791

Page 14: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

InterledgerThe protocol for connecting ledgers.

Page 15: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Interledger Architecture

ILP

OTP UTPATP

APPLICATIONS

ACH SEPABITCOIN PAYPAL

Page 16: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

amount: "1023.20"← Hierarchical identifieraddress: "us.wf/bob"← Decimal amount

ledger account

Interledger In One Slide

Page 17: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Ledgers Track Accounts and Balances

Sender RecipientLedger

17

Page 18: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

But Not Everyone Is on the Same Ledger

18

Page 19: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

We Know That There Must Be Local Transfers

19

Alice 100

??? 0

??? 110

Bob 0100 110

Page 20: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Connectors Relay Money

Connector

Alice 100

Chloe 0

Chloe 110

Bob 0100 110

20

Page 21: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

What If theConnector Drops It?

21

Page 22: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Money Would Be Lost

Alice 100

Chloe 0

Chloe 110

Bob 0

?

100

22

Page 23: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Holds Provide Security

23

Page 24: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Holds Provide Security

Alice 100

On Hold 0

Chloe 0

Chloe 110

On Hold 0

Bob 0

24

Page 25: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Funds Are Committed From Left to Right

25

Alice 100

On Hold 0

Chloe 0

Chloe 110

On Hold 0

Bob 0

COMMITMENT

Page 26: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Sender Puts Funds On Hold

Alice 100

On Hold 0

Chloe 0

Chloe 110

On Hold 0

Bob 0

100

26

condition: CAamount: 110.00address: us.wf/bob

amount: 100address: Chloe

Page 27: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Connectors Is Notified of Funds On Hold

Alice 0

On Hold 100

Chloe 0

Chloe 110

On Hold 0

Bob 0

27

condition: CAamount: 110.00address: us.wf/bob

amount: 100address: Chloe

Page 28: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Connector Puts Funds On Hold

Alice 0

On Hold 0

Chloe 0

Chloe 110

On Hold 0

Bob 0

28

110

condition: CAamount: 110.00address: us.wf/bob

amount: 110address: Bob

Page 29: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Receiver is Notified of Funds On Hold

Alice 0

On Hold 100

Chloe 0

Chloe 0

On Hold 110

Bob 0

29

condition: CAamount: 110.00address: us.wf/bob

amount: 110address: Bob

Page 30: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Transfers Are Executed Right to Left

30

Alice 0

On Hold 100

Chloe 0

Chloe 0

On Hold 110

Bob 0

EXECUTION

Page 31: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Recipient Signs Receipt

Alice 0

On Hold 100

Chloe 0

Chloe 0

On Hold 110

Bob 0

31

fulfillment: F(CA)

Page 32: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Receipt Releases Funds from Hold

Alice 0

On Hold 100

Chloe 0

Chloe 0

On Hold 110

Bob 0110

32

fulfillment: F(CA)

Page 33: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

How Does the Connector Get Reimbursed?

Alice 0

On Hold 100

Chloe 0

Chloe 0

On Hold 0

Bob 110

33

?

Page 34: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Connector is Notified that funds have been released

Alice 0

On Hold 100

Chloe 0

Chloe 0

On Hold 0

Bob 110

34

fulfillment: F(CA)

Page 35: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Connector Passes on the Receipt

Alice 0

On Hold 100

Chloe 0

Chloe 0

On Hold 0

Bob 110

35

fulfillment: F(CA)

Page 36: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Receipt Releases Funds from Hold

Alice 0

On Hold 100

Chloe 0

Chloe 0

On Hold 0

Bob 110100

36

fulfillment: F(CA)

Page 37: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Sender has Non-Repudiable Proof of Payment

Alice 0

On Hold 0

Chloe 100

Chloe 0

On Hold 0

Bob 110

37

fulfillment: F(CA)

Page 38: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

38

COMMITMENT

Transfers Are Committed L2R, Executed R2L

EXECUTION

Page 39: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Paths Can Be Short

39

Page 40: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Or Long

40

Page 41: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Or Even Longer

41

Page 42: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

The Interledger

Page 43: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

BlockchainSEPA M-PESA Visa

43

A Standard for Real-Time Payments Across Networks

Page 44: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Interledger.org

Page 45: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Setting up an Interledger payment requires a few things:

● DiscoveryResolve and discover receiving ledger services from receiver’s account identifier

● QueryQuery receiving ledger to get currency, precision etc

● QuoteGet a quote from the network

● SetupPrepare the ILP packet (get condition etc)

Page 46: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

The “Simple Payment Setup Protocol”

● DiscoveryUse WebFinger to resolve account@ledger identifiers

● QueryStandard Web APIs for getting receiver info

● QuoteGet a quote from the network

● SetupStandards Web API for getting a condition from the receiver

Page 47: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

The “Simple Payment Setup Protocol” - Discovery

Webfinger (RFC 7033) to look up an identifier (e.g. [email protected])

GET /.well-known/webfinger?resource=acct%3Abob%40red.ilpdemo.org HTTP/1.1

Host: red.ilpdemo.org

Accept: application/json

HTTP/1.1 200 OK

Content-Type: application/json

{

"subject": "acct:[email protected]",

"links": [

{

"rel": "https://interledger.org/rel/receiver",

"href": "https://red.ilpdemo.org/api/receivers/bob"

}

]

}

Page 48: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

The “Simple Payment Setup Protocol” - Query

Two receiver types:

PayeePayee information consists of basic account details. Amounts are chosen by the sender.

InvoiceInvoice information includes an exact amount as well as the status of the invoice. (Invoices can only be paid once.)

Page 49: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

The “Simple Payment Setup Protocol” - Quote

● Quoting can be done using a quoting protocol

● Getting a quote is done by asking next connector

● Could be multiple quoting protocols based on both dynamic queries or static data

Page 50: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

The “Simple Payment Setup Protocol” - Setup

POST /api/receiver/bob/payments HTTP/1.1

Host: red.ilpdemo.org

Accept: application/json

{

"amount": "10.40",

"source_identifier": "[email protected]",

"memo": "Hey Bob!"

}

HTTP/1.1 201 Created

Content-Type: application/json

{

"receipt_condition": "cc:1:1:47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU:1"

}

Page 51: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Project Activity Update

● Working implementations from variety of contributors● 190 community group participants● 50+ attendees at first workshop in San Francisco● 150+ registered for workshop in London on 6 July● IETF BoF scheduled for 21 July● Collab with Christopher Allen and Peter Todd on Smart

Signatures/Dex/Crypto-conditions● Plans to collab with Lightning community on payment

channels and integrating crypto-ledgers into the Interledger

Page 52: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

What’s next for the W3C?

● Implementations will drive standardization○ BigchainDB/Ascribe.io○ SkuChain○ Financial Inclusion projects○ Multiple Wallets○ Crypto-ledger “plugins”

● Formalization of payment setup protocols will likely be done in a W3C WG

● A payment setup protocol will likely also be spec’d as a payment method by the WG

Page 53: Interledger - World Wide Web Consortium · 7/1/2016  · ILP OTP UTP ATP APPLICATIONS ACH SEPA BITCOIN PAYPAL. amount: "1023.20" address: "us.wf/bob" ← Hierarchical identifier ←

Q&A