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}