halo2_axiom::poly::commitment

Trait Prover

Source
pub trait Prover<'params, Scheme: CommitmentScheme> {
    const QUERY_INSTANCE: bool;

    // Required methods
    fn new(params: &'params Scheme::ParamsProver) -> Self;
    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 Associated Constants§

Source

const QUERY_INSTANCE: bool

Query instance or not

Required Methods§

Source

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

Creates new prover instance

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

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<'params, C: CurveAffine> Prover<'params, IPACommitmentScheme<C>> for ProverIPA<'params, C>

Source§

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

Create a multi-opening proof

Source§

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

Create a multi-opening proof