Trait halo2_backend::poly::commitment::Prover

source ·
pub trait Prover<'params, Scheme: CommitmentScheme> {
    // Required methods
    fn new(params: &'params Scheme::ParamsProver) -> Self;
    fn create_proof_with_engine<'com, E: EncodedChallenge<Scheme::Curve>, T: TranscriptWrite<Scheme::Curve, E>, R, I>(
        &self,
        engine: &impl MsmAccel<Scheme::Curve>,
        rng: R,
        transcript: &mut T,
        queries: I
    ) -> Result<()>
       where I: IntoIterator<Item = ProverQuery<'com, Scheme::Curve>> + Clone,
             R: RngCore;

    // Provided method
    fn create_proof<'com, E: EncodedChallenge<Scheme::Curve>, T: TranscriptWrite<Scheme::Curve, E>, R, I>(
        &self,
        rng: R,
        transcript: &mut T,
        queries: I
    ) -> Result<()>
       where I: IntoIterator<Item = ProverQuery<'com, Scheme::Curve>> + Clone,
             R: RngCore { ... }
}
Expand description

Common multi-open prover interface for various commitment schemes

Required Methods§

source

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

Creates new prover instance

source

fn create_proof_with_engine<'com, E: EncodedChallenge<Scheme::Curve>, T: TranscriptWrite<Scheme::Curve, E>, R, I>( &self, engine: &impl MsmAccel<Scheme::Curve>, rng: R, transcript: &mut T, queries: I ) -> Result<()>
where I: IntoIterator<Item = ProverQuery<'com, Scheme::Curve>> + Clone, R: RngCore,

Create a multi-opening proof

Provided Methods§

source

fn create_proof<'com, E: EncodedChallenge<Scheme::Curve>, T: TranscriptWrite<Scheme::Curve, E>, R, I>( &self, rng: R, transcript: &mut T, queries: I ) -> Result<()>
where I: IntoIterator<Item = ProverQuery<'com, Scheme::Curve>> + Clone, R: RngCore,

Create a multi-opening proof

Object Safety§

This trait is not object safe.

Implementors§

source§

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

Create a multi-opening proof

source§

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

Create a multi-opening proof