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