pub fn aggregate(
signing_package: &SigningPackage,
signature_shares: &BTreeMap<Identifier, SignatureShare>,
pubkeys: &PublicKeyPackage,
) -> Result<Signature, Error>Expand description
Verifies each FROST(ristretto255, SHA-512) participant’s signature share, and if all are valid, aggregates the shares into a signature to publish.
Resulting signature is compatible with verification of a plain Schnorr signature.
This operation is performed by a coordinator that can communicate with all the signing participants before publishing the final signature. The coordinator can be one of the participants or a semi-trusted third party (who is trusted to not perform denial of service attacks, but does not learn any secret information). Note that because the coordinator is trusted to report misbehaving parties in order to avoid publishing an invalid signature, if the coordinator themselves is a signer and misbehaves, they can avoid that step. However, at worst, this results in a denial of service attack due to publishing an invalid signature.