multi-sig recipes

27
Multi-Sig Recipes Ben Davenport, BitGo @bendavenport [email protected]

Upload: ben-davenport

Post on 14-Jul-2015

332 views

Category:

Software


3 download

TRANSCRIPT

Page 1: Multi-Sig Recipes

Multi-Sig RecipesBen Davenport, BitGo

@bendavenport [email protected]

Page 2: Multi-Sig Recipes

Goal

Learn some ways to use multi-sig to provide

enhanced security for your service and unlock

new possibilities for users.

Page 3: Multi-Sig Recipes

Agenda

● Ingredients

● Recipes

● Real world examples

Page 4: Multi-Sig Recipes

Ingredient: Multi-Sig

● Introduced in BIP 11 (Oct 2011)

● OP_CHECKMULTISIG

● Requires M-of-N keys to sign

● Eliminates a single point of failure (the key)

● Direct use supplanted by indirect (P2SH)

Page 5: Multi-Sig Recipes

Ingredient: P2SH

● Introduced in BIP 16 (Mar 2012)o P2PKH: 1DRW7nQ4adMk7xPTXf2KeB7AxzDtX1fNrU

o P2SH: 3Q8pEaNZeaC6pHtaFRsTUrFhdrH8e6hkBe

● ~8% of bitcoin currently in P2SH addresses

● Mainly used for multi-sig today

Page 6: Multi-Sig Recipes

The Recipes

● Use basic ingredients of P2SH and multi-sig

● Add additional techniques

● Describe security for a single wallet

● Combine recipes as necessary

Page 7: Multi-Sig Recipes

But First: Multi-Sig Diagrams

● Single key is easy to reason about

● Multi-sig => Combinatorial explosion

● Need a visual language

● Represent as graphso Nodes = entities

o Directed edges = control (full or partial)

Page 8: Multi-Sig Recipes

Recipe: Good Old Single-Key

As simple as it gets:

Page 9: Multi-Sig Recipes

Recipe: 2-of-2 Multi-Device

Page 10: Multi-Sig Recipes

2-of-2 Multi-Device Examples

● Multiple computers o BitcoinD createmultisigaddress

o Armory lockboxes

● Computer + Phoneo Bitcoin Authenticator

● Computer + Hardware Walleto Trezor

o Ledger

Page 11: Multi-Sig Recipes

Recipe: Joint Wallet (M-of-N)

Page 12: Multi-Sig Recipes

Joint Wallet Examples

● Husband & Wife

● Custodial wallet for child

● Business partnership

Page 13: Multi-Sig Recipes

Recipe: Trustless Escrow

Page 14: Multi-Sig Recipes

Multi-Sig Escrow Examples

● HashTrust

● BitRated

● OpenBazaar

Page 15: Multi-Sig Recipes

Ingredient: Co-Signing Service

● 2 keys held by customer, 1 key by

service

● User creates and half-signs transaction,

then sends to co-signer

● Co-signer executes security and logic

Page 16: Multi-Sig Recipes

Recipe: Co-Signed Wallet (1 user)

Page 17: Multi-Sig Recipes

Co-Signed Wallet Example

● Core model for all BitGo wallets

● Enables additional control / securityo Require 2FA from user

o Time-delays / out-of-band notification

o Transaction velocity limits

o White/black-listing of addresses

o Apply fraud detection algos

Page 18: Multi-Sig Recipes

Recipe: Multi-User Co-Signed Wallet

Page 19: Multi-Sig Recipes

● Per-day limits / Per-transaction limits

● Destination bitcoin address whitelists

● Time of day restrictions

● Human approvals - User/password/2FA

● Red button (kill switch)

● Blacklisting, IP lockdown, ...

● External webhooks

BitGo Co-Signer Logic

Page 20: Multi-Sig Recipes

Corporate Treasury

● Multiple users on a wallet

o Require 2FA and User Auth

● Lower level emp can spend limited amounts

● CEO, CFO able to approve large withdrawals

● Can add/remove privileges of users at any time

● Example customers: SecondMarket, ChangeTip, BitFury

Page 21: Multi-Sig Recipes

ATM Provider

● Shared wallet with multiple machines

● One access token per machine

● IP lockdown for each token

● Tokens may be individually revoked

● Example customers: Lamassu ATMs

Page 22: Multi-Sig Recipes

Exchange Hot Wallet

● Per-day limit

● Callback via webhook

● Enforce human approver for large transactions

● Examples: Bitstamp, BitSpark, BitQuick

Page 23: Multi-Sig Recipes

Exchange-owned Segregated Wallet

● One wallet per exchange user

● Per-user-wallet policy granularity

● Withdrawals require user 2FA

● Transactions to house wallet whitelisted

Page 24: Multi-Sig Recipes

Recipe: Exchange Segregated Wallet

Page 25: Multi-Sig Recipes

Exchange+User Joint Wallet

● User and exchange each own a private key

● Instant confirmation

● Withdrawals depend on

o Webhook call to exchange to ensure user has

sufficient margin

Page 26: Multi-Sig Recipes

We Want to Work with You

How can we help you?

● Co-develop new recipes

● Enhance your security

● Improve your operational efficiency

Page 27: Multi-Sig Recipes

Thank you

visit: https://www.bitgo.com/platform

twitter: @bendavenport

email: [email protected]