Trait CommitmentScheme

Source
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§

Source

type Scalar: Field

Application field of this commitment scheme

Source

type Curve: CurveAffine<ScalarExt = Self::Scalar>

Elliptic curve used to commit the application and witnesses

Source

type ParamsProver: for<'params> ParamsProver<'params, Self::Curve, ParamsVerifier = Self::ParamsVerifier>

Constant prover parameters

Source

type ParamsVerifier: for<'params> ParamsVerifier<'params, Self::Curve>

Constant verifier parameters

Required Methods§

Source

fn new_params(k: u32) -> Self::ParamsProver

Wrapper for parameter generator

Source

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.

Implementors§