arnaucube
arnaucube/gnark-plonky2-verifierPublic Self-hosted repository
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.GoldilocksVariable
29	PlonkGammas   []gl.GoldilocksVariable
30	PlonkAlphas   []gl.GoldilocksVariable
31	PlonkZeta     gl.QuadraticExtensionVariable
32	FriChallenges FriChallenges
33}