In taproot, in order to spend the keypath, the transaction must be signed using the tweaked private key instead of the normal private key (as defined in BIP 341).
However when computing a signature using a threshold signature scheme, the secret is not known by anyone, instead everyone computes their "share" of the signature using their share of the secret key.
In this case how to compute the final signature on the taproot output?
If the signature computed by the threshold signature scheme is $(\sigma,V)$, is it enough to simply add H(m||V)int(H(bytes(pk))) to the signature? (Assuming we don't need any script tree.)
1 Answer
This is exactly what a threshold signature scheme is: the ability to jointly (by interacting with a quorum of signers) produce a valid signature for a single public key that represents the threshold. The private key to that public key will not be constructed anywhere at any point in time.
The details of how to construct that signature depend on the scheme used. For n-of-n only schemes (called multisignatures) like MuSig and MuSig2, that's relatively simple (first agree on an R point, then everyone produces a partial signature s_i, and then those partial signatures are summed together mod the curve order). For actual k-of-n threshold schemes like FROST, some kind of Lagrange interpolation modulo the curve order is usually involved.