Trait halo2_proofs::poly::commitment::Prover

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

Common multi-open prover interface for various commitment schemes

Required Methods§

source

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

Creates new prover instance

source

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

Create a multi-opening proof

Provided Methods§

source

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

Create a multi-opening proof

Object Safety§

This trait is not object safe.

Implementors§

source§

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

Create a multi-opening proof

source§

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

Create a multi-opening proof