gnark-plonky2-verifier/types/plonk.go
types/plonk.goRaw
1package types
2
3import gl "github.com/succinctlabs/gnark-plonky2-verifier/goldilocks"
4
5type OpeningSet struct {
6 Constants []gl.QuadraticExtensionVariable // Length = CommonCircuitData.Constants
7 PlonkSigmas []gl.QuadraticExtensionVariable // Length = CommonCircuitData.NumRoutedWires
8 Wires []gl.QuadraticExtensionVariable // Length = CommonCircuitData.NumWires
9 PlonkZs []gl.QuadraticExtensionVariable // Length = CommonCircuitData.NumChallenges
10 PlonkZsNext []gl.QuadraticExtensionVariable // Length = CommonCircuitData.NumChallenges
11 PartialProducts []gl.QuadraticExtensionVariable // Length = CommonCircuitData.NumChallenges * CommonCircuitData.NumPartialProducts
12 QuotientPolys []gl.QuadraticExtensionVariable // Length = CommonCircuitData.NumChallenges * CommonCircuitData.QuotientDegreeFactor
13}
14
15func NewOpeningSet(numConstants uint64, numRoutedWires uint64, numWires uint64, numChallenges uint64, numPartialProducts uint64, quotientDegreeFactor uint64) OpeningSet {
16 return OpeningSet{
17 Constants: make([]gl.QuadraticExtensionVariable, numConstants),
18 PlonkSigmas: make([]gl.QuadraticExtensionVariable, numRoutedWires),
19 Wires: make([]gl.QuadraticExtensionVariable, numWires),
20 PlonkZs: make([]gl.QuadraticExtensionVariable, numChallenges),
21 PlonkZsNext: make([]gl.QuadraticExtensionVariable, numChallenges),
22 PartialProducts: make([]gl.QuadraticExtensionVariable, numChallenges*numPartialProducts),
23 QuotientPolys: make([]gl.QuadraticExtensionVariable, numChallenges*quotientDegreeFactor),
24 }
25}
26
27type ProofChallenges struct {
28 PlonkBetas []gl.Variable
29 PlonkGammas []gl.Variable
30 PlonkAlphas []gl.Variable
31 PlonkZeta gl.QuadraticExtensionVariable
32 FriChallenges FriChallenges
33}