Lock them up!

Deploying P2SH multi-signature, CLTV time-locked Bitcoin transactions in custody solutions

New York Fed

Good news everyone!

Institutions want Bitcoin.

But a lack of qualified custodians is a choke point for all but the most aggressive.

good news


Pay-to-PubKey Hash

Simplest transaction type

One PubKeyHash, requiring one valid signature


Pay-to-ScriptKey Hash

All 80+ OP codes available

Standard of up to 3 signatures, technical limit of 20

Keep it standard when you can

Single Signature

API keys authorizing a P2PKH single signature transaction

Single Signature

Bitcoin assembly code

What does a P2PKH transaction loook like?

PubKeyScript - you can move my UTXOs if you can do one simple thing!


ScriptSig - I can do that one simple thing, here's my proof!

<sig> <pubKey> OP_DUP OP_HASH160 <hash160(pubKey)> OP_EQUAL OP_CHECKSIG

P2SKH transactions have a lot of flexibility. How about requiring two signatures and the passage of time?

Two man rule
Multi Signature

Bitcoin assembly code

What does our P2SKH transaction loook like?

PubKeyScript - you can move my UTXOs if you can do two simple things and only after some point in time!

OP_HASH160 <redeemScript> OP_EQUAL

ScriptSig - I've waited for that block to be mined, and I can do those two things, here's my proof!

  OP_0 <sigA> <sigB> <redeemScript> OP_HASH160 <hash160(redeemScript)> OP_EQUAL

The reference client should be the weakest link in your system.

A theoretically perfect interface passes the security properties of the reference client to the end user(s) without increasing the attack/loss surface.

Multi Signature

Minimal setup for startups or small teams?

⚠️ Two or three desktops (preferred) or laptops.
⚙️ All the software you need is free and open source.
🚨 You need to think things through, and make back-ups!