pub type GWC = KzgAs<Bn256, Gwc19>;
Aliased Type§
struct GWC(/* private fields */);
Trait Implementations§
impl AccumulationSchemeSDK for GWC
impl EvmKzgAccumulationScheme for GWC
impl NativeKzgAccumulationScheme for GWC
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,
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>
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>
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>
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::Accumulator
s are valid.Source§impl<M, MOS> AccumulationDecider<<M as Engine>::G1Affine, Rc<EvmLoader>> for KzgAs<M, MOS>
impl<M, MOS> AccumulationDecider<<M as Engine>::G1Affine, Rc<EvmLoader>> for KzgAs<M, MOS>
Source§type DecidingKey = KzgDecidingKey<M>
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>
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>
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::Accumulator
s are valid.Source§impl<M, L, MOS> AccumulationScheme<<M as Engine>::G1Affine, L> for KzgAs<M, MOS>
impl<M, L, MOS> AccumulationScheme<<M as Engine>::G1Affine, L> for KzgAs<M, MOS>
Source§type Accumulator = KzgAccumulator<<M as Engine>::G1Affine, L>
type Accumulator = KzgAccumulator<<M as Engine>::G1Affine, L>
Accumulator to be accumulated.
Source§type VerifyingKey = KzgAsVerifyingKey
type VerifyingKey = KzgAsVerifyingKey
Verifying key.
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>
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>
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>
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::Accumulator
s 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,
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>
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>
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>
Create a proof that argues if old
AccumulationScheme::Accumulator
s
are properly accumulated into the new one, and returns the new one as
output.Source§impl<M> CostEstimation<<M as Engine>::G1Affine> for KzgAs<M, Gwc19>where
M: MultiMillerLoop,
impl<M> CostEstimation<<M as Engine>::G1Affine> for KzgAs<M, Gwc19>where
M: MultiMillerLoop,
Source§impl<M, L> PolynomialCommitmentScheme<<M as Engine>::G1Affine, L> for KzgAs<M, Gwc19>
impl<M, L> PolynomialCommitmentScheme<<M as Engine>::G1Affine, L> for KzgAs<M, Gwc19>
Source§type VerifyingKey = KzgSuccinctVerifyingKey<<M as Engine>::G1Affine>
type VerifyingKey = KzgSuccinctVerifyingKey<<M as Engine>::G1Affine>
Verifying key.
Source§fn read_proof<T>(
_: &<KzgAs<M, Gwc19> as PolynomialCommitmentScheme<<M as Engine>::G1Affine, L>>::VerifyingKey,
queries: &[Query<Rotation>],
transcript: &mut T,
) -> Result<<KzgAs<M, Gwc19> as PolynomialCommitmentScheme<<M as Engine>::G1Affine, L>>::Proof, Error>
fn read_proof<T>( _: &<KzgAs<M, Gwc19> as PolynomialCommitmentScheme<<M as Engine>::G1Affine, L>>::VerifyingKey, queries: &[Query<Rotation>], transcript: &mut T, ) -> Result<<KzgAs<M, Gwc19> as PolynomialCommitmentScheme<<M as Engine>::G1Affine, L>>::Proof, Error>
Read
PolynomialCommitmentScheme::Proof
from transcript.Source§fn verify(
svk: &<KzgAs<M, Gwc19> as PolynomialCommitmentScheme<<M as Engine>::G1Affine, L>>::VerifyingKey,
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: &<KzgAs<M, Gwc19> as PolynomialCommitmentScheme<<M as Engine>::G1Affine, L>>::Proof,
) -> Result<<KzgAs<M, Gwc19> as PolynomialCommitmentScheme<<M as Engine>::G1Affine, L>>::Output, Error>
fn verify( svk: &<KzgAs<M, Gwc19> as PolynomialCommitmentScheme<<M as Engine>::G1Affine, L>>::VerifyingKey, 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: &<KzgAs<M, Gwc19> as PolynomialCommitmentScheme<<M as Engine>::G1Affine, L>>::Proof, ) -> Result<<KzgAs<M, Gwc19> as PolynomialCommitmentScheme<<M as Engine>::G1Affine, L>>::Output, Error>
Verify
PolynomialCommitmentScheme::Proof
and output PolynomialCommitmentScheme::Output
.