Documentation ¶
Index ¶
- func AssembleProverVerifier(m uint32, ck *cm.Ck, P []mcl.G1, Q []mcl.G2, A []mcl.G1, B []mcl.G2) (Prover, Verifier)
- func GenerateBatchPlainInstance(m uint32, n uint32, alpha mcl.Fr, beta mcl.Fr, g mcl.G1, h mcl.G2) (*cm.Ck, []mcl.G1, []mcl.G2, []mcl.G1, []mcl.G2)
- func GipaBatchPlainTestSetup(m uint32, n uint32, alpha mcl.Fr, beta mcl.Fr, g mcl.G1, h mcl.G2) (Prover, Verifier)
- type Proof
- type Prover
- type Verifier
- func (self *Verifier) Clone(verifier *Verifier)
- func (self *Verifier) FiatShamir(Transcript []byte, T mcl.GT) mcl.Fr
- func (self *Verifier) Init(M uint32, N uint32, MN uint64, ck *cm.Ck, P []mcl.G1, Q []mcl.G2, B []mcl.G2)
- func (self *Verifier) Verify(proof Proof) bool
- func (self *Verifier) VerifyEdrax(proof Proof) bool
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AssembleProverVerifier ¶
func AssembleProverVerifier(m uint32, ck *cm.Ck, P []mcl.G1, Q []mcl.G2, A []mcl.G1, B []mcl.G2) (Prover, Verifier)
Run GenerateBatchPlainInstance to get ck, A, and B. Using that create a prover and verifier.
Types ¶
type Prover ¶
type Prover struct { Prover gipa.Prover N uint32 // Product of two 32 bits will be at most 64 bits M uint32 // Product of two 32 bits will be at most 64 bits MN uint64 // In hyperproofs we may have to pad vector A and B. Thus self.N * self.M may not be equal to self.MN }
func (*Prover) FiatShamir ¶
type Verifier ¶
type Verifier struct { Verifier gipa.Verifier W []mcl.G1 N uint32 // Be sure to do ceil when padding M uint32 MN uint64 // In hyperproofs we may have to pad vector A and B. Thus self.N * self.M may not be equal to self.MN B []mcl.G2 P []mcl.G1 Q []mcl.G2 }
func (*Verifier) FiatShamir ¶
func (*Verifier) VerifyEdrax ¶
GIPA + Edrax. Check the overleaf BMMV19 notes.
Click to show internal directories.
Click to hide internal directories.