Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- class Commit algo a f where
- commit :: a -> f
- class AdditiveGroup c => HomomorphicCommit a c where
- hcommit :: a -> c
- class PedersonSetup s c where
- groupElements :: s c
Documentation
class Commit algo a f where Source #
Commit to the object a
with commitment key ck
and results of type f
Instances
RandomOracle algo a x => Commit (algo :: k) a x Source # | |
Defined in ZkFold.Base.Protocol.IVC.Commit |
class AdditiveGroup c => HomomorphicCommit a c where Source #
Homomorphic commitment scheme, i.e. (hcommit x) * (hcommit y) == hcommit (x + y)
Instances
(PedersonSetup s c, Zip s, Foldable s, Scale f c, AdditiveGroup c) => HomomorphicCommit (s f) c Source # | |
Defined in ZkFold.Base.Protocol.IVC.Commit |
class PedersonSetup s c where Source #
groupElements :: s c Source #
Instances
(EllipticCurve curve, Random (ScalarField curve)) => PedersonSetup List (Point curve :: Type) Source # | |
Defined in ZkFold.Base.Protocol.IVC.Commit groupElements :: [Point curve] Source # | |
(PedersonSetup s (Point curve), Functor s) => PedersonSetup (s :: Type -> Type) (Constant (Point curve) a :: Type) Source # | |
Defined in ZkFold.Base.Protocol.IVC.Commit 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 # | |
Defined in ZkFold.Base.Protocol.IVC.Commit groupElements :: Vector n (Point curve) Source # |