pub trait IsCommitmentScheme<F: IsField> {
type Commitment;
// Required methods
fn commit(&self, p: &Polynomial<FieldElement<F>>) -> Self::Commitment;
fn open(
&self,
x: &FieldElement<F>,
y: &FieldElement<F>,
p: &Polynomial<FieldElement<F>>,
) -> Self::Commitment;
fn open_batch(
&self,
x: &FieldElement<F>,
y: &[FieldElement<F>],
p: &[Polynomial<FieldElement<F>>],
upsilon: &FieldElement<F>,
) -> Self::Commitment;
fn verify(
&self,
x: &FieldElement<F>,
y: &FieldElement<F>,
p_commitment: &Self::Commitment,
proof: &Self::Commitment,
) -> bool;
fn verify_batch(
&self,
x: &FieldElement<F>,
ys: &[FieldElement<F>],
p_commitments: &[Self::Commitment],
proof: &Self::Commitment,
upsilon: &FieldElement<F>,
) -> bool;
}Required Associated Types§
type Commitment
Required Methods§
Sourcefn commit(&self, p: &Polynomial<FieldElement<F>>) -> Self::Commitment
fn commit(&self, p: &Polynomial<FieldElement<F>>) -> Self::Commitment
Create a commitment to a polynomial
Sourcefn open(
&self,
x: &FieldElement<F>,
y: &FieldElement<F>,
p: &Polynomial<FieldElement<F>>,
) -> Self::Commitment
fn open( &self, x: &FieldElement<F>, y: &FieldElement<F>, p: &Polynomial<FieldElement<F>>, ) -> Self::Commitment
Create an evaluation proof for a polynomial at x equal to y p(x) = y
Sourcefn open_batch(
&self,
x: &FieldElement<F>,
y: &[FieldElement<F>],
p: &[Polynomial<FieldElement<F>>],
upsilon: &FieldElement<F>,
) -> Self::Commitment
fn open_batch( &self, x: &FieldElement<F>, y: &[FieldElement<F>], p: &[Polynomial<FieldElement<F>>], upsilon: &FieldElement<F>, ) -> Self::Commitment
Create an evaluation proof for a slice of polynomials at x equal to y_i that is, we show that we evaluated correctly p_i (x) = y_i
Sourcefn verify(
&self,
x: &FieldElement<F>,
y: &FieldElement<F>,
p_commitment: &Self::Commitment,
proof: &Self::Commitment,
) -> bool
fn verify( &self, x: &FieldElement<F>, y: &FieldElement<F>, p_commitment: &Self::Commitment, proof: &Self::Commitment, ) -> bool
Verify an evaluation proof given the commitment to p, the point x and the evaluation y
Sourcefn verify_batch(
&self,
x: &FieldElement<F>,
ys: &[FieldElement<F>],
p_commitments: &[Self::Commitment],
proof: &Self::Commitment,
upsilon: &FieldElement<F>,
) -> bool
fn verify_batch( &self, x: &FieldElement<F>, ys: &[FieldElement<F>], p_commitments: &[Self::Commitment], proof: &Self::Commitment, upsilon: &FieldElement<F>, ) -> bool
Verify an evaluation proof given the commitments to p, the point x and the evaluations ys