Trait halo2_proofs::poly::commitment::Verifier

source ·
pub trait Verifier<'params, Scheme>
where Scheme: CommitmentScheme,
{ type Guard: Guard<Scheme, MSMAccumulator = Self::MSMAccumulator>; type MSMAccumulator; // Required methods fn new() -> Self; fn verify_proof<'com, E, T, I>( &self, transcript: &mut T, queries: I, msm: Self::MSMAccumulator ) -> Result<Self::Guard, Error> where 'params: 'com, E: EncodedChallenge<<Scheme as CommitmentScheme>::Curve>, T: TranscriptRead<<Scheme as CommitmentScheme>::Curve, E>, I: IntoIterator<Item = VerifierQuery<'com, <Scheme as CommitmentScheme>::Curve, <<Scheme as CommitmentScheme>::ParamsVerifier as ParamsVerifier<'params, <Scheme as CommitmentScheme>::Curve>>::MSM>> + Clone; }
Expand description

Common multi-open verifier interface for various commitment schemes

Required Associated Types§

source

type Guard: Guard<Scheme, MSMAccumulator = Self::MSMAccumulator>

Unfinalized verification result. This is returned in verification to allow developer to compress or combine verification results

source

type MSMAccumulator

Accumulator for compressed verification

Required Methods§

source

fn new() -> Self

Creates new verifier instance

source

fn verify_proof<'com, E, T, I>( &self, transcript: &mut T, queries: I, msm: Self::MSMAccumulator ) -> Result<Self::Guard, Error>
where 'params: 'com, E: EncodedChallenge<<Scheme as CommitmentScheme>::Curve>, T: TranscriptRead<<Scheme as CommitmentScheme>::Curve, E>, I: IntoIterator<Item = VerifierQuery<'com, <Scheme as CommitmentScheme>::Curve, <<Scheme as CommitmentScheme>::ParamsVerifier as ParamsVerifier<'params, <Scheme as CommitmentScheme>::Curve>>::MSM>> + Clone,

Process the proof and return unfinished result named Guard

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<'params, E> Verifier<'params, KZGCommitmentScheme<E>> for VerifierGWC<E>
where <E as Engine>::G1Affine: SerdeCurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>, E: MultiMillerLoop + Debug, <E as Engine>::G1: CurveExt<AffineExt = <E as Engine>::G1Affine>, <E as Engine>::G2Affine: SerdeCurveAffine,

source§

impl<'params, E> Verifier<'params, KZGCommitmentScheme<E>> for VerifierSHPLONK<E>
where <E as Engine>::Fr: Ord, <E as Engine>::G1Affine: SerdeCurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>, E: MultiMillerLoop + Debug, <E as Engine>::G1: CurveExt<AffineExt = <E as Engine>::G1Affine>, <E as Engine>::G2Affine: SerdeCurveAffine,