symbolic-base-0.1.0.0: ZkFold Symbolic compiler and zero-knowledge proof protocols
Safe HaskellSafe-Inferred
LanguageHaskell2010

ZkFold.Base.Protocol.IVC.Commit

Synopsis

Documentation

class Commit algo a f where Source #

Commit to the object a with commitment key ck and results of type f

Methods

commit :: a -> f Source #

Instances

Instances details
RandomOracle algo a x => Commit (algo :: k) a x Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Commit

Methods

commit :: a -> x Source #

class AdditiveGroup c => HomomorphicCommit a c where Source #

Homomorphic commitment scheme, i.e. (hcommit x) * (hcommit y) == hcommit (x + y)

Methods

hcommit :: a -> c Source #

Instances

Instances details
(PedersonSetup s c, Zip s, Foldable s, Scale f c, AdditiveGroup c) => HomomorphicCommit (s f) c Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Commit

Methods

hcommit :: s f -> c Source #

class PedersonSetup s c where Source #

Methods

groupElements :: s c Source #

Instances

Instances details
(EllipticCurve curve, Random (ScalarField curve)) => PedersonSetup List (Point curve :: Type) Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Commit

Methods

groupElements :: [Point curve] Source #

(PedersonSetup s (Point curve), Functor s) => PedersonSetup (s :: Type -> Type) (Constant (Point curve) a :: Type) Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Commit

Methods

groupElements :: s (Constant (Point curve) a) Source #

(KnownNat n, EllipticCurve curve, Random (ScalarField curve), n <= PedersonSetupMaxSize) => PedersonSetup (Vector n :: Type -> Type) (Point curve :: Type) Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Commit

Methods

groupElements :: Vector n (Point curve) Source #