Skip to content
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

Implement multisig for Taproot #1946

Open
andrewkozlik opened this issue Nov 25, 2021 · 12 comments · May be fixed by #4159
Open

Implement multisig for Taproot #1946

andrewkozlik opened this issue Nov 25, 2021 · 12 comments · May be fixed by #4159
Assignees
Labels
bitcoin Bitcoin related R&D Research and development team related
Milestone

Comments

@andrewkozlik
Copy link
Contributor

There are a number of options how to implement multisig with Taproot [1], so first we have to decide which one(s) we will implement. Using a single OP_CHECKSIGADD-based script is the simplest and most similar to the way classic multisig works. Nevertheless we want to wait for Casa and Unchained Capital to see what they want to aim for.

[1] https://github.com/bitcoin/bips/blob/master/bip-0342.mediawiki#cite_note-5

@andrewkozlik andrewkozlik added bitcoin Bitcoin related LOW R&D Research and development team related labels Nov 25, 2021
@andrewkozlik andrewkozlik self-assigned this Nov 25, 2021
@andrewkozlik andrewkozlik mentioned this issue Nov 25, 2021
4 tasks
@prusnak
Copy link
Member

prusnak commented Nov 25, 2021

I pinged Casa and Unchained Capital folks to chime in ...

@afsheenb
Copy link

On behalf of Unchained: we've been discussing internally how best to implement multisig on Taproot and have a final meeting scheduled for mid-December. I'll report back and chime in with our plans then.

@jlopp
Copy link

jlopp commented Nov 29, 2021

Given the interactivity requirements of other tapscript constructions, I expect Casa will move forward with OP_CHECKSIGADD

@andrewkozlik
Copy link
Contributor Author

Given the interactivity requirements of other tapscript constructions, I expect Casa will move forward with OP_CHECKSIGADD

@jlopp, would that be using a single OP_CHECKSIGADD-based k-of-n script or a k-of-k script for every combination of pubkeys? The advantages and disadvantages of the two are discussed in https://github.com/bitcoin/bips/blob/master/bip-0342.mediawiki#cite_note-5. If I am not mistaken, Casa uses 2-of-3 multisig and 3-of-5 multisig. On average the single OP_CHECKSIGADD-based k-of-n script is better in both cases in terms of the size of the resulting witnesses. But note the words "on average". If you optimize the Merkle tree for the happy path / typical use case, then the k-of-k script for every combination may be more optimal in terms of witness size for the happy path.

@jlopp
Copy link

jlopp commented Nov 29, 2021

Single OP_CHECKSIGADD-based k-of-n script, otherwise we'd have to change the UX to force users to either preselect which keys they're signing with, or have them sign multiple leaves of the tapscript.

@hynek-jina hynek-jina added this to the Taproot 🥕 milestone Dec 7, 2021
@afsheenb
Copy link

Chiming in again after our meeting: we're hoping to support both of the two OP_CHECKSIGADD based approaches mentioned in BIP 342, with a preference for the k-of-k script (though we anticipate making use of the k-of-n script as well).

@melroy89
Copy link
Contributor

melroy89 commented Apr 4, 2022

Any update?

@hynek-jina hynek-jina removed the LOW label May 6, 2022
@deepsimulation
Copy link

Hi @prusnak,

Any update on this?

@andrewtoth andrewtoth linked a pull request Sep 5, 2024 that will close this issue
@andrewtoth
Copy link

andrewtoth commented Sep 5, 2024

Added the basic OP_CHECKSIGADD funtionality in #4159

@trezor trezor deleted a comment from mmikeww Sep 5, 2024
@nvk
Copy link

nvk commented Sep 5, 2024

I was tagged here but I don't see the comment.

@andrewtoth
Copy link

It was deleted just now after my comment.

@prusnak
Copy link
Member

prusnak commented Sep 5, 2024

there was nothing in the comment, except for the tag - i considered it a spam, because it added no value to the discussion, so I deleted it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bitcoin Bitcoin related R&D Research and development team related
Projects
Status: No status
Development

Successfully merging a pull request may close this issue.

9 participants