[−][src]Struct frost_dalek::keygen::Participant
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]
parameters: &Parameters
) -> (Vec<DealtParticipant>, VerifiableSecretSharingCommitment)
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]
pub fn clone(&self) -> Participant
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for Participant
[src]
impl PartialEq<Participant> for Participant
[src]
pub fn eq(&self, other: &Participant) -> bool
[src]
#[must_use]pub fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
impl PartialOrd<Participant> for Participant
[src]
pub fn partial_cmp(&self, other: &Participant) -> Option<Ordering>
[src]
#[must_use]pub fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn le(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
Auto Trait Implementations
impl RefUnwindSafe for Participant
[src]
impl Send for Participant
[src]
impl Sync for Participant
[src]
impl Unpin for Participant
[src]
impl UnwindSafe for Participant
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,