What’s the Coverage and related Miniscript that’s utilized by this pockets?
The Coverage it makes use of is:
or(9@pk(major),1@and(older(X),pk(restoration)))
To run it by means of sipa’s Miniscript C++ compiler on his web site you must substitute X
for a specific quantity for the timelock e.g. 12960
is roughly 90 days in variety of blocks.
or(9@pk(major),1@and(older(12960),pk(restoration)))
The ensuing Miniscript from the C++ compiler is:
or_d(pk(major),and_v(v:pkh(restoration),older(12960)))
The ensuing Miniscript from the Rust compiler is similar (to be confirmed).
Why would I exploit this Coverage?
Compared to a 1-of-1 multisig this Coverage provides you the additional safety of a restoration key in case you lose your major key. Compared to a 2-of-2 multisig or a 2-of-3 threshold this Coverage is simpler to spend from as you need not generate two signatures from two impartial signers. Compared to a 1-of-2 threshold this Coverage prevents the restoration key getting used till after the timelock in case the safety round your restoration key is not as robust because the safety round your major key.
What’s fastened and what’s configurable by the consumer?
The timelock can clearly be modified however this pockets is not meant to assist the consumer creating their very own Coverage. Apparently you’ll be able to substitute multi keys as a substitute of the only keys too (to be confirmed)
Does it assist Taproot?
No. The usage of Miniscript inside a tr()
descriptor shouldn’t be but spec’ed on the time of writing (February twentieth 2023). There may be some dialogue on this gist for a number of the proposed modifications to Miniscript to do that.
Because of darosior for answering a few of this on IRC.