pub struct ProverTranscript<'a, C, F: TranscriptField, EF> { /* private fields */ }Expand description
Prover-side transcript of one batch of quadratic sumcheck rounds.
§Overview
Holds the only definition of what a prover writes per round.
Every prover of these rounds drives them through this type. No two prover loops can then drift from each other, or from the verifier.
§Borrowing
The challenger is borrowed, not consumed.
A sumcheck runs inside a larger protocol. That protocol’s own transcript continues where this one stops.
Implementations§
Source§impl<'a, C, F, EF> ProverTranscript<'a, C, F, EF>where
F: TranscriptField,
EF: ExtensionField<F>,
C: CanObserve<F> + CanSample<F> + GrindingChallenger<Witness = F>,
impl<'a, C, F, EF> ProverTranscript<'a, C, F, EF>where
F: TranscriptField,
EF: ExtensionField<F>,
C: CanObserve<F> + CanSample<F> + GrindingChallenger<Witness = F>,
Sourcepub fn new(challenger: &'a mut C, shape: SumcheckShape) -> Self
pub fn new(challenger: &'a mut C, shape: SumcheckShape) -> Self
Seed the transcript from the shape.
A batch of zero rounds leaves the sponge exactly as it was found.
§Arguments
challenger: sponge of the surrounding protocol, borrowed for the batch.shape: the numbers that fix this batch’s transcript.
Auto Trait Implementations§
impl<'a, C, F, EF> !UnwindSafe for ProverTranscript<'a, C, F, EF>
impl<'a, C, F, EF> Freeze for ProverTranscript<'a, C, F, EF>
impl<'a, C, F, EF> RefUnwindSafe for ProverTranscript<'a, C, F, EF>
impl<'a, C, F, EF> Send for ProverTranscript<'a, C, F, EF>
impl<'a, C, F, EF> Sync for ProverTranscript<'a, C, F, EF>
impl<'a, C, F, EF> Unpin for ProverTranscript<'a, C, F, EF>
impl<'a, C, F, EF> UnsafeUnpin for ProverTranscript<'a, C, F, EF>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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