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§
sourcefn new(params: &'params Scheme::ParamsProver) -> Self
fn new(params: &'params Scheme::ParamsProver) -> Self
Creates new prover instance
sourcefn 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<()>
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<()>
Create a multi-opening proof
Provided Methods§
sourcefn create_proof<'com, E: EncodedChallenge<Scheme::Curve>, T: TranscriptWrite<Scheme::Curve, E>, R, I>(
&self,
rng: R,
transcript: &mut T,
queries: I
) -> Result<()>
fn create_proof<'com, E: EncodedChallenge<Scheme::Curve>, T: TranscriptWrite<Scheme::Curve, E>, R, I>( &self, rng: R, transcript: &mut T, queries: I ) -> Result<()>
Create a multi-opening proof
Object Safety§
This trait is not object safe.
Implementors§
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
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