pub trait CommitmentScheme {
type Scalar: Field;
type Curve: CurveAffine<ScalarExt = Self::Scalar>;
type ParamsProver: for<'params> ParamsProver<'params, Self::Curve, ParamsVerifier = Self::ParamsVerifier>;
type ParamsVerifier: for<'params> ParamsVerifier<'params, Self::Curve>;
// Required methods
fn new_params(k: u32) -> Self::ParamsProver;
fn read_params<R: Read>(reader: &mut R) -> Result<Self::ParamsProver>;
}
Expand description
Defines components of a commitment scheme.
Required Associated Types§
Sourcetype Curve: CurveAffine<ScalarExt = Self::Scalar>
type Curve: CurveAffine<ScalarExt = Self::Scalar>
Elliptic curve used to commit the application and witnesses
Sourcetype ParamsProver: for<'params> ParamsProver<'params, Self::Curve, ParamsVerifier = Self::ParamsVerifier>
type ParamsProver: for<'params> ParamsProver<'params, Self::Curve, ParamsVerifier = Self::ParamsVerifier>
Constant prover parameters
Sourcetype ParamsVerifier: for<'params> ParamsVerifier<'params, Self::Curve>
type ParamsVerifier: for<'params> ParamsVerifier<'params, Self::Curve>
Constant verifier parameters
Required Methods§
Sourcefn new_params(k: u32) -> Self::ParamsProver
fn new_params(k: u32) -> Self::ParamsProver
Wrapper for parameter generator
Sourcefn read_params<R: Read>(reader: &mut R) -> Result<Self::ParamsProver>
fn read_params<R: Read>(reader: &mut R) -> Result<Self::ParamsProver>
Wrapper for parameter reader
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.