arnaucube
arnaucube/gnark-plonky2-verifierPublic Self-hosted repository
gnark-plonky2-verifier/variables/circuit.go
variables/circuit.goRaw
 1package variables
 2
 3import (
 4	gl "github.com/succinctlabs/gnark-plonky2-verifier/goldilocks"
 5	"github.com/succinctlabs/gnark-plonky2-verifier/plonk/gates"
 6	"github.com/succinctlabs/gnark-plonky2-verifier/poseidon"
 7	"github.com/succinctlabs/gnark-plonky2-verifier/types"
 8)
 9
10type Proof struct {
11	WiresCap                  FriMerkleCap // length = 2^CircuitConfig.FriConfig.CapHeight
12	PlonkZsPartialProductsCap FriMerkleCap // length = 2^CircuitConfig.FriConfig.CapHeight
13	QuotientPolysCap          FriMerkleCap // length = 2^CircuitConfig.FriConfig.CapHeight
14	Openings                  OpeningSet
15	OpeningProof              FriProof
16}
17
18type ProofWithPublicInputs struct {
19	Proof        Proof
20	PublicInputs []gl.Variable // Length = CommonCircuitData.NumPublicInputs
21}
22
23type VerifierOnlyCircuitData struct {
24	ConstantSigmasCap FriMerkleCap
25	CircuitDigest     poseidon.BN254HashOut
26}
27
28type CircuitConfig struct {
29	NumWires                uint64
30	NumRoutedWires          uint64
31	NumConstants            uint64
32	UseBaseArithmeticGate   bool
33	SecurityBits            uint64
34	NumChallenges           uint64
35	ZeroKnowledge           bool
36	MaxQuotientDegreeFactor uint64
37	FriConfig               types.FriConfig
38}
39
40type CommonCircuitData struct {
41	Config               CircuitConfig
42	FriParams            types.FriParams
43	Gates                []gates.Gate
44	SelectorsInfo        gates.SelectorsInfo
45	DegreeBits           uint64
46	QuotientDegreeFactor uint64
47	NumGateConstraints   uint64
48	NumConstants         uint64
49	NumPublicInputs      uint64
50	KIs                  []gl.Variable
51	NumPartialProducts   uint64
52}