Trait halo2_proofs::poly::VerificationStrategy

source ·
pub trait VerificationStrategy<'params, Scheme, V>
where Scheme: CommitmentScheme, V: Verifier<'params, Scheme>,
{ // Required methods fn new( params: &'params <Scheme as CommitmentScheme>::ParamsVerifier ) -> Self; fn process( self, f: impl FnOnce(<V as Verifier<'params, Scheme>>::MSMAccumulator) -> Result<<V as Verifier<'params, Scheme>>::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 as CommitmentScheme>::ParamsVerifier) -> Self

Creates new verification strategy instance

source

fn process( self, f: impl FnOnce(<V as Verifier<'params, Scheme>>::MSMAccumulator) -> Result<<V as Verifier<'params, Scheme>>::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 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>, V: Verifier<'params, KZGCommitmentScheme<E>, MSMAccumulator = DualMSM<E>, Guard = GuardKZG<E>>, <E as Engine>::G2Affine: SerdeCurveAffine,

source§

impl<'params, E, V> VerificationStrategy<'params, KZGCommitmentScheme<E>, V> for SingleStrategy<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>, V: Verifier<'params, KZGCommitmentScheme<E>, MSMAccumulator = DualMSM<E>, Guard = GuardKZG<E>>, <E as Engine>::G2Affine: SerdeCurveAffine,