Skip to main content

GroupBasedCommitment

Trait GroupBasedCommitment 

Source
pub trait GroupBasedCommitment: CommitmentDef<Commitment: SonobeCurve, Scalar = CF1<<Self as CommitmentDef>::Commitment>> + CommitmentOps {
    type Gadget1: CommitmentOpsGadget + CommitmentDefGadget<ConstraintField = CF2<Self::Commitment>, ScalarVar = EmulatedFieldVar<CF2<Self::Commitment>, Self::Scalar>, CommitmentVar = <Self::Commitment as Val>::Var, Widget = Self>;
    type Gadget2: CommitmentDefGadget<ConstraintField = Self::Scalar, ScalarVar = FpVar<Self::Scalar>, CommitmentVar = EmulatedAffineVar<Self::Scalar, Self::Commitment>, Widget = Self>;
}
Expand description

GroupBasedCommitment is a variant of commitment schemes built on groups (elliptic curves).

Required Associated Types§

Source

type Gadget1: CommitmentOpsGadget + CommitmentDefGadget<ConstraintField = CF2<Self::Commitment>, ScalarVar = EmulatedFieldVar<CF2<Self::Commitment>, Self::Scalar>, CommitmentVar = <Self::Commitment as Val>::Var, Widget = Self>

GroupBasedCommitment::Gadget1 points to the in-circuit gadget for the group-based commitment scheme over the curve’s base field.

Source

type Gadget2: CommitmentDefGadget<ConstraintField = Self::Scalar, ScalarVar = FpVar<Self::Scalar>, CommitmentVar = EmulatedAffineVar<Self::Scalar, Self::Commitment>, Widget = Self>

GroupBasedCommitment::Gadget2 points to the in-circuit gadget for the group-based commitment scheme over the curve’s scalar field.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§