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)
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.Variable // 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.Variable
50 NumPartialProducts uint64
51}