VerifierTranscript

Trait VerifierTranscript 

Source
pub trait VerifierTranscript<F> {
    // Required methods
    fn consume_input_elements(
        &mut self,
        label: &'static str,
        num_elements: usize,
    ) -> Result<(Vec<F>, Vec<F>)>;
    fn consume_element(&mut self, label: &'static str) -> Result<F>;
    fn consume_elements(
        &mut self,
        label: &'static str,
        num_elements: usize,
    ) -> Result<Vec<F>>;
    fn get_challenge(&mut self, label: &'static str) -> Result<F>;
    fn get_challenges(
        &mut self,
        label: &'static str,
        num_elements: usize,
    ) -> Result<Vec<F>>;
}

Required Methods§

Source

fn consume_input_elements( &mut self, label: &'static str, num_elements: usize, ) -> Result<(Vec<F>, Vec<F>)>

Circuit input elements are treated differently in order to mitigate the Rothblum et. al. attack in https://eprint.iacr.org/2025/118.

In particular, a hash chain of the elements is computed and absorbed by the transcript sponge alongside each of the given elements.

Source

fn consume_element(&mut self, label: &'static str) -> Result<F>

Source

fn consume_elements( &mut self, label: &'static str, num_elements: usize, ) -> Result<Vec<F>>

Source

fn get_challenge(&mut self, label: &'static str) -> Result<F>

Source

fn get_challenges( &mut self, label: &'static str, num_elements: usize, ) -> Result<Vec<F>>

Implementors§