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