gnark-plonky2-verifier/plonky2_verifier/structs.go
plonky2_verifier/structs.goRaw
1package plonky2_verifier
2
3import (
4 . "gnark-ed25519/field"
5)
6
7type MerkleCap = []Hash
8
9type MerkleProof struct {
10 Siblings []Hash
11}
12
13type EvalProof struct {
14 Elements []F
15 MerkleProof MerkleProof
16}
17
18type FriInitialTreeProof struct {
19 EvalsProofs []EvalProof
20}
21
22type FriQueryStep struct {
23 Evals []QuadraticExtension
24 MerkleProof MerkleProof
25}
26
27type FriQueryRound struct {
28 InitialTreesProof FriInitialTreeProof
29 Steps []FriQueryStep
30}
31
32type PolynomialCoeffs struct {
33 Coeffs []QuadraticExtension
34}
35
36type FriProof struct {
37 CommitPhaseMerkleCaps []MerkleCap
38 QueryRoundProofs FriQueryRound
39 FinalPoly PolynomialCoeffs
40 PowWitness F
41}
42
43type OpeningSet struct {
44 Constants []QuadraticExtension
45 PlonkSigmas []QuadraticExtension
46 Wires []QuadraticExtension
47 PlonkZs []QuadraticExtension
48 PlonkZsNext []QuadraticExtension
49 PartialProducts []QuadraticExtension
50 QuotientPolys []QuadraticExtension
51}
52
53type Proof struct {
54 WiresCap MerkleCap
55 PlonkZsPartialProductsCap MerkleCap
56 QuotientPolysCap MerkleCap
57 Openings OpeningSet
58 OpeningProof FriProof
59}
60
61type ProofWithPublicInputs struct {
62 Proof Proof
63 PublicInputs []F
64}
65
66type VerifierOnlyCircuitData struct {
67 ConstantSigmasCap MerkleCap
68}
69
70type FriConfig struct {
71 RateBits uint64
72 CapHeight uint64
73 ProofOfWorkBits uint64
74 NumQueryRounds uint64
75 // TODO: add FriReductionStrategy
76}
77
78type FriParams struct {
79 Config FriConfig
80 Hiding bool
81 DegreeBits uint64
82 ReductionArityBits []uint64
83}
84
85type CircuitConfig struct {
86 NumWires uint64
87 NumRoutedWires uint64
88 NumConstants uint64
89 UseBaseArithmeticGate bool
90 SecurityBits uint64
91 NumChallenges uint64
92 ZeroKnowledge bool
93 MaxQuotientDegreeFactor uint64
94 FriConfig FriConfig
95}
96
97type CommonCircuitData struct {
98 Config CircuitConfig
99 FriParams FriParams
100 DegreeBits uint64
101 QuotientDegreeFactor uint64
102 NumGateConstraints uint64
103 NumConstants uint64
104 NumPublicInputs uint64
105 KIs []F
106 NumPartialProducts uint64
107 CircuitDigest Hash
108}
109
110type ProofChallenges struct {
111 PlonkBetas []F
112 PlonkGammas []F
113 PlonkAlphas []F
114 PlonkZeta QuadraticExtension
115 FriChallenges FriChallenges
116}
117
118type FriChallenges struct {
119 FriAlpha QuadraticExtension
120 FriBetas []QuadraticExtension
121 FriPowResponse F
122 FriQueryIndicies []F
123}