- trait KeySet extends AnyRef
Represents an ordered set of MuSig signers and their tweaks.
Represents an ordered set of MuSig signers and their tweaks. This is the data required to (non-interactively) compute the aggPubKey.
- case class LexicographicKeySet(keys: Vector[SchnorrPublicKey], tweaks: Vector[MuSigTweak] = Vector.empty) extends KeySet with Product with Serializable
The default way of ordering a KeySet is lexicographically
- case class MuSigNoncePriv(privNonces: Vector[ECPrivateKey]) extends NetworkElement with Product with Serializable
Wraps the ephemeral private keys making up a MuSig2 nonce
- case class MuSigNoncePub(pubNonces: Vector[SecpPoint]) extends NetworkElement with Product with Serializable
Wraps the ephemeral points making up a MuSig2 nonce
- case class MuSigTweak(tweak: FieldElement, isXOnlyT: Boolean) extends Product with Serializable
Used to tweak a MuSig aggregate public key, as defined here https://github.com/jonasnick/bips/blob/musig2/bip-musig2.mediawiki#tweaking-definition
- case class MuSigTweakContext(parityAcc: ParityMultiplier, tweakAcc: FieldElement) extends Product with Serializable
Represents the total tweak sum and net parity multiplier after applying all tweaks
- case class MuSigTweakData(context: MuSigTweakContext, aggPubKeyParity: KeyParity, e: FieldElement) extends Product with Serializable
The data required to apply the net tweak during MuSig signature aggregation
- sealed trait ParityMultiplier extends AnyRef
Represents either FieldElement.one or FieldElement.orderMinusOne.
Represents either FieldElement.one or FieldElement.orderMinusOne. Using this ADT rather than those actual FieldElements saves computation including some unnecessary point multiplications.
In general there is a correspondence between Pos <-> EvenParity and Neg <-> OddParity, this is because in general x-only keys are assumed to be even and need to be negated if they are meant to be used as odd keys.
- case class SigningSession(b: FieldElement, aggNonce: ECPublicKey, e: FieldElement) extends Product with Serializable
The data relevant to computing and verifying MuSig partial signatures
- case class UnsortedKeySet(keys: Vector[SchnorrPublicKey], tweaks: Vector[MuSigTweak] = Vector.empty) extends KeySet with Product with Serializable
This represents an arbitrary KeySet, for use in tests.
This represents an arbitrary KeySet, for use in tests. If you have a non-lexicographical order, extend KeySet.
- object KeySet
- object MuSigNoncePriv extends Factory[MuSigNoncePriv] with Serializable
- object MuSigNoncePub extends Factory[MuSigNoncePub] with Serializable
- object MuSigTweakContext extends Serializable
- object MuSigUtil
Contains constants, hash functions, and signing/verification functionality for MuSig
- case object Neg extends ParityMultiplier with Product with Serializable
- object ParityMultiplier
- case object Pos extends ParityMultiplier with Product with Serializable
- object SigningSession extends Serializable