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§
sourcefn new(params: &'params <Scheme as CommitmentScheme>::ParamsProver) -> Self
fn new(params: &'params <Scheme as CommitmentScheme>::ParamsProver) -> Self
Creates new prover instance
sourcefn 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,
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§
sourcefn 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,
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§
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
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