gnark-plonky2-verifier/types/types.go
types/types.goRaw
1package types
2
3import "github.com/succinctlabs/gnark-plonky2-verifier/plonk/gates"
4
5type FriConfig struct {
6 RateBits uint64
7 CapHeight uint64
8 ProofOfWorkBits uint64
9 NumQueryRounds uint64
10 // TODO: add FriReductionStrategy
11}
12
13func (fc *FriConfig) Rate() float64 {
14 return 1.0 / float64((uint64(1) << fc.RateBits))
15}
16
17type FriParams struct {
18 Config FriConfig
19 Hiding bool
20 DegreeBits uint64
21 ReductionArityBits []uint64
22}
23
24type CircuitConfig struct {
25 NumWires uint64
26 NumRoutedWires uint64
27 NumConstants uint64
28 UseBaseArithmeticGate bool
29 SecurityBits uint64
30 NumChallenges uint64
31 ZeroKnowledge bool
32 MaxQuotientDegreeFactor uint64
33 FriConfig FriConfig
34}
35
36type CommonCircuitData struct {
37 Config CircuitConfig
38 FriParams
39 GateIds []string
40 SelectorsInfo gates.SelectorsInfo
41 DegreeBits uint64
42 QuotientDegreeFactor uint64
43 NumGateConstraints uint64
44 NumConstants uint64
45 NumPublicInputs uint64
46 KIs []uint64
47 NumPartialProducts uint64
48}