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

P2PKH

Pay-to-PubKey Hash




Simplest transaction type

One PubKeyHash, requiring one valid signature

P2SKH

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!

OP_DUP OP_HASH160 <hash160(pubKey)> OP_EQUAL OP_CHECKSIG


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
/Users/rusticbison/Documents/presentations/cryptovalleyconference-2019/cvc-2019/public/static/images/p2sh-timelock.png
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!

<blockNumber> OP_CHECKLOCKTIMEVERIFY OP_DROP OP_2 <pubKeyA> <pubKeyB> OP_2 OP_CHECKMULTISIG
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
https://images.unsplash.com/photo-1503792243040-7ce7f5f06085?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1915&q=80

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!

laptop



laptop