[][src]Struct frost_dalek::keygen::Participant

pub struct Participant {
    pub index: u32,
    pub commitments: Vec<RistrettoPoint>,
    pub proof_of_secret_key: NizkOfSecretKey,
}

A participant in a threshold signing.

Fields

index: u32

The index of this participant, to keep the participants in order.

commitments: Vec<RistrettoPoint>

A vector of Pedersen commitments to the coefficients of this participant's private polynomial.

proof_of_secret_key: NizkOfSecretKey

The zero-knowledge proof of knowledge of the secret key (a.k.a. the first coefficient in the private polynomial). It is constructed as a Schnorr signature using \( a_{i0} \) as the signing key.

Implementations

impl Participant[src]

pub fn dealer(
    parameters: &Parameters
) -> (Vec<DealtParticipant>, VerifiableSecretSharingCommitment)
[src]

Have a trusted dealer generate all participants' key material and associated commitments for distribution to the participants.

Warning

Each participant MUST verify with all other n-1 participants that the VerifiableSecretSharingCommitment given to them by the dealer is identical. Otherwise, the participants' secret shares could be formed with respect to different polynomials and they will fail to create threshold signatures which validate.

pub fn new(parameters: &Parameters, index: u32) -> (Self, Coefficients)[src]

Construct a new participant for the distributed key generation protocol.

Inputs

  • The protocol instance Parameters, and
  • This participant's index.

Usage

After a new participant is constructed, the participant.index, participant.commitments, and participant.proof_of_secret_key should be sent to every other participant in the protocol.

Returns

A distributed key generation protocol Participant and that participant's secret polynomial Coefficients which must be kept private.

pub fn public_key(&self) -> Option<&RistrettoPoint>[src]

Retrieve \( \alpha_{i0} * B \), where \( B \) is the Ristretto basepoint.

This is used to pass into the final call to DistributedKeyGeneration::<RoundTwo>.finish().

Trait Implementations

impl Clone for Participant[src]

impl Debug for Participant[src]

impl PartialEq<Participant> for Participant[src]

impl PartialOrd<Participant> for Participant[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,