Trait poly_commitment::OpenProof
source · pub trait OpenProof<G: CommitmentCurve>: Sized + Clone {
type SRS: SRS<G> + Debug;
// Required methods
fn open<EFqSponge, RNG, D: EvaluationDomain<<G as AffineRepr>::ScalarField>>(
srs: &Self::SRS,
group_map: &<G as CommitmentCurve>::Map,
plnms: &'_ [(DensePolynomialOrEvaluations<'_, G::ScalarField, D>, PolyComm<G::ScalarField>)],
elm: &[<G as AffineRepr>::ScalarField],
polyscale: <G as AffineRepr>::ScalarField,
evalscale: <G as AffineRepr>::ScalarField,
sponge: EFqSponge,
rng: &mut RNG
) -> Self
where EFqSponge: Clone + FqSponge<<G as AffineRepr>::BaseField, G, <G as AffineRepr>::ScalarField>,
RNG: RngCore + CryptoRng;
fn verify<EFqSponge, RNG>(
srs: &Self::SRS,
group_map: &G::Map,
batch: &mut [BatchEvaluationProof<'_, G, EFqSponge, Self>],
rng: &mut RNG
) -> bool
where EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>,
RNG: RngCore + CryptoRng;
}
Required Associated Types§
Required Methods§
sourcefn open<EFqSponge, RNG, D: EvaluationDomain<<G as AffineRepr>::ScalarField>>(
srs: &Self::SRS,
group_map: &<G as CommitmentCurve>::Map,
plnms: &'_ [(DensePolynomialOrEvaluations<'_, G::ScalarField, D>, PolyComm<G::ScalarField>)],
elm: &[<G as AffineRepr>::ScalarField],
polyscale: <G as AffineRepr>::ScalarField,
evalscale: <G as AffineRepr>::ScalarField,
sponge: EFqSponge,
rng: &mut RNG
) -> Selfwhere
EFqSponge: Clone + FqSponge<<G as AffineRepr>::BaseField, G, <G as AffineRepr>::ScalarField>,
RNG: RngCore + CryptoRng,
fn open<EFqSponge, RNG, D: EvaluationDomain<<G as AffineRepr>::ScalarField>>( srs: &Self::SRS, group_map: &<G as CommitmentCurve>::Map, plnms: &'_ [(DensePolynomialOrEvaluations<'_, G::ScalarField, D>, PolyComm<G::ScalarField>)], elm: &[<G as AffineRepr>::ScalarField], polyscale: <G as AffineRepr>::ScalarField, evalscale: <G as AffineRepr>::ScalarField, sponge: EFqSponge, rng: &mut RNG ) -> Selfwhere EFqSponge: Clone + FqSponge<<G as AffineRepr>::BaseField, G, <G as AffineRepr>::ScalarField>, RNG: RngCore + CryptoRng,
Create an opening proof for a batch of polynomials. The parameters are the following:
srs
: the structured reference string used to commit to the polynomialsgroup_map
: the group mapplnms
: the list of polynomials to open, with possible blinders. The type is simply an alias to handle the polynomials in evaluations or coefficients forms.elm
: the evaluation pointspolyscale
: a challenge to bacth the polynomials.evalscale
: a challenge to bacth the evaluation pointssponge
: Sponge used to coin and absorb values and simulate non-interactivity using the Fiat-Shamir transformation.rng
: a pseudo random number generator used for zero-knowledge