Packages

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

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. FrostTweakContext
  2. Serializable
  3. Product
  4. Equals
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. 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

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. val Q: SecpPointFinite
  5. 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 tweak parameter is a scalar (field element) to apply; isXOnly indicates whether the tweak was computed with respect to an x-only representation and therefore may affect parity handling.

    The returned FrostTweakContext contains the new aggregate point q, the updated tweak accumulator tacc, and the updated parity accumulator gacc.

    tweak

    scalar tweak to apply

    isXOnly

    true when the tweak was derived from an x-only pubkey

  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  10. val gacc: ParityMultiplier
  11. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  12. def getPlainPubKey: ECPublicKey
  13. def getXOnlyPubKey: XOnlyPubKey
  14. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  15. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  17. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  18. def productElementNames: Iterator[String]
    Definition Classes
    Product
  19. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  20. val tacc: FieldElement
  21. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  22. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  23. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped