gnark-plonky2-verifier/verifier/common/types.go
verifier/common/types.goRaw
1package common
2
3import (
4 "github.com/succinctlabs/gnark-plonky2-verifier/field"
5 "github.com/succinctlabs/gnark-plonky2-verifier/poseidon"
6)
7
8type MerkleCap = []poseidon.Hash
9
10type MerkleProof struct {
11 Siblings []poseidon.Hash
12}
13
14type EvalProof struct {
15 Elements []field.F
16 MerkleProof MerkleProof
17}
18
19type PolynomialCoeffs struct {
20 Coeffs []field.QuadraticExtension
21}
22
23type OpeningSet struct {
24 Constants []field.QuadraticExtension
25 PlonkSigmas []field.QuadraticExtension
26 Wires []field.QuadraticExtension
27 PlonkZs []field.QuadraticExtension
28 PlonkZsNext []field.QuadraticExtension
29 PartialProducts []field.QuadraticExtension
30 QuotientPolys []field.QuadraticExtension
31}
32
33type Proof struct {
34 WiresCap MerkleCap
35 PlonkZsPartialProductsCap MerkleCap
36 QuotientPolysCap MerkleCap
37 Openings OpeningSet
38 OpeningProof FriProof
39}
40
41type ProofWithPublicInputs struct {
42 Proof Proof
43 PublicInputs []field.F
44}
45
46type ProofChallenges struct {
47 PlonkBetas []field.F
48 PlonkGammas []field.F
49 PlonkAlphas []field.F
50 PlonkZeta field.QuadraticExtension
51 FriChallenges FriChallenges
52}
53
54type FriInitialTreeProof struct {
55 EvalsProofs []EvalProof
56}
57
58type FriQueryStep struct {
59 Evals []field.QuadraticExtension
60 MerkleProof MerkleProof
61}
62
63type FriQueryRound struct {
64 InitialTreesProof FriInitialTreeProof
65 Steps []FriQueryStep
66}
67
68type FriProof struct {
69 CommitPhaseMerkleCaps []MerkleCap
70 QueryRoundProofs []FriQueryRound
71 FinalPoly PolynomialCoeffs
72 PowWitness field.F
73}
74
75type FriChallenges struct {
76 FriAlpha field.QuadraticExtension
77 FriBetas []field.QuadraticExtension
78 FriPowResponse field.F
79 FriQueryIndices []field.F
80}