Type Alias SHPLONK

Source
pub type SHPLONK = KzgAs<Bn256, Bdfg21>;

Aliased Type§

struct SHPLONK(/* private fields */);

Trait Implementations§

Source§

impl AccumulationSchemeSDK for SHPLONK

Source§

impl EvmKzgAccumulationScheme for SHPLONK

Source§

impl NativeKzgAccumulationScheme for SHPLONK

Source§

impl<M, MOS> AccumulationDecider<<M as Engine>::G1Affine, NativeLoader> for KzgAs<M, MOS>
where M: MultiMillerLoop, <M as Engine>::G1Affine: CurveAffine<ScalarExt = <M as Engine>::Fr, CurveExt = <M as Engine>::G1>, MOS: Clone + Debug,

Source§

type DecidingKey = KzgDecidingKey<M>

Deciding key. The key for decider for perform the final accumulator check.
Source§

fn decide( dk: &<KzgAs<M, MOS> as AccumulationDecider<<M as Engine>::G1Affine, NativeLoader>>::DecidingKey, _: KzgAccumulator<<M as Engine>::G1Affine, NativeLoader>, ) -> Result<(), Error>

Decide if a AccumulationScheme::Accumulator is valid.
Source§

fn decide_all( dk: &<KzgAs<M, MOS> as AccumulationDecider<<M as Engine>::G1Affine, NativeLoader>>::DecidingKey, accumulators: Vec<KzgAccumulator<<M as Engine>::G1Affine, NativeLoader>>, ) -> Result<(), Error>

Decide if all AccumulationScheme::Accumulators are valid.
Source§

impl<M, MOS> AccumulationDecider<<M as Engine>::G1Affine, Rc<EvmLoader>> for KzgAs<M, MOS>
where <M as Engine>::G2Affine: CurveAffine<ScalarExt = <M as Engine>::Fr, CurveExt = <M as Engine>::G2>, M: MultiMillerLoop, <M as Engine>::G1Affine: CurveAffine<ScalarExt = <M as Engine>::Fr, CurveExt = <M as Engine>::G1>, <M as Engine>::Fr: PrimeField<Repr = [u8; 32]>, MOS: Clone + Debug,

Source§

type DecidingKey = KzgDecidingKey<M>

Deciding key. The key for decider for perform the final accumulator check.
Source§

fn decide( dk: &<KzgAs<M, MOS> as AccumulationDecider<<M as Engine>::G1Affine, Rc<EvmLoader>>>::DecidingKey, _: KzgAccumulator<<M as Engine>::G1Affine, Rc<EvmLoader>>, ) -> Result<(), Error>

Decide if a AccumulationScheme::Accumulator is valid.
Source§

fn decide_all( dk: &<KzgAs<M, MOS> as AccumulationDecider<<M as Engine>::G1Affine, Rc<EvmLoader>>>::DecidingKey, accumulators: Vec<KzgAccumulator<<M as Engine>::G1Affine, Rc<EvmLoader>>>, ) -> Result<(), Error>

Decide if all AccumulationScheme::Accumulators are valid.
Source§

impl<M, L, MOS> AccumulationScheme<<M as Engine>::G1Affine, L> for KzgAs<M, MOS>
where M: MultiMillerLoop, <M as Engine>::G1Affine: CurveAffine<ScalarExt = <M as Engine>::Fr, CurveExt = <M as Engine>::G1>, L: Loader<<M as Engine>::G1Affine>, MOS: Clone + Debug,

Source§

type Accumulator = KzgAccumulator<<M as Engine>::G1Affine, L>

Accumulator to be accumulated.
Source§

type VerifyingKey = KzgAsVerifyingKey

Verifying key.
Source§

type Proof = KzgAsProof<<M as Engine>::G1Affine, L>

Structured proof read from transcript.
Source§

fn read_proof<T>( vk: &<KzgAs<M, MOS> as AccumulationScheme<<M as Engine>::G1Affine, L>>::VerifyingKey, instances: &[<KzgAs<M, MOS> as AccumulationScheme<<M as Engine>::G1Affine, L>>::Accumulator], transcript: &mut T, ) -> Result<<KzgAs<M, MOS> as AccumulationScheme<<M as Engine>::G1Affine, L>>::Proof, Error>
where T: TranscriptRead<<M as Engine>::G1Affine, L>,

Read a AccumulationScheme::Proof from transcript.
Source§

fn verify( _: &<KzgAs<M, MOS> as AccumulationScheme<<M as Engine>::G1Affine, L>>::VerifyingKey, instances: &[<KzgAs<M, MOS> as AccumulationScheme<<M as Engine>::G1Affine, L>>::Accumulator], proof: &<KzgAs<M, MOS> as AccumulationScheme<<M as Engine>::G1Affine, L>>::Proof, ) -> Result<<KzgAs<M, MOS> as AccumulationScheme<<M as Engine>::G1Affine, L>>::Accumulator, Error>

Verify old AccumulationScheme::Accumulators are accumulated properly into a new one with the AccumulationScheme::Proof, and returns the new one as output.
Source§

impl<M, MOS> AccumulationSchemeProver<<M as Engine>::G1Affine> for KzgAs<M, MOS>
where M: MultiMillerLoop, <M as Engine>::G1Affine: CurveAffine<ScalarExt = <M as Engine>::Fr, CurveExt = <M as Engine>::G1>, MOS: Clone + Debug,

Source§

type ProvingKey = KzgAsProvingKey<<M as Engine>::G1Affine>

Proving key.
Source§

fn create_proof<T, R>( pk: &<KzgAs<M, MOS> as AccumulationSchemeProver<<M as Engine>::G1Affine>>::ProvingKey, instances: &[KzgAccumulator<<M as Engine>::G1Affine, NativeLoader>], transcript: &mut T, rng: R, ) -> Result<KzgAccumulator<<M as Engine>::G1Affine, NativeLoader>, Error>
where T: TranscriptWrite<<M as Engine>::G1Affine>, R: Rng,

Create a proof that argues if old AccumulationScheme::Accumulators are properly accumulated into the new one, and returns the new one as output.
Source§

impl<M, MOS> Clone for KzgAs<M, MOS>
where M: Clone, MOS: Clone,

Source§

fn clone(&self) -> KzgAs<M, MOS>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<M> CostEstimation<<M as Engine>::G1Affine> for KzgAs<M, Bdfg21>
where M: MultiMillerLoop,

Source§

type Input = Vec<Query<Rotation>>

Source§

fn estimate_cost(_: &Vec<Query<Rotation>>) -> Cost

Estimate cost of verifier given the input.
Source§

impl<M, MOS> Debug for KzgAs<M, MOS>
where M: Debug, MOS: Debug,

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl<M, L> PolynomialCommitmentScheme<<M as Engine>::G1Affine, L> for KzgAs<M, Bdfg21>
where M: MultiMillerLoop, <M as Engine>::G1Affine: CurveAffine<ScalarExt = <M as Engine>::Fr, CurveExt = <M as Engine>::G1>, <M as Engine>::Fr: Ord, L: Loader<<M as Engine>::G1Affine>,

Source§

type VerifyingKey = KzgSuccinctVerifyingKey<<M as Engine>::G1Affine>

Verifying key.
Source§

type Proof = Bdfg21Proof<<M as Engine>::G1Affine, L>

Structured proof read from transcript.
Source§

type Output = KzgAccumulator<<M as Engine>::G1Affine, L>

Output of verification.
Source§

fn read_proof<T>( _: &KzgSuccinctVerifyingKey<<M as Engine>::G1Affine>, _: &[Query<Rotation>], transcript: &mut T, ) -> Result<Bdfg21Proof<<M as Engine>::G1Affine, L>, Error>
where T: TranscriptRead<<M as Engine>::G1Affine, L>,

Read PolynomialCommitmentScheme::Proof from transcript.
Source§

fn verify( svk: &KzgSuccinctVerifyingKey<<M as Engine>::G1Affine>, commitments: &[Msm<'_, <M as Engine>::G1Affine, L>], z: &<L as ScalarLoader<<<M as Engine>::G1Affine as CurveAffine>::ScalarExt>>::LoadedScalar, queries: &[Query<Rotation, <L as ScalarLoader<<<M as Engine>::G1Affine as CurveAffine>::ScalarExt>>::LoadedScalar>], proof: &Bdfg21Proof<<M as Engine>::G1Affine, L>, ) -> Result<<KzgAs<M, Bdfg21> as PolynomialCommitmentScheme<<M as Engine>::G1Affine, L>>::Output, Error>