customer hand-off between bitcoin partners

27
Customer hand-off between Bitcoin partners Joris Bontje @mids106

Upload: mids106

Post on 29-Jan-2015

103 views

Category:

Technology


0 download

DESCRIPTION

How to do a customer hand-off between Bitcoin partners using signed request urls.

TRANSCRIPT

Page 1: Customer hand-off between Bitcoin partners

Customer hand-off between Bitcoin partners

Joris Bontje @mids106

Page 2: Customer hand-off between Bitcoin partners

Use Case

Page 3: Customer hand-off between Bitcoin partners
Page 4: Customer hand-off between Bitcoin partners
Page 5: Customer hand-off between Bitcoin partners
Page 6: Customer hand-off between Bitcoin partners

Making the connection

Page 7: Customer hand-off between Bitcoin partners

Copy / paste bitcoin address

Not very user friendly “Scary address”

First time user are anxious about their payments

Can’t detect referring partner

Poor customer support

Page 8: Customer hand-off between Bitcoin partners

Link via URL

User no longer has to enter the address himself

Can detect wallet type / partner (referrer)

Better customer support

Not secure: All kind of scams possible

Page 9: Customer hand-off between Bitcoin partners

Using API

Not “peer to peer”; unequal partners

How do you hand over user sessions?

Everybody has their own API

Page 10: Customer hand-off between Bitcoin partners

Signed links

Uses OAuth 1.0a signing scheme (used by Twitter)

Requests signed with shared secret (HMAC-SHA1)

Communication goes via the browser; no internal API or callbacks required

Existing scheme; “don’t invent your own crypto”

Page 11: Customer hand-off between Bitcoin partners

Implementation

Page 12: Customer hand-off between Bitcoin partners

Request

Page 13: Customer hand-off between Bitcoin partners

Security

Request signed with shared secret (HMAC-SHA1)

Limited time validity (5 minutes by default)

Prevent replay attacks with nonce

Shared secret exchanged out-of-band (PGP)

Page 14: Customer hand-off between Bitcoin partners

Protocol + Code

http://bit.ly/1cBq1Ka

Page 15: Customer hand-off between Bitcoin partners

Demo

Page 16: Customer hand-off between Bitcoin partners

Buy Bitcoin

Page 17: Customer hand-off between Bitcoin partners
Page 18: Customer hand-off between Bitcoin partners
Page 19: Customer hand-off between Bitcoin partners
Page 20: Customer hand-off between Bitcoin partners

Sell Bitcoin

Page 21: Customer hand-off between Bitcoin partners
Page 22: Customer hand-off between Bitcoin partners
Page 23: Customer hand-off between Bitcoin partners
Page 24: Customer hand-off between Bitcoin partners

? @mids106

Image by: casascius

Page 25: Customer hand-off between Bitcoin partners

Protocol + Code

http://bit.ly/1cBq1Ka

Page 26: Customer hand-off between Bitcoin partners

BIPS 0070

Page 27: Customer hand-off between Bitcoin partners

BIP 0070: Payment Protocol

Not yet in production *)

Uses SSL / Certificate Authorities

Relies on accessing a third party web page

Might only work in 1 direction (selling bitcoins)