FROST Rerandomized TypeScript Library - v0.2.2-alpha.3
    Preparing search index...

    Class RandomizedParams<C>

    Randomized parameters for a signing instance of randomized FROST.

    Type Parameters

    Index

    Accessors

    Methods

    • Create a new RandomizedParams for the given VerifyingKey and the given signing commitments.

      The SigningCommitments map must be the one being used in the current FROST signing run (built by the Coordinator after receiving from Participants). It is hashed into the randomizer calculation, which binds it to that specific commitments.

      Returns the generated RandomizedParams and a randomizer seed. Both can be used to regenerate the RandomizedParams with regenerateFromSeedAndCommitments().

      Type Parameters

      Parameters

      • ciphersuite: C

        The ciphersuite to use (must support rerandomization)

      • groupVerifyingKey: VerifyingKey<C>

        The group's verifying key

      • signingCommitments: Map<Identifier<C>, SigningCommitments<C>>

        Map of identifier to signing commitments

      • rng: { fill(array: Uint8Array): void }

        A cryptographically secure random number generator

      Returns [RandomizedParams<C>, Uint8Array<ArrayBufferLike>]

      A tuple of [RandomizedParams, randomizer seed bytes]

      If parameter generation fails

    • Regenerate a RandomizedParams with the given VerifyingKey from the given signing commitments.

      Regenerates a RandomizedParams generated with newFromCommitments(). This can be used by Participants after receiving the randomizer seed and commitments in Round 2. This is better than the Coordinator simply generating a Randomizer and sending it to Participants, because in this approach the participants don't need to fully trust the Coordinator's random number generator (i.e. even if the randomizer seed was not randomly generated the randomizer will still be).

      This should be used exclusively with the output of newFromCommitments(); it is strongly suggested to not attempt generating the randomizer seed yourself (even if the point of this approach is to hedge against issues in the randomizer seed generation).

      Type Parameters

      Parameters

      • ciphersuite: C

        The ciphersuite to use (must support rerandomization)

      • groupVerifyingKey: VerifyingKey<C>

        The group's verifying key

      • randomizerSeed: Uint8Array

        The randomizer seed bytes from newFromCommitments()

      • signingCommitments: Map<Identifier<C>, SigningCommitments<C>>

        Map of identifier to signing commitments

      Returns RandomizedParams<C>

      The regenerated RandomizedParams

      If regeneration fails

    • Create a new RandomizedParams for the given VerifyingKey and the given randomizer.

      The randomizer MUST be generated uniformly at random! Use newFromCommitments() which generates a fresh randomizer, unless your application requires generating a randomizer outside.

      Type Parameters

      Parameters

      • ciphersuite: C

        The ciphersuite to use

      • groupVerifyingKey: VerifyingKey<C>

        The group's verifying key

      • randomizer: Randomizer<C>

        The randomizer (must be uniformly random)

      Returns RandomizedParams<C>

      The new RandomizedParams

    • Returns a string representation of this RandomizedParams.

      Returns string

      Debug string with all fields