Packages

c

org.bitcoins.crypto.frost

FrostShareGenResult

case class FrostShareGenResult(ids: Vector[Long], shares: Vector[FieldElement], commitments: Vector[ECPublicKey]) extends Product with Serializable

Result of FROST trusted dealer key generation.

This class represents the output of the FROST key generation process where a trusted dealer generates secret shares for a threshold signing scheme. In a t-of-n threshold scheme, any t participants can collaborate to produce a valid signature, but fewer than t cannot.

The dealer generates:

  • Secret shares for each of n participants
  • VSS (Verifiable Secret Sharing) commitments that allow participants to verify their shares are consistent with the threshold public key
  • A threshold public key that represents the aggregate signing key

Each participant receives:

  • Their participant ID (from ids)
  • Their secret share (from shares)
  • The VSS commitments (public, same for all participants)

Participants can verify their share is valid using FrostUtil.vssVerify(share, id, commitments).

ids

participant identifiers (1-indexed, typically 1 to n)

shares

secret shares for each participant (must be kept private by each participant)

commitments

VSS commitments (public) that allow verification of shares. The number of commitments equals the threshold t.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. FrostShareGenResult
  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 FrostShareGenResult(ids: Vector[Long], shares: Vector[FieldElement], commitments: Vector[ECPublicKey])

    ids

    participant identifiers (1-indexed, typically 1 to n)

    shares

    secret shares for each participant (must be kept private by each participant)

    commitments

    VSS commitments (public) that allow verification of shares. The number of commitments equals the threshold t.

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. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  6. val commitments: Vector[ECPublicKey]
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  9. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  10. val ids: Vector[Long]
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  14. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. def productElementNames: Iterator[String]
    Definition Classes
    Product
  16. val shares: Vector[FieldElement]
  17. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  18. def threshold: Int

    The threshold t (minimum number of signers required).

    The threshold t (minimum number of signers required).

    The threshold is determined by the number of VSS commitments generated during key generation.

  19. def toSigningContext(participantIds: Vector[Long], participantPubShares: Vector[ECPublicKey]): FrostSigningContext

    Creates a signing context for a subset of participants.

    Creates a signing context for a subset of participants.

    This method constructs a FrostSigningContext for a specific signing session involving a subset of the participants. The signing context contains the information needed to produce a threshold signature, including:

    • Which participants are involved (must be at least threshold many)
    • Their public key shares
    • The threshold public key

    The method verifies that:

    • All participant IDs are valid (exist in the original key generation)
    • All public key shares are consistent with the secret shares
    • The number of participants meets the threshold requirement
    participantIds

    the IDs of participants involved in this signing session (must contain at least threshold participants)

    participantPubShares

    the public key shares corresponding to each participant (computed as share * G)

    returns

    a FrostSigningContext that can be used for signing

    Exceptions thrown

    IllegalArgumentException if participant IDs are invalid, public shares don't match, or counts don't match

  20. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  21. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  22. 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