Thread
In March of this year, I founded an insurance company, @AnchorWatchRisk.
Our mission is to transform how #Bitcoin is treated in insurance. Today, custodians offer fractional reserve insurance, and are single points of failure.
We can do better.
Check out how 🧵👇
1/25
Our mission is to transform how #Bitcoin is treated in insurance. Today, custodians offer fractional reserve insurance, and are single points of failure.
We can do better.
Check out how 🧵👇
1/25
Today, insurance for bitcoin and digital assets are based on a blend of specie insurance (think gold in a vault), and cybersecurity policies.
The problem is, neither approach accurately prices the risk and robustness of #Bitcoin. Let me explain.
2/25
The problem is, neither approach accurately prices the risk and robustness of #Bitcoin. Let me explain.
2/25
You either throw your Bitcoin keys in a bank vault with a custodian, or you distribute shards of keys across many internet connected Multi Party Computing shards.
Neither approach fully protects you.
3/25
Neither approach fully protects you.
3/25
Both models are suboptimal. You either give full physical control of your Bitcoin, or it is permanently connected to the internet.
Enter Miniscript.
What is Miniscript? It's a subset of Bitcoin Script, which Satoshi invented to program how Bitcoin can be spent.
4/25
Enter Miniscript.
What is Miniscript? It's a subset of Bitcoin Script, which Satoshi invented to program how Bitcoin can be spent.
4/25
I and the @AnchorWatchRisk team are utilizing Miniscript in our Trident wallet, which is optimized to leverage the robust nature of Miniscript with a clean UX.
Legacy multisig treats all keys equally. Trident wallet introduces layered security. More on that below.
5/25
Legacy multisig treats all keys equally. Trident wallet introduces layered security. More on that below.
5/25
Bitcoin Script is very impressive yet intimidating. It has many idiosyncrasies that could result in lost funds.
6/25
6/25
With Bitcoin Script, unless you are a computer, it is VERY difficult to decipher in plain English what a given Bitcoin Script is trying to do. Because of this, it is rarely worked on by most Bitcoin developers.
7/25
7/25
Miniscript was started by @pwuille and Andrew Poelstra back in 2018 and later joined by @sanket1729. The mission? Take the complex Bitcoin Script language and distill it down to simple operations that can let you maximize the utility of Bitcoin script.
8/25
8/25
What does that mean?
Today, common Bitcoin Scripts are kept simple. Single and legacy multisig are very easy to read and understand.
This has shortcomings: with simplicity comes lack of governance.
Miniscript allows us to do better and *DOES NOT* require a fork to use!
9/25
Today, common Bitcoin Scripts are kept simple. Single and legacy multisig are very easy to read and understand.
This has shortcomings: with simplicity comes lack of governance.
Miniscript allows us to do better and *DOES NOT* require a fork to use!
9/25
The 3 building blocks to Miniscript:
1. Signatures (used today in Bitcoin)
2. Time locks (based on block height OR clock time)
3. Hash Locks (revealing a pre-image)
These conditions can be layered with AND/OR operations to have robust smart contracts.
10/25
1. Signatures (used today in Bitcoin)
2. Time locks (based on block height OR clock time)
3. Hash Locks (revealing a pre-image)
These conditions can be layered with AND/OR operations to have robust smart contracts.
10/25
Take the following visual aid for example (available at: bitcoindevkit.org/bdk-cli/playground/)
In the next tweet I'll explain the spending conditions for an individual who has used Miniscript to disperse keys with their lawyer and a custodian.
11/25
In the next tweet I'll explain the spending conditions for an individual who has used Miniscript to disperse keys with their lawyer and a custodian.
11/25
The clock starts when funds are confirmed on the blockchain. After that:
1. If customer, custodian & lawyer all sign, there is no time lock.
2. If between 50-100 blocks, only the customer and custodian need to sign.
3. If over 100 blocks only the customer needs to sign.
12/25
1. If customer, custodian & lawyer all sign, there is no time lock.
2. If between 50-100 blocks, only the customer and custodian need to sign.
3. If over 100 blocks only the customer needs to sign.
12/25
By using layered security, the customer is able to distribute risk while maintaining a "Sovereign Veto".
What is the "Sovereign Veto"?
Even if both the Lawyer and Custodian cease to exist, even then, the customer can withdraw funds without their assistance.
13/25
What is the "Sovereign Veto"?
Even if both the Lawyer and Custodian cease to exist, even then, the customer can withdraw funds without their assistance.
13/25
Further, Miniscript policies are composable. What does that mean?
Consider the "lawyer" key in the example above. Using Miniscript, it can be replaced with its own 2 of 3 multisig, for the 3 partners at the law firm. Screenshot below to visualize this:
14/25
Consider the "lawyer" key in the example above. Using Miniscript, it can be replaced with its own 2 of 3 multisig, for the 3 partners at the law firm. Screenshot below to visualize this:
14/25
Some hardware wallets already natively support Miniscript. Specifically @Ledger and @SpecterWallet 's Specter DIY. Ledger will be releasing the app to the public by early January the latest.
15/25
15/25
The team at Ledger have put a lot of thought into this, @salvatoshi has put together a BIP proposal that walks through how a hardware wallet would register an output descriptor, which is generalized to include Miniscript support. github.com/bitcoin/bips/blob/fd3b84da83f5b22953ab8c8cc7c2f1239026692a/bip-wallet-policies.mediawiki
16/25
16/25
Here is a demo of the “Customer Key” signing the miniscript vault.
1. Register the wallet. This is a one time operation to verify you know the rules of the vault prior to depositing/spending from it.
2. Display a deposit address
3. Signing a PSBT
17/25
1. Register the wallet. This is a one time operation to verify you know the rules of the vault prior to depositing/spending from it.
2. Display a deposit address
3. Signing a PSBT
17/25
Here is a video of finalizing the PSBT with all the required signatures.
The hex returned is a valid transaction that is ready to be broadcasted to the network.
18/25
The hex returned is a valid transaction that is ready to be broadcasted to the network.
18/25
Once you have the valid un-broadcasted transaction hex, you can use your own node or an endpoint like Blockstream's TX pusher to broadcast:
19/25
19/25
And voilà! A valid transaction on Testnet using this Miniscript vault!
mempool.space/testnet/tx/80846e4684a6d1b33258ad77adee6e2cbd5429e4ca9e20172e1b3138a86ea1c3
Look at all that complicated Bitcoin script. Confusing right? Its all abstracted to Miniscript and policy diagrams. Very empowering for Bitcoin developers.
20/25
mempool.space/testnet/tx/80846e4684a6d1b33258ad77adee6e2cbd5429e4ca9e20172e1b3138a86ea1c3
Look at all that complicated Bitcoin script. Confusing right? Its all abstracted to Miniscript and policy diagrams. Very empowering for Bitcoin developers.
20/25
What does this have to do with insurance?
Everything.
Miniscript redefines what it means to be in "custody" of Bitcoin, and the kind of perils and risks one can be exposed to.
We can blend off-chain governance with on chain smart contracts for ultimate risk mitigation.
21/25
Everything.
Miniscript redefines what it means to be in "custody" of Bitcoin, and the kind of perils and risks one can be exposed to.
We can blend off-chain governance with on chain smart contracts for ultimate risk mitigation.
21/25
Acknowledgements:
I stand on the shoulder of giants.
First, thank you to @pwuille, Andrew Poelstra, @sanket1729, and the @blockstream team for having the expertise and vision to identify that Miniscript will empower the next generation of Bitcoin Developers.
22/25
I stand on the shoulder of giants.
First, thank you to @pwuille, Andrew Poelstra, @sanket1729, and the @blockstream team for having the expertise and vision to identify that Miniscript will empower the next generation of Bitcoin Developers.
22/25
Next, @salvatoshi and the team at @ledger for supporting Miniscript.
The @bitcoindevkit, @notmandatory, @KLoaec, @darosior, @rot13maxi, and @Seardsalmon for the open source code, inspiration, and support.
23/25
The @bitcoindevkit, @notmandatory, @KLoaec, @darosior, @rot13maxi, and @Seardsalmon for the open source code, inspiration, and support.
23/25
We at @anchorwatchrisk are using Miniscript for insurance, but this is but one example. Miniscript expands the programability of Laye 1 Bitcoin, and as a result can be used to increase the robustness of layer 2 and layer 3 applications. This is Bullish.
24/25
24/25
If you want to learn more, my twitter DMs are open, or you can email me at rob@anchorwatch.com
If you would like to to have your Bitcoin insured, or to be a beta tester for Trident Wallet, go to anchorwatch.com and drop in your email!
🧡
25/25
If you would like to to have your Bitcoin insured, or to be a beta tester for Trident Wallet, go to anchorwatch.com and drop in your email!
🧡
25/25
Another worthy shoutout I missed! Sorry @afilini!
Mentions
See All
Alex B. @bergealex4
·
Dec 15, 2022
Awesome thread Rob