Skip to main content

VerifierTranscript

Struct VerifierTranscript 

Source
pub struct VerifierTranscript<'a, C, F: TranscriptField, EF> { /* private fields */ }
Expand description

Verifier-side transcript of one batch of quadratic sumcheck rounds.

Mirrors the prover side call for call, over the same description.

The values come from the proof rather than from a wire. The caller must therefore have counted them against the described shape first.

Implementations§

Source§

impl<'a, C, F, EF> VerifierTranscript<'a, C, F, EF>
where F: TranscriptField, EF: ExtensionField<F>, C: CanObserve<F> + CanSample<F> + GrindingChallenger<Witness = F>,

Source

pub fn new(challenger: &'a mut C, shape: SumcheckShape) -> Self

Seed the transcript from the shape.

The argument matches the prover’s, so both sides seed identically.

Source

pub fn round( &mut self, c_a: EF, c_inf: EF, witness: Option<F>, ) -> Result<EF, SumcheckError>

Replay one round: bind both values, re-check the grind, draw the challenge.

Every value comes from the proof, so every disagreement is a rejection.

§Errors
  • Grinding is enabled and the round carries no witness.
  • The witness misses the required difficulty.
§Panics

When the batch was described with no rounds at all.

Source

pub fn finish(self)

Close the transcript once every described step has been played.

§Panics

When fewer rounds were played than the batch was described with.

Auto Trait Implementations§

§

impl<'a, C, F, EF> !UnwindSafe for VerifierTranscript<'a, C, F, EF>

§

impl<'a, C, F, EF> Freeze for VerifierTranscript<'a, C, F, EF>

§

impl<'a, C, F, EF> RefUnwindSafe for VerifierTranscript<'a, C, F, EF>

§

impl<'a, C, F, EF> Send for VerifierTranscript<'a, C, F, EF>

§

impl<'a, C, F, EF> Sync for VerifierTranscript<'a, C, F, EF>

§

impl<'a, C, F, EF> Unpin for VerifierTranscript<'a, C, F, EF>

§

impl<'a, C, F, EF> UnsafeUnpin for VerifierTranscript<'a, C, F, EF>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more