Skip to main content

Channel

Trait Channel 

Source
pub trait Channel {
    type F: Field;
    type Commitment: Clone;
    type Challenger: TranscriptChallenger<Self::F, Self::Commitment>;

    // Required methods
    fn sample(&mut self) -> Self::F;
    fn sample_bits(&mut self, bits: usize) -> usize;

    // Provided method
    fn sample_algebra_element<A: BasedVectorSpace<Self::F>>(&mut self) -> A { ... }
}
Expand description

Shared base trait for ProverChannel and VerifierChannel.

Provides sampling methods common to both sides of the transcript.

Required Associated Types§

Required Methods§

Source

fn sample(&mut self) -> Self::F

Sample a random field element from the challenger.

Source

fn sample_bits(&mut self, bits: usize) -> usize

Sample a random bits-bit integer from the challenger.

Provided Methods§

Source

fn sample_algebra_element<A: BasedVectorSpace<Self::F>>(&mut self) -> A

Sample a random algebra element (e.g. extension field) from the challenger.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<'a, F, C, Ch> Channel for VerifierTranscript<'a, F, C, Ch>
where F: Field, C: Clone, Ch: TranscriptChallenger<F, C>,

Source§

impl<F, C, Ch> Channel for ProverTranscript<F, C, Ch>
where F: Field, C: Clone, Ch: TranscriptChallenger<F, C>,