pub type PlonkVerifier<AS> = PlonkVerifier<AS, LimbsEncoding<LIMBS, BITS>>;
Expand description
AS stands for accumulation scheme.
AS can be either Kzg<Bn256, Gwc19>
(the original PLONK KZG multi-open) or Kzg<Bn256, Bdfg21>
(SHPLONK)
Aliased Type§
struct PlonkVerifier<AS>(/* private fields */);
Trait Implementations
Source§impl<C, L, AS, AE> CostEstimation<(C, L)> for PlonkVerifier<AS, AE>where
C: CurveAffine,
L: Loader<C>,
AS: AccumulationScheme<C, L> + PolynomialCommitmentScheme<C, L, Output = <AS as AccumulationScheme<C, L>>::Accumulator> + CostEstimation<C, Input = Vec<Query<Rotation>>>,
impl<C, L, AS, AE> CostEstimation<(C, L)> for PlonkVerifier<AS, AE>where
C: CurveAffine,
L: Loader<C>,
AS: AccumulationScheme<C, L> + PolynomialCommitmentScheme<C, L, Output = <AS as AccumulationScheme<C, L>>::Accumulator> + CostEstimation<C, Input = Vec<Query<Rotation>>>,
Source§type Input = PlonkProtocol<C, L>
type Input = PlonkProtocol<C, L>
Input for
CostEstimation::estimate_cost
.Source§fn estimate_cost(protocol: &PlonkProtocol<C, L>) -> Cost
fn estimate_cost(protocol: &PlonkProtocol<C, L>) -> Cost
Estimate cost of verifier given the input.
Source§impl<AS, AE> Debug for PlonkVerifier<AS, AE>
impl<AS, AE> Debug for PlonkVerifier<AS, AE>
Source§impl<C, L, AS, AE> SnarkVerifier<C, L> for PlonkVerifier<AS, AE>where
C: CurveAffine,
L: Loader<C>,
AS: AccumulationDecider<C, L> + PolynomialCommitmentScheme<C, L, Output = <AS as AccumulationScheme<C, L>>::Accumulator>,
<AS as AccumulationDecider<C, L>>::DecidingKey: AsRef<<AS as PolynomialCommitmentScheme<C, L>>::VerifyingKey>,
AE: AccumulatorEncoding<C, L, Accumulator = <AS as AccumulationScheme<C, L>>::Accumulator>,
impl<C, L, AS, AE> SnarkVerifier<C, L> for PlonkVerifier<AS, AE>where
C: CurveAffine,
L: Loader<C>,
AS: AccumulationDecider<C, L> + PolynomialCommitmentScheme<C, L, Output = <AS as AccumulationScheme<C, L>>::Accumulator>,
<AS as AccumulationDecider<C, L>>::DecidingKey: AsRef<<AS as PolynomialCommitmentScheme<C, L>>::VerifyingKey>,
AE: AccumulatorEncoding<C, L, Accumulator = <AS as AccumulationScheme<C, L>>::Accumulator>,
Source§type VerifyingKey = <AS as AccumulationDecider<C, L>>::DecidingKey
type VerifyingKey = <AS as AccumulationDecider<C, L>>::DecidingKey
Verifying key for subroutines if any.
Source§type Protocol = PlonkProtocol<C, L>
type Protocol = PlonkProtocol<C, L>
Protocol specifying configuration of a (S)NARK.
Source§type Proof = PlonkProof<C, L, AS>
type Proof = PlonkProof<C, L, AS>
Structured proof read from transcript.
Source§fn read_proof<T>(
vk: &<PlonkVerifier<AS, AE> as SnarkVerifier<C, L>>::VerifyingKey,
protocol: &<PlonkVerifier<AS, AE> as SnarkVerifier<C, L>>::Protocol,
instances: &[Vec<<L as ScalarLoader<<C as CurveAffine>::ScalarExt>>::LoadedScalar>],
transcript: &mut T,
) -> Result<<PlonkVerifier<AS, AE> as SnarkVerifier<C, L>>::Proof, Error>where
T: TranscriptRead<C, L>,
fn read_proof<T>(
vk: &<PlonkVerifier<AS, AE> as SnarkVerifier<C, L>>::VerifyingKey,
protocol: &<PlonkVerifier<AS, AE> as SnarkVerifier<C, L>>::Protocol,
instances: &[Vec<<L as ScalarLoader<<C as CurveAffine>::ScalarExt>>::LoadedScalar>],
transcript: &mut T,
) -> Result<<PlonkVerifier<AS, AE> as SnarkVerifier<C, L>>::Proof, Error>where
T: TranscriptRead<C, L>,
Read
SnarkVerifier::Proof
from transcript.Source§fn verify(
vk: &<PlonkVerifier<AS, AE> as SnarkVerifier<C, L>>::VerifyingKey,
protocol: &<PlonkVerifier<AS, AE> as SnarkVerifier<C, L>>::Protocol,
instances: &[Vec<<L as ScalarLoader<<C as CurveAffine>::ScalarExt>>::LoadedScalar>],
proof: &<PlonkVerifier<AS, AE> as SnarkVerifier<C, L>>::Proof,
) -> Result<<PlonkVerifier<AS, AE> as SnarkVerifier<C, L>>::Output, Error>
fn verify( vk: &<PlonkVerifier<AS, AE> as SnarkVerifier<C, L>>::VerifyingKey, protocol: &<PlonkVerifier<AS, AE> as SnarkVerifier<C, L>>::Protocol, instances: &[Vec<<L as ScalarLoader<<C as CurveAffine>::ScalarExt>>::LoadedScalar>], proof: &<PlonkVerifier<AS, AE> as SnarkVerifier<C, L>>::Proof, ) -> Result<<PlonkVerifier<AS, AE> as SnarkVerifier<C, L>>::Output, Error>
Verify
SnarkVerifier::Proof
and output SnarkVerifier::Output
.