Skip to main content

WordIPProverChannel

Trait WordIPProverChannel 

Source
pub trait WordIPProverChannel<F: Field>: IPProverChannel<F> {
    type Word: Clone + From<Word> + Shr<u32, Output = Self::Word>;

    // Required methods
    fn observe_words(&mut self, words: &[Self::Word]);
    fn sample_bits(&mut self, bits: usize) -> Self::Word;
}
Expand description

A prover channel whose protocol carries 64-bit words alongside field elements.

The prover-side counterpart of WordIPVerifierChannel. It carries only the operations both parties perform — lifting constants, observing, shifting and sampling — since the arithmetic over a word’s bits is the verifier’s alone.

Required Associated Types§

Source

type Word: Clone + From<Word> + Shr<u32, Output = Self::Word>

The word type this channel carries.

Mirrors WordIPVerifierChannel::Word, including the From<Word> and Shr bounds that keep lifting and index arithmetic plain operations rather than channel methods.

Required Methods§

Source

fn observe_words(&mut self, words: &[Self::Word])

Feeds words into the Fiat-Shamir state, each as eight little-endian bytes.

Source

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

Samples a uniform word of the given bit width, matching what the verifier samples.

The result is masked to bits bits.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<F, Challenger_> WordIPProverChannel<F> for ProverTranscript<Challenger_>
where F: Field, Challenger_: Challenger,

Source§

type Word = Word

Source§

fn observe_words(&mut self, words: &[Word])

Source§

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

Implementors§