halo2_axiom::poly::commitment

Trait Verifier

Source
pub trait Verifier<'params, Scheme: CommitmentScheme> {
    type Guard: Guard<Scheme, MSMAccumulator = Self::MSMAccumulator>;
    type MSMAccumulator;

    const QUERY_INSTANCE: bool;

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

Common multi-open verifier interface for various commitment schemes

Required Associated Constants§

Source

const QUERY_INSTANCE: bool

Query instance or not

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 combined verification results

Source

type MSMAccumulator

Accumulator fot comressed verification

Required Methods§

Source

fn new(params: &'params Scheme::ParamsVerifier) -> Self

Creates new verifier instance

Source

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

Process the proof and returns unfinished result named Guard

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<'params, C: CurveAffine> Verifier<'params, IPACommitmentScheme<C>> for VerifierIPA<'params, C>

Source§

const QUERY_INSTANCE: bool = true

Source§

type Guard = GuardIPA<'params, C>

Source§

type MSMAccumulator = MSMIPA<'params, C>

Source§

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

Source§

const QUERY_INSTANCE: bool = false

Source§

type Guard = GuardKZG<'params, E>

Source§

type MSMAccumulator = DualMSM<'params, E>

Source§

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

Source§

const QUERY_INSTANCE: bool = false

Source§

type Guard = GuardKZG<'params, E>

Source§

type MSMAccumulator = DualMSM<'params, E>