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

ZkFold.Base.Protocol.KZG

Synopsis

Documentation

newtype KZG g1 g2 (d :: Natural) Source #

d is the degree of polynomials in the protocol

Constructors

KZG (ScalarFieldOf g1) 

Instances

Instances details
(KZG g1 g2 d ~ kzg, KnownNat d, Ord f, Binary f, FiniteField f, AdditiveGroup f, f ~ ScalarFieldOf g1, Binary g1, Pairing g1 g2 gt, Eq gt, CoreFunction g1 core) => NonInteractiveProof (KZG g1 g2 d) (core :: k) Source # 
Instance details

Defined in ZkFold.Base.Protocol.KZG

Associated Types

type Transcript (KZG g1 g2 d) Source #

type SetupProve (KZG g1 g2 d) Source #

type SetupVerify (KZG g1 g2 d) Source #

type Witness (KZG g1 g2 d) Source #

type Input (KZG g1 g2 d) Source #

type Proof (KZG g1 g2 d) Source #

Methods

setupProve :: KZG g1 g2 d -> SetupProve (KZG g1 g2 d) Source #

setupVerify :: KZG g1 g2 d -> SetupVerify (KZG g1 g2 d) Source #

prove :: SetupProve (KZG g1 g2 d) -> Witness (KZG g1 g2 d) -> (Input (KZG g1 g2 d), Proof (KZG g1 g2 d)) Source #

verify :: SetupVerify (KZG g1 g2 d) -> Input (KZG g1 g2 d) -> Proof (KZG g1 g2 d) -> Bool Source #

Arbitrary (ScalarFieldOf g1) => Arbitrary (KZG g1 g2 d) Source # 
Instance details

Defined in ZkFold.Base.Protocol.KZG

Methods

arbitrary :: Gen (KZG g1 g2 d) #

shrink :: KZG g1 g2 d -> [KZG g1 g2 d] #

Show (ScalarFieldOf g1) => Show (KZG g1 g2 d) Source # 
Instance details

Defined in ZkFold.Base.Protocol.KZG

Methods

showsPrec :: Int -> KZG g1 g2 d -> ShowS #

show :: KZG g1 g2 d -> String #

showList :: [KZG g1 g2 d] -> ShowS #

Eq (ScalarFieldOf g1) => Eq (KZG g1 g2 d) Source # 
Instance details

Defined in ZkFold.Base.Protocol.KZG

Methods

(==) :: KZG g1 g2 d -> KZG g1 g2 d -> Bool #

(/=) :: KZG g1 g2 d -> KZG g1 g2 d -> Bool #

type Input (KZG g1 g2 d) Source # 
Instance details

Defined in ZkFold.Base.Protocol.KZG

type Input (KZG g1 g2 d) = Map (ScalarFieldOf g1) (Vector g1, Vector (ScalarFieldOf g1))
type Proof (KZG g1 g2 d) Source # 
Instance details

Defined in ZkFold.Base.Protocol.KZG

type Proof (KZG g1 g2 d) = Map (ScalarFieldOf g1) g1
type SetupProve (KZG g1 g2 d) Source # 
Instance details

Defined in ZkFold.Base.Protocol.KZG

type SetupProve (KZG g1 g2 d) = Vector g1
type SetupVerify (KZG g1 g2 d) Source # 
Instance details

Defined in ZkFold.Base.Protocol.KZG

type SetupVerify (KZG g1 g2 d) = (Vector g1, g2, g2)
type Transcript (KZG g1 g2 d) Source # 
Instance details

Defined in ZkFold.Base.Protocol.KZG

type Transcript (KZG g1 g2 d) = ByteString
type Witness (KZG g1 g2 d) Source # 
Instance details

Defined in ZkFold.Base.Protocol.KZG

type Witness (KZG g1 g2 d) = WitnessKZG g1 g2 d

newtype WitnessKZG g1 g2 d Source #

Constructors

WitnessKZG 

Instances

Instances details
(KnownNat d, Arbitrary (ScalarFieldOf g1), Ord (ScalarFieldOf g1), Ring (ScalarFieldOf g1)) => Arbitrary (WitnessKZG g1 g2 d) Source # 
Instance details

Defined in ZkFold.Base.Protocol.KZG

Methods

arbitrary :: Gen (WitnessKZG g1 g2 d) #

shrink :: WitnessKZG g1 g2 d -> [WitnessKZG g1 g2 d] #

Show (ScalarFieldOf g1) => Show (WitnessKZG g1 g2 d) Source # 
Instance details

Defined in ZkFold.Base.Protocol.KZG

Methods

showsPrec :: Int -> WitnessKZG g1 g2 d -> ShowS #

show :: WitnessKZG g1 g2 d -> String #

showList :: [WitnessKZG g1 g2 d] -> ShowS #

provePolyVecEval :: forall size f. (KnownNat size, FiniteField f, Eq f) => PolyVec f size -> f -> PolyVec f size Source #