Trait halo2_backend::poly::VerificationStrategy

source ·
pub trait VerificationStrategy<'params, Scheme: CommitmentScheme, V: Verifier<'params, Scheme>> {
    // Required methods
    fn new(params: &'params Scheme::ParamsVerifier) -> Self;
    fn process(
        self,
        f: impl FnOnce(V::MSMAccumulator) -> Result<V::Guard, Error>
    ) -> Result<Self, Error>
       where Self: Sized;
    fn finalize(self) -> bool;
}
Expand description

Trait representing a strategy for verifying Halo 2 proofs.

Required Methods§

source

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

Creates new verification strategy instance

source

fn process( self, f: impl FnOnce(V::MSMAccumulator) -> Result<V::Guard, Error> ) -> Result<Self, Error>
where Self: Sized,

Obtains an MSM from the verifier strategy and yields back the strategy

source

fn finalize(self) -> bool

Finalizes the batch and checks its validity.

Returns false if some proof was invalid. If the caller needs to identify specific failing proofs, it must re-process the proofs separately.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<'params, E, V> VerificationStrategy<'params, KZGCommitmentScheme<E>, V> for AccumulatorStrategy<E>
where E: MultiMillerLoop + Debug, V: Verifier<'params, KZGCommitmentScheme<E>, MSMAccumulator = DualMSM<E>, Guard = GuardKZG<E>>, E::G1Affine: SerdeCurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>, E::G1: CurveExt<AffineExt = E::G1Affine>, E::G2Affine: SerdeCurveAffine,

source§

impl<'params, E, V> VerificationStrategy<'params, KZGCommitmentScheme<E>, V> for SingleStrategy<E>
where E: MultiMillerLoop + Debug, V: Verifier<'params, KZGCommitmentScheme<E>, MSMAccumulator = DualMSM<E>, Guard = GuardKZG<E>>, E::G1Affine: SerdeCurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>, E::G1: CurveExt<AffineExt = E::G1Affine>, E::G2Affine: SerdeCurveAffine,