gnark-plonky2-verifier/plonky2_verifier/verifier.go
plonky2_verifier/verifier.goRaw
1package plonky2_verifier
2
3// import (
4// . "gnark-ed25519/field"
5// "gnark-ed25519/poseidon"
6
7// "github.com/consensys/gnark/frontend"
8// )
9
10// type VerifierChip struct {
11// api frontend.API
12// field frontend.API
13// poseidonChip poseidon.PoseidonChip
14// }
15
16// func (c *VerifierChip) GetPublicInputsHash(publicInputs []F) poseidon.HashOutput {
17// return c.poseidonChip.HashNoPad(publicInputs)
18// }
19
20// func (c *VerifierChip) GetChallenges(proofWithPis ProofWithPublicInputs, publicInputsHash Hash, commonData CommonCircuitData) {
21// config := commonData.Config
22// numChallenges := int(config.NumChallenges)
23// challenger := NewChallengerChip(c.api, c.field, c.poseidonChip)
24
25// challenger.ObserveHash(commonData.CircuitDigest)
26// challenger.ObserveHash(publicInputsHash)
27// challenger.ObserveCap(proofWithPis.Proof.WiresCap)
28// plonkBetas := challenger.GetNChallenges(numChallenges)
29// plonkGammas := challenger.GetNChallenges(numChallenges)
30
31// challenger.ObserveCap(proofWithPis.Proof.PlonkZsPartialProductsCap)
32// plonkAlphas := challenger.GetNChallenges(numChallenges)
33
34// challenger.ObserveCap(proofWithPis.Proof.QuotientPolysCap)
35// plonkZeta := challenger.GetNChallenges(numChallenges)
36
37// challenger.ObserveOpenings(proofWithPis.Proof.Openings)
38// }
39
40// func (c *VerifierChip) Verify(proofWithPis ProofWithPublicInputs, verifierData VerifierOnlyCircuitData, commonData CommonCircuitData) {
41// publicInputsHash := c.GetPublicInputsHash(proofWithPis.PublicInputs)
42// challenges := c.GetChallenges(proofWithPis, publicInputsHash, commonData)
43// }