pub struct PcsTranscript<EF, L>{
pub deep_transcript: DeepTranscript<<L as Lmcs>::F, EF>,
pub fri_transcript: FriTranscript<<L as Lmcs>::F, EF, <L as Lmcs>::Commitment>,
pub query_pow_witness: <L as Lmcs>::F,
pub query_indices: Vec<usize>,
pub deep_witnesses: Vec<<L as Lmcs>::BatchProof>,
pub fri_witnesses: Vec<<L as Lmcs>::BatchProof>,
}Expand description
Structured transcript view for the full PCS interaction.
Captures observed transcript data plus parsed LMCS batch openings for inspection.
Fields§
§deep_transcript: DeepTranscript<<L as Lmcs>::F, EF>DEEP transcript data (evals, PoW witness, challenges).
fri_transcript: FriTranscript<<L as Lmcs>::F, EF, <L as Lmcs>::Commitment>FRI transcript data (round commitments/challenges, final polynomial).
query_pow_witness: <L as Lmcs>::FProof-of-work witness for query sampling.
query_indices: Vec<usize>Query indices in sampling order (domain indices, may contain duplicates).
deep_witnesses: Vec<<L as Lmcs>::BatchProof>Batch witness per trace tree (leaf data + Merkle witness).
fri_witnesses: Vec<<L as Lmcs>::BatchProof>Batch witness per FRI round (leaf data + Merkle witness).
Implementations§
Source§impl<EF, L> PcsTranscript<EF, L>
impl<EF, L> PcsTranscript<EF, L>
Sourcepub fn from_verifier_channel<Ch, const N: usize>(
params: &PcsParams,
lmcs: &L,
commitments: &[(<L as Lmcs>::Commitment, Vec<usize>)],
log_lde_height: u8,
eval_points: [EF; N],
channel: &mut Ch,
) -> Result<PcsTranscript<EF, L>, TranscriptError>
pub fn from_verifier_channel<Ch, const N: usize>( params: &PcsParams, lmcs: &L, commitments: &[(<L as Lmcs>::Commitment, Vec<usize>)], log_lde_height: u8, eval_points: [EF; N], channel: &mut Ch, ) -> Result<PcsTranscript<EF, L>, TranscriptError>
Parse a PCS transcript from a verifier channel without validation.
Composes DeepTranscript, FriTranscript, and per-query LMCS batch proofs.
Does not verify any claims; validation happens in
verify_multi.
Commitment widths must match the committed rows (including any alignment padding),
and all commitments are expected to be lifted to the same log_lde_height.
log_lde_height is the log₂ of the LDE evaluation domain height (i.e. the height of
the committed LDE matrices). When a trace degree is known, it is typically
log_trace_height + params.fri.log_blowup (plus any extension used by the caller).
Auto Trait Implementations§
impl<EF, L> Freeze for PcsTranscript<EF, L>
impl<EF, L> RefUnwindSafe for PcsTranscript<EF, L>where
<L as Lmcs>::F: for<'de> Sized + RefUnwindSafe,
EF: RefUnwindSafe,
<L as Lmcs>::BatchProof: RefUnwindSafe,
<L as Lmcs>::Commitment: RefUnwindSafe,
impl<EF, L> Send for PcsTranscript<EF, L>
impl<EF, L> Sync for PcsTranscript<EF, L>
impl<EF, L> Unpin for PcsTranscript<EF, L>
impl<EF, L> UnsafeUnpin for PcsTranscript<EF, L>
impl<EF, L> UnwindSafe for PcsTranscript<EF, L>where
<L as Lmcs>::F: for<'de> Sized + UnwindSafe,
EF: UnwindSafe,
<L as Lmcs>::BatchProof: UnwindSafe,
<L as Lmcs>::Commitment: UnwindSafe,
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
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>
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>
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