[][src]Module hbbft::threshold_sign

Collaborative Threshold Signing

The algorithm is instantiated and waits to recieve a document to sign, as well as signature shares from threshold signature validation peers. Once set_document is successfully called, then handle_input(()) or sign() is called, which then sends a signature share to each threshold signature validation peer. When at least f + 1 validators have shared their signatures in this manner, each node outputs the same, valid signature of the data.

In addition to signing, this can also be used as a source of pseudorandomness: The signature cannot be known until more than f validators have contributed their shares.

How it works

The algorithm uses a threshold signature scheme with the uniqueness property: For each public key and message, there is exactly one valid signature. This group signature is produced using signature shares from any combination of f + 1 secret key share holders.

Structs

Message

A threshold signing message, containing a signature share.

ThresholdSign

A threshold signing algorithm instance. On input, broadcasts our threshold signature share. Upon receiving at least num_faulty + 1 shares, attempts to combine them into a signature. If that signature is valid, the instance outputs it and terminates; otherwise the instance aborts.

Enums

Error

A threshold signing error.

FaultKind

A threshold sign message fault

Type Definitions

Result

A threshold signing result.

Step

A step returned from ThresholdSign. It contains at most one output.