Trait snarkvm_wasm::PCCheckVar[][src]

pub trait PCCheckVar<PCF, PC, ConstraintF>: Clone where
    ConstraintF: PrimeField,
    PC: PolynomialCommitment<PCF>,
    PCF: PrimeField
{ type VerifierKeyVar: AllocGadget<<PC as PolynomialCommitment<PCF>>::VerifierKey, ConstraintF> + Clone + ToBytesGadget<ConstraintF>; type PreparedVerifierKeyVar: AllocGadget<<PC as PolynomialCommitment<PCF>>::PreparedVerifierKey, ConstraintF> + Clone + PrepareGadget<Self::VerifierKeyVar, ConstraintF> + Into<Self::VerifierKeyVar>; type CommitmentVar: AllocGadget<<PC as PolynomialCommitment<PCF>>::Commitment, ConstraintF> + Clone + ToBytesGadget<ConstraintF>; type PreparedCommitmentVar: AllocGadget<<PC as PolynomialCommitment<PCF>>::PreparedCommitment, ConstraintF> + PrepareGadget<Self::CommitmentVar, ConstraintF> + Clone; type LabeledCommitmentVar: AllocGadget<LabeledCommitment<<PC as PolynomialCommitment<PCF>>::Commitment>, ConstraintF> + Clone; type PreparedLabeledCommitmentVar: Clone; type ProofVar: AllocGadget<<PC as PolynomialCommitment<PCF>>::Proof, ConstraintF> + Clone; type BatchLCProofVar: AllocGadget<BatchLCProof<PCF, PC>, ConstraintF> + Clone; fn batch_check_evaluations<CS>(
        cs: CS,
        verification_key: &Self::VerifierKeyVar,
        commitments: &[Self::LabeledCommitmentVar],
        query_set: &QuerySetVar<PCF, ConstraintF>,
        evaluations: &EvaluationsVar<PCF, ConstraintF>,
        proofs: &[Self::ProofVar],
        rand_data: &PCCheckRandomDataVar<PCF, ConstraintF>
    ) -> Result<Boolean, SynthesisError>
    where
        CS: ConstraintSystem<ConstraintF>
;
fn prepared_check_combinations<CS>(
        cs: CS,
        prepared_verification_key: &Self::PreparedVerifierKeyVar,
        linear_combinations: &[LinearCombinationVar<PCF, ConstraintF>],
        prepared_commitments: &[Self::PreparedLabeledCommitmentVar],
        query_set: &QuerySetVar<PCF, ConstraintF>,
        evaluations: &EvaluationsVar<PCF, ConstraintF>,
        proof: &Self::BatchLCProofVar,
        rand_data: &PCCheckRandomDataVar<PCF, ConstraintF>
    ) -> Result<Boolean, SynthesisError>
    where
        CS: ConstraintSystem<ConstraintF>
;
fn create_labeled_commitment(
        label: String,
        commitment: Self::CommitmentVar,
        degree_bound: Option<FpGadget<ConstraintF>>
    ) -> Self::LabeledCommitmentVar;
fn create_prepared_labeled_commitment(
        label: String,
        commitment: Self::PreparedCommitmentVar,
        degree_bound: Option<FpGadget<ConstraintF>>
    ) -> Self::PreparedLabeledCommitmentVar; }
Expand description

Describes the interface for a gadget for a PolynomialCommitment verifier.

Associated Types

type VerifierKeyVar: AllocGadget<<PC as PolynomialCommitment<PCF>>::VerifierKey, ConstraintF> + Clone + ToBytesGadget<ConstraintF>[src]

An allocated version of PC::VerifierKey.

type PreparedVerifierKeyVar: AllocGadget<<PC as PolynomialCommitment<PCF>>::PreparedVerifierKey, ConstraintF> + Clone + PrepareGadget<Self::VerifierKeyVar, ConstraintF> + Into<Self::VerifierKeyVar>[src]

An allocated version of PC::PreparedVerifierKey.

type CommitmentVar: AllocGadget<<PC as PolynomialCommitment<PCF>>::Commitment, ConstraintF> + Clone + ToBytesGadget<ConstraintF>[src]

An allocated version of PC::Commitment.

type PreparedCommitmentVar: AllocGadget<<PC as PolynomialCommitment<PCF>>::PreparedCommitment, ConstraintF> + PrepareGadget<Self::CommitmentVar, ConstraintF> + Clone[src]

An allocated version of PC::PreparedCommitment.

type LabeledCommitmentVar: AllocGadget<LabeledCommitment<<PC as PolynomialCommitment<PCF>>::Commitment>, ConstraintF> + Clone[src]

An allocated version of LabeledCommitment<PC::Commitment>.

type PreparedLabeledCommitmentVar: Clone[src]

A prepared, allocated version of LabeledCommitment<PC::Commitment>.

type ProofVar: AllocGadget<<PC as PolynomialCommitment<PCF>>::Proof, ConstraintF> + Clone[src]

An allocated version of PC::Proof.

type BatchLCProofVar: AllocGadget<BatchLCProof<PCF, PC>, ConstraintF> + Clone[src]

An allocated version of PC::BatchLCProof.

Required methods

fn batch_check_evaluations<CS>(
    cs: CS,
    verification_key: &Self::VerifierKeyVar,
    commitments: &[Self::LabeledCommitmentVar],
    query_set: &QuerySetVar<PCF, ConstraintF>,
    evaluations: &EvaluationsVar<PCF, ConstraintF>,
    proofs: &[Self::ProofVar],
    rand_data: &PCCheckRandomDataVar<PCF, ConstraintF>
) -> Result<Boolean, SynthesisError> where
    CS: ConstraintSystem<ConstraintF>, 
[src]

Add to ConstraintSystem<ConstraintF> new constraints that check that proof_i is a valid evaluation proof at point_i for the polynomial in commitment_i.

fn prepared_check_combinations<CS>(
    cs: CS,
    prepared_verification_key: &Self::PreparedVerifierKeyVar,
    linear_combinations: &[LinearCombinationVar<PCF, ConstraintF>],
    prepared_commitments: &[Self::PreparedLabeledCommitmentVar],
    query_set: &QuerySetVar<PCF, ConstraintF>,
    evaluations: &EvaluationsVar<PCF, ConstraintF>,
    proof: &Self::BatchLCProofVar,
    rand_data: &PCCheckRandomDataVar<PCF, ConstraintF>
) -> Result<Boolean, SynthesisError> where
    CS: ConstraintSystem<ConstraintF>, 
[src]

Add to ConstraintSystem<ConstraintF> new constraints that conditionally check that proof is a valid evaluation proof at the points in query_set for the combinations linear_combinations.

fn create_labeled_commitment(
    label: String,
    commitment: Self::CommitmentVar,
    degree_bound: Option<FpGadget<ConstraintF>>
) -> Self::LabeledCommitmentVar
[src]

Create the labeled commitment gadget from the commitment gadget

fn create_prepared_labeled_commitment(
    label: String,
    commitment: Self::PreparedCommitmentVar,
    degree_bound: Option<FpGadget<ConstraintF>>
) -> Self::PreparedLabeledCommitmentVar
[src]

Create the prepared labeled commitment gadget from the commitment gadget

Implementors

impl<TargetCurve, BaseCurve, PG> PCCheckVar<<TargetCurve as PairingEngine>::Fr, MarlinKZG10<TargetCurve>, <BaseCurve as PairingEngine>::Fr> for MarlinKZG10Gadget<TargetCurve, BaseCurve, PG> where
    TargetCurve: PairingEngine,
    BaseCurve: PairingEngine,
    PG: PairingGadget<TargetCurve, <BaseCurve as PairingEngine>::Fr>,
    <TargetCurve as PairingEngine>::G1Affine: ToConstraintField<<BaseCurve as PairingEngine>::Fr>,
    <TargetCurve as PairingEngine>::G2Affine: ToConstraintField<<BaseCurve as PairingEngine>::Fr>, 
[src]

type BatchLCProofVar = BatchLCProofVar<TargetCurve, BaseCurve, PG>

type CommitmentVar = CommitmentVar<TargetCurve, BaseCurve, PG>

type LabeledCommitmentVar = LabeledCommitmentVar<TargetCurve, BaseCurve, PG>

type PreparedCommitmentVar = PreparedCommitmentVar<TargetCurve, BaseCurve, PG>

type PreparedLabeledCommitmentVar = PreparedLabeledCommitmentVar<TargetCurve, BaseCurve, PG>

type PreparedVerifierKeyVar = PreparedVerifierKeyVar<TargetCurve, BaseCurve, PG>

type ProofVar = ProofVar<TargetCurve, BaseCurve, PG>

type VerifierKeyVar = VerifierKeyVar<TargetCurve, BaseCurve, PG>

pub fn batch_check_evaluations<CS>(
    cs: CS,
    verification_key: &<MarlinKZG10Gadget<TargetCurve, BaseCurve, PG> as PCCheckVar<<TargetCurve as PairingEngine>::Fr, MarlinKZG10<TargetCurve>, <BaseCurve as PairingEngine>::Fr>>::VerifierKeyVar,
    commitments: &[<MarlinKZG10Gadget<TargetCurve, BaseCurve, PG> as PCCheckVar<<TargetCurve as PairingEngine>::Fr, MarlinKZG10<TargetCurve>, <BaseCurve as PairingEngine>::Fr>>::LabeledCommitmentVar],
    query_set: &QuerySetVar<<TargetCurve as PairingEngine>::Fr, <BaseCurve as PairingEngine>::Fr>,
    evaluations: &EvaluationsVar<<TargetCurve as PairingEngine>::Fr, <BaseCurve as PairingEngine>::Fr>,
    proofs: &[<MarlinKZG10Gadget<TargetCurve, BaseCurve, PG> as PCCheckVar<<TargetCurve as PairingEngine>::Fr, MarlinKZG10<TargetCurve>, <BaseCurve as PairingEngine>::Fr>>::ProofVar],
    rand_data: &PCCheckRandomDataVar<<TargetCurve as PairingEngine>::Fr, <BaseCurve as PairingEngine>::Fr>
) -> Result<Boolean, SynthesisError> where
    CS: ConstraintSystem<<BaseCurve as PairingEngine>::Fr>, 
[src]

pub fn prepared_check_combinations<CS>(
    cs: CS,
    prepared_verification_key: &<MarlinKZG10Gadget<TargetCurve, BaseCurve, PG> as PCCheckVar<<TargetCurve as PairingEngine>::Fr, MarlinKZG10<TargetCurve>, <BaseCurve as PairingEngine>::Fr>>::PreparedVerifierKeyVar,
    linear_combinations: &[LinearCombinationVar<<TargetCurve as PairingEngine>::Fr, <BaseCurve as PairingEngine>::Fr>],
    prepared_commitments: &[<MarlinKZG10Gadget<TargetCurve, BaseCurve, PG> as PCCheckVar<<TargetCurve as PairingEngine>::Fr, MarlinKZG10<TargetCurve>, <BaseCurve as PairingEngine>::Fr>>::PreparedLabeledCommitmentVar],
    query_set: &QuerySetVar<<TargetCurve as PairingEngine>::Fr, <BaseCurve as PairingEngine>::Fr>,
    evaluations: &EvaluationsVar<<TargetCurve as PairingEngine>::Fr, <BaseCurve as PairingEngine>::Fr>,
    proof: &<MarlinKZG10Gadget<TargetCurve, BaseCurve, PG> as PCCheckVar<<TargetCurve as PairingEngine>::Fr, MarlinKZG10<TargetCurve>, <BaseCurve as PairingEngine>::Fr>>::BatchLCProofVar,
    rand_data: &PCCheckRandomDataVar<<TargetCurve as PairingEngine>::Fr, <BaseCurve as PairingEngine>::Fr>
) -> Result<Boolean, SynthesisError> where
    CS: ConstraintSystem<<BaseCurve as PairingEngine>::Fr>, 
[src]

pub fn create_labeled_commitment(
    label: String,
    commitment: <MarlinKZG10Gadget<TargetCurve, BaseCurve, PG> as PCCheckVar<<TargetCurve as PairingEngine>::Fr, MarlinKZG10<TargetCurve>, <BaseCurve as PairingEngine>::Fr>>::CommitmentVar,
    degree_bound: Option<FpGadget<<BaseCurve as PairingEngine>::Fr>>
) -> <MarlinKZG10Gadget<TargetCurve, BaseCurve, PG> as PCCheckVar<<TargetCurve as PairingEngine>::Fr, MarlinKZG10<TargetCurve>, <BaseCurve as PairingEngine>::Fr>>::LabeledCommitmentVar
[src]

pub fn create_prepared_labeled_commitment(
    label: String,
    prepared_commitment: <MarlinKZG10Gadget<TargetCurve, BaseCurve, PG> as PCCheckVar<<TargetCurve as PairingEngine>::Fr, MarlinKZG10<TargetCurve>, <BaseCurve as PairingEngine>::Fr>>::PreparedCommitmentVar,
    degree_bound: Option<FpGadget<<BaseCurve as PairingEngine>::Fr>>
) -> <MarlinKZG10Gadget<TargetCurve, BaseCurve, PG> as PCCheckVar<<TargetCurve as PairingEngine>::Fr, MarlinKZG10<TargetCurve>, <BaseCurve as PairingEngine>::Fr>>::PreparedLabeledCommitmentVar
[src]