-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add high-level helpers for using Musig2 with Taproot #110
Conversation
b18cc28
to
9528832
Compare
This should be "rebased" on top of #107, which implements a musig2 API that is different than the current prototype on master and is based on ACINQ/secp256k1-kmp#93 which implements a low-level musig2 API that tracks what will be added to https://github.com/bitcoin-core/secp256k1/ and should not change much now. |
Nice, I'll do that! |
When using Musig2 for a taproot key path, we can provide simpler helper functions to collaboratively build a shared signature for the spending transaction. This hides all of the low-level details of how the musig2 algorithm works, by exposing a subset of what can be done that is sufficient for spending taproot inputs.
This is WIP as the low-level API isn't convenient and probably needs to be reworked.
ce20057
to
03940b1
Compare
I started the rebase, but the exposed functions are quite inconvenient to work with, I suspect that #107 can be greatly improved. I'll review it thoroughly once the libsecp256k1 version is stable enough. |
|
I agree that |
Sorry I thought you meant ACINQ/secp256k1-kmp#93. I agree that #107 is pretty basic but it made building our new swap-in protocol simpler (because it's easier to see how musig2 is used). |
When using Musig2 for a taproot key path, we can provide simpler helper functions to collaboratively build a shared signature for the spending transaction.
This hides all of the low-level details of how the musig2 algorithm works, by exposing a subset of what can be done that is sufficient for spending taproot inputs.