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§
Sourcetype Gadget1: CommitmentOpsGadget + CommitmentDefGadget<ConstraintField = CF2<Self::Commitment>, ScalarVar = EmulatedFieldVar<CF2<Self::Commitment>, Self::Scalar>, CommitmentVar = <Self::Commitment as Val>::Var, Widget = Self>
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.
Sourcetype Gadget2: CommitmentDefGadget<ConstraintField = Self::Scalar, ScalarVar = FpVar<Self::Scalar>, CommitmentVar = EmulatedAffineVar<Self::Scalar, Self::Commitment>, Widget = Self>
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".