case class FrostTweakContext(Q: SecpPointFinite, tacc: FieldElement, gacc: ParityMultiplier) extends Product with Serializable
A FROST tweak context.
Holds the current aggregate public key point q, the scalar tweak
accumulator tacc, and the parity accumulator gacc. This context
encapsulates the minimal state needed to apply one or more tweaks to an
aggregate key as described in the FROST specification (BIP-FROST). The
implementation is compatible with MuSig2 tweak semantics so the MuSig tweak
logic can be reused.
- Q
aggregate public key point (finite curve point)
- tacc
scalar tweak accumulator (field element)
- gacc
parity accumulator used for x-only parity tracking
- Alphabetic
- By Inheritance
- FrostTweakContext
- Serializable
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new FrostTweakContext(Q: SecpPointFinite, tacc: FieldElement, gacc: ParityMultiplier)
- Q
aggregate public key point (finite curve point)
- tacc
scalar tweak accumulator (field element)
- gacc
parity accumulator used for x-only parity tracking
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- val Q: SecpPointFinite
- def applyTweak(tweak: FieldElement, isXOnly: Boolean): FrostTweakContext
Apply a tweak to this context and return the updated context.
Apply a tweak to this context and return the updated context.
This performs the tweak operation as specified by BIP-FROST (and equivalently by MuSig2): it updates the aggregate public key and the associated accumulators. The
tweakparameter is a scalar (field element) to apply;isXOnlyindicates whether the tweak was computed with respect to an x-only representation and therefore may affect parity handling.The returned
FrostTweakContextcontains the new aggregate pointq, the updated tweak accumulatortacc, and the updated parity accumulatorgacc.- tweak
scalar tweak to apply
- isXOnly
true when the tweak was derived from an x-only pubkey
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- val gacc: ParityMultiplier
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def getPlainPubKey: ECPublicKey
- def getXOnlyPubKey: XOnlyPubKey
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- val tacc: FieldElement
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()