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

ZkFold.Base.Protocol.Plonkup

Documentation

data Plonkup p (i :: Natural) (n :: Natural) (l :: Natural) curve1 curve2 transcript Source #

Constructors

Plonkup 

Fields

Instances

Instances details
(KnownNat i, KnownNat n, KnownNat l, Representable p, Ord (BaseField c1), AdditiveGroup (BaseField c1), Pairing c1 c2, Arithmetic (ScalarField c1), ToTranscript ts Word8, ToTranscript ts (ScalarField c1), ToTranscript ts (PointCompressed c1), FromTranscript ts (ScalarField c1), CoreFunction c1 core) => NonInteractiveProof (Plonkup p i n l c1 c2 ts) (core :: k3) Source #

Based on the paper https://eprint.iacr.org/2022/086.pdf

Instance details

Defined in ZkFold.Base.Protocol.Plonkup

Associated Types

type Transcript (Plonkup p i n l c1 c2 ts) Source #

type SetupProve (Plonkup p i n l c1 c2 ts) Source #

type SetupVerify (Plonkup p i n l c1 c2 ts) Source #

type Witness (Plonkup p i n l c1 c2 ts) Source #

type Input (Plonkup p i n l c1 c2 ts) Source #

type Proof (Plonkup p i n l c1 c2 ts) Source #

Methods

setupProve :: Plonkup p i n l c1 c2 ts -> SetupProve (Plonkup p i n l c1 c2 ts) Source #

setupVerify :: Plonkup p i n l c1 c2 ts -> SetupVerify (Plonkup p i n l c1 c2 ts) Source #

prove :: SetupProve (Plonkup p i n l c1 c2 ts) -> Witness (Plonkup p i n l c1 c2 ts) -> (Input (Plonkup p i n l c1 c2 ts), Proof (Plonkup p i n l c1 c2 ts)) Source #

verify :: SetupVerify (Plonkup p i n l c1 c2 ts) -> Input (Plonkup p i n l c1 c2 ts) -> Proof (Plonkup p i n l c1 c2 ts) -> Bool Source #

(KnownNat i, KnownNat n, KnownNat l, Arithmetic (ScalarField c1), Arbitrary (ScalarField c1), Binary (ScalarField c1), Binary (Rep p)) => Arbitrary (Plonkup p i n l c1 c2 t) Source # 
Instance details

Defined in ZkFold.Base.Protocol.Plonkup.Internal

Methods

arbitrary :: Gen (Plonkup p i n l c1 c2 t) #

shrink :: Plonkup p i n l c1 c2 t -> [Plonkup p i n l c1 c2 t] #

(Show (ScalarField c1), Arithmetic (ScalarField c1), KnownNat l, KnownNat i) => Show (Plonkup p i n l c1 c2 t) Source # 
Instance details

Defined in ZkFold.Base.Protocol.Plonkup.Internal

Methods

showsPrec :: Int -> Plonkup p i n l c1 c2 t -> ShowS #

show :: Plonkup p i n l c1 c2 t -> String #

showList :: [Plonkup p i n l c1 c2 t] -> ShowS #

type Input (Plonkup p i n l c1 c2 ts) Source # 
Instance details

Defined in ZkFold.Base.Protocol.Plonkup

type Input (Plonkup p i n l c1 c2 ts) = PlonkupInput l c1
type Proof (Plonkup p i n l c1 c2 ts) Source # 
Instance details

Defined in ZkFold.Base.Protocol.Plonkup

type Proof (Plonkup p i n l c1 c2 ts) = PlonkupProof c1
type SetupProve (Plonkup p i n l c1 c2 ts) Source # 
Instance details

Defined in ZkFold.Base.Protocol.Plonkup

type SetupProve (Plonkup p i n l c1 c2 ts) = PlonkupProverSetup p i n l c1 c2
type SetupVerify (Plonkup p i n l c1 c2 ts) Source # 
Instance details

Defined in ZkFold.Base.Protocol.Plonkup

type SetupVerify (Plonkup p i n l c1 c2 ts) = PlonkupVerifierSetup p i n l c1 c2
type Transcript (Plonkup p i n l c1 c2 ts) Source # 
Instance details

Defined in ZkFold.Base.Protocol.Plonkup

type Transcript (Plonkup p i n l c1 c2 ts) = ts
type Witness (Plonkup p i n l c1 c2 ts) Source # 
Instance details

Defined in ZkFold.Base.Protocol.Plonkup

type Witness (Plonkup p i n l c1 c2 ts) = (PlonkupWitnessInput p i c1, PlonkupProverSecret c1)

Orphan instances

(KnownNat i, KnownNat n, KnownNat l, Representable p, Ord (BaseField c1), AdditiveGroup (BaseField c1), Pairing c1 c2, Arithmetic (ScalarField c1), ToTranscript ts Word8, ToTranscript ts (ScalarField c1), ToTranscript ts (PointCompressed c1), FromTranscript ts (ScalarField c1), CoreFunction c1 core) => NonInteractiveProof (Plonkup p i n l c1 c2 ts) (core :: k) Source #

Based on the paper https://eprint.iacr.org/2022/086.pdf

Instance details

Associated Types

type Transcript (Plonkup p i n l c1 c2 ts) Source #

type SetupProve (Plonkup p i n l c1 c2 ts) Source #

type SetupVerify (Plonkup p i n l c1 c2 ts) Source #

type Witness (Plonkup p i n l c1 c2 ts) Source #

type Input (Plonkup p i n l c1 c2 ts) Source #

type Proof (Plonkup p i n l c1 c2 ts) Source #

Methods

setupProve :: Plonkup p i n l c1 c2 ts -> SetupProve (Plonkup p i n l c1 c2 ts) Source #

setupVerify :: Plonkup p i n l c1 c2 ts -> SetupVerify (Plonkup p i n l c1 c2 ts) Source #

prove :: SetupProve (Plonkup p i n l c1 c2 ts) -> Witness (Plonkup p i n l c1 c2 ts) -> (Input (Plonkup p i n l c1 c2 ts), Proof (Plonkup p i n l c1 c2 ts)) Source #

verify :: SetupVerify (Plonkup p i n l c1 c2 ts) -> Input (Plonkup p i n l c1 c2 ts) -> Proof (Plonkup p i n l c1 c2 ts) -> Bool Source #