multi signature – Help for taproot multisig descriptors

0
68


On the time of writing (January 2022) there hasn’t been a descriptor specified for Schnorr/Taproot multisig (utilizing the brand new OP_CHECKSIGADD opcode laid out in BIP 342) or utilizing the important thing aggregation scheme MuSig.

(After I say “multisig” I imply k-of-n threshold signing, quite than a schnorr multisignature)

A clarification on terminology. In Bitcoin we typically use “multisig” to check with n-of-n (n=n) and “threshold” to check with k-of-n (ok<n). MuSig(2) refers to a key aggregation scheme the place just one key and one signature go onchain regardless of there being a number of keys concerned offchain. Threshold equivalents of MuSig(2) are being labored on e.g. FROST however usually are not finalized or as mature as MuSig(2). Neither MuSig(2) or FROST have descriptors specified on the time or writing.

Therefore if you wish to use a multisig or threshold signature descriptor you’d use an current one e.g. multi or sortedmulti that does not help a Schnorr/Taproot multisig. A bit confusingly the multi descriptor does help each multisignature and threshold signatures in response to the above definitions however not for Schnorr/Taproot.

April 2023 Replace

There are actually multi_a and sortedmulti_a descriptors supported within the Bitcoin Core pockets for k-of-n insurance policies utilizing the CHECKSIGADD opcode contained in the tr() Taproot descriptor. A MuSig(2) descriptor has been mentioned and there’s an open pull request in rust-miniscript implementing it but it surely hasn’t but been finalized.

LEAVE A REPLY

Please enter your comment!
Please enter your name here