Lock them up!
Deploying P2SH multi-signature, CLTV time-locked Bitcoin transactions in custody solutions
Good news everyone!
Institutions want Bitcoin.
But a lack of qualified custodians is a choke point for all but the most aggressive.
API keys authorizing a P2PKH single signature transaction
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?
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
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.
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!