[][src]Struct bulletproofs::range_proof::dealer::DealerAwaitingProofShares

pub struct DealerAwaitingProofShares<'a, 'b> {
    n: usize,
    m: usize,
    transcript: &'a mut Transcript,
    initial_transcript: Transcript,
    bp_gens: &'b BulletproofGens,
    pc_gens: &'b PedersenGens,
    bit_challenge: BitChallenge,
    bit_commitments: Vec<BitCommitment>,
    poly_challenge: PolyChallenge,
    poly_commitments: Vec<PolyCommitment>,
    A: RistrettoPoint,
    S: RistrettoPoint,
    T_1: RistrettoPoint,
    T_2: RistrettoPoint,
}

A dealer which has sent the PolyChallenge to the parties and is waiting to aggregate their ProofShares into a RangeProof.

Fields

n: usizem: usizetranscript: &'a mut Transcriptinitial_transcript: Transcriptbp_gens: &'b BulletproofGenspc_gens: &'b PedersenGensbit_challenge: BitChallengebit_commitments: Vec<BitCommitment>poly_challenge: PolyChallengepoly_commitments: Vec<PolyCommitment>A: RistrettoPointS: RistrettoPointT_1: RistrettoPointT_2: RistrettoPoint

Methods

impl<'a, 'b> DealerAwaitingProofShares<'a, 'b>[src]

fn assemble_shares(
    &mut self,
    proof_shares: &[ProofShare]
) -> Result<RangeProof, MPCError>
[src]

Assembles proof shares into an RangeProof.

Used as a helper function by receive_trusted_shares (which just hands back the result) and receive_shares (which validates the proof shares.

pub fn receive_shares(
    self,
    proof_shares: &[ProofShare]
) -> Result<RangeProof, MPCError>
[src]

Assemble the final aggregated RangeProof from the given proof_shares, then validate the proof to ensure that all ProofShares were well-formed.

If the aggregated proof fails to validate, this function audits the submitted shares to determine which shares were invalid. This information is returned as part of the MPCError.

If the proof shares are known to be trusted, for instance when performing local aggregation, receive_trusted_shares saves time by skipping verification of the aggregated proof.

pub fn receive_trusted_shares(
    self,
    proof_shares: &[ProofShare]
) -> Result<RangeProof, MPCError>
[src]

Assemble the final aggregated RangeProof from the given proof_shares, but skip validation of the proof.

WARNING

This function does NOT validate the proof shares. It is suitable for creating aggregated proofs when all parties are known by the dealer to be honest (for instance, when there's only one party playing all roles).

Otherwise, use receive_shares, which validates that all shares are well-formed, or else detects which party(ies) submitted malformed shares.

Auto Trait Implementations

impl<'a, 'b> Send for DealerAwaitingProofShares<'a, 'b>

impl<'a, 'b> Sync for DealerAwaitingProofShares<'a, 'b>

Blanket Implementations

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

impl<T> From for T[src]

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

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

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

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

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

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

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

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

impl<T> Same for T

type Output = T

Should always be Self