pub trait PCCommitmentState:
Clone
+ CanonicalSerialize
+ CanonicalDeserialize {
type Randomness: Clone + CanonicalSerialize + CanonicalDeserialize;
// Required methods
fn empty() -> Self;
fn rand<R: RngCore>(
num_queries: usize,
has_degree_bound: bool,
num_vars: Option<usize>,
rng: &mut R,
) -> Self::Randomness;
}Expand description
Defines the minimal interface of commitment state for any polynomial commitment scheme. It might be randomness etc.
Required Associated Types§
Sourcetype Randomness: Clone + CanonicalSerialize + CanonicalDeserialize
type Randomness: Clone + CanonicalSerialize + CanonicalDeserialize
This is the type of Randomness that the rand method returns
Required Methods§
Sourcefn rand<R: RngCore>(
num_queries: usize,
has_degree_bound: bool,
num_vars: Option<usize>,
rng: &mut R,
) -> Self::Randomness
fn rand<R: RngCore>( num_queries: usize, has_degree_bound: bool, num_vars: Option<usize>, rng: &mut R, ) -> Self::Randomness
Samples randomness for commitments;
num_queries specifies the number of queries that the commitment will be opened at.
has_degree_bound indicates that the corresponding commitment has an enforced
num_vars specifies the number of variables for multivariate commitment.
strict degree bound.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementors§
Source§impl<E, P> PCCommitmentState for ark_poly_commit::marlin::marlin_pst13_pc::Randomness<E, P>where
E: Pairing,
P: DenseMVPolynomial<E::ScalarField>,
P::Point: Index<usize, Output = E::ScalarField>,
impl<E, P> PCCommitmentState for ark_poly_commit::marlin::marlin_pst13_pc::Randomness<E, P>where
E: Pairing,
P: DenseMVPolynomial<E::ScalarField>,
P::Point: Index<usize, Output = E::ScalarField>,
type Randomness = Randomness<E, P>
Source§impl<F: PrimeField> PCCommitmentState for HyraxCommitmentState<F>
A vector of scalars, each of which multiplies the distinguished group
element in the Pederson commitment key for a different commitment
impl<F: PrimeField> PCCommitmentState for HyraxCommitmentState<F>
A vector of scalars, each of which multiplies the distinguished group element in the Pederson commitment key for a different commitment