arnaucube
arnaucube/gnark-plonky2-verifierPublic Self-hosted repository
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}