arnaucube
arnaucube/gnark-plonky2-verifierPublic Self-hosted repository
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}