sipa / miniscript

Miniscript site and implementation
157 stars 47 forks source link

Taproot support? #56

Open NicolasDorier opened 3 years ago

NicolasDorier commented 3 years ago

Will miniscript be adapted for taproot? I guess a few things should change for taproot, as now we need the tap scripts, and not using OP_CHECKMULTISIG.

sipa commented 3 years ago

Yes, eventually.

But really this work should get integrated into Bitcoin Core first, things are blocked on that to make more progress.

Note that there already is tr() descriptor support independent of miniscript - it'll eventually be able to plug in there.

NicolasDorier commented 3 years ago

This work, you mean miniscript integrated to bitcoin core? I think it's quite unrelated.

Now that taproot is locked in, protocols built on top of bitcoin will evolve, and if those protocol could express their scripts as a miniscript rather than several handcrafted tap scripts, I think it would make it harder to shoot themselves in the foot, easier to review.

If you wait miniscript to be integrated to bitcoin core first before starting taproot integration in this repo, I fear those protocols will fallback to hand crafted scripts when being rewritten.

sipa commented 3 years ago

This repository (and Miniscript as a research project in general) is different things, so it depends what you're talking about:

So while I don't think it's much work per se to extend the Miniscript "specification" to support Taproot & BIP342 scripts, it's unclear to me how useful that is without implementations that can deal with it and target it. And at least as far as the C++ implementation here is concerned, I'd very much want to see it further along in integrating into Bitcoin Core before adding even more here. Rust-miniscript may be in a better position to start adding support for that.