Module schnorrkel::musig
source · Expand description
Implementation for Ristretto Schnorr signatures of “Simple Schnorr Multi-Signatures with Applications to Bitcoin” by Gregory Maxwell, Andrew Poelstra, Yannick Seurin, and Pieter Wuille https://eprint.iacr.org/2018/068
We observe the security arguments from the original 2-round version were found lacking in “On the Provable Security of Two-Round Multi-Signatures” by Manu Drijvers, Kasra Edalatnejad, Bryan Ford, and Gregory Neven https://eprint.iacr.org/2018/417 (slides) so we implement only the 3-round version.
Appendix A of the MuSig paper discusses Interactive Aggregate Signatures (IAS) in which cosigners’ messages differ. Appendix A.3 gives a secure scheme that correctly binds signers to their messages. See https://github.com/w3f/schnorrkel/issues/5#issuecomment-477912319
Structs§
- AggregatePublicKeySliceDeprecatedAggregation helper for public keys kept in slices
- CollectStageDeprecatedInitial stage for cosignature collectors who do not themselves cosign.
- CommitStageDeprecatedCommitment stage for cosigner’s
R
values - CommitmentDeprecatedCommitments to
R_i
values shared between cosigners during signing - CosignStageDeprecatedFinal cosigning stage collection
- CosignatureDeprecatedCosignatures shared between cosigners during signing
- MuSigDeprecatedSchnorr multi-signature (MuSig) container generic over its session types
- RevealDeprecatedRevealed
R_i
values shared between cosigners during signing - RevealStageDeprecatedReveal stage for cosigner’s
R
values
Traits§
- AggregatePublicKeyDeprecatedAny data structure used for aggregating public keys.
- TranscriptStagesDeprecatedInitial cosigning stages during which transcript modification remains possible but not advisable.
Functions§
- aggregate_public_key_from_refs_sliceDeprecatedAggregate public keys stored in a mutable slice
- aggregate_public_key_from_sliceDeprecatedAggregate public keys stored in a mutable slice
- aggregate_public_key_from_sorted_sliceDeprecatedAggregate public keys stored in a sorted slice
- collect_cosignaturesDeprecatedInitialize a collector of cosignatures who does not themselves cosign.