arnaucube
arnaucube/gnark-plonky2-verifierPublic Self-hosted repository
gnark-plonky2-verifier/plonky2_verifier/verifier.go
plonky2_verifier/verifier.goRaw
 1package plonky2_verifier
 2
 3type Proof struct {
 4	WiresCap []struct {
 5		Elements []uint64 `json:"elements"`
 6	} `json:"wires_cap"`
 7	PlonkZsPartialProductsCap []struct {
 8		Elements []uint64 `json:"elements"`
 9	} `json:"plonk_zs_partial_products_cap"`
10	QuotientPolysCap []struct {
11		Elements []uint64 `json:"elements"`
12	} `json:"quotient_polys_cap"`
13	Openings struct {
14		Constants       [][]uint64 `json:"constants"`
15		PlonkSigmas     [][]uint64 `json:"plonk_sigmas"`
16		Wires           [][]uint64 `json:"wires"`
17		PlonkZs         [][]uint64 `json:"plonk_zs"`
18		PlonkZsNext     [][]uint64 `json:"plonk_zs_next"`
19		PartialProducts [][]uint64 `json:"partial_products"`
20		QuotientPolys   [][]uint64 `json:"quotient_polys"`
21	} `json:"openings"`
22	OpeningProof struct {
23		CommitPhaseMerkleCaps []interface{} `json:"commit_phase_merkle_caps"`
24		QueryRoundProofs      []struct {
25			InitialTreesProof struct {
26				EvalsProofs [][]interface{} `json:"evals_proofs"`
27			} `json:"initial_trees_proof"`
28			Steps []interface{} `json:"steps"`
29		} `json:"query_round_proofs"`
30		FinalPoly struct {
31			Coeffs [][]uint64 `json:"coeffs"`
32		} `json:"final_poly"`
33		PowWitness uint64 `json:"pow_witness"`
34	} `json:"opening_proof"`
35}
36
37type CommonCircuitData struct {
38	Config struct {
39		NumWires                int  `json:"num_wires"`
40		NumRoutedWires          int  `json:"num_routed_wires"`
41		NumConstants            int  `json:"num_constants"`
42		UseBaseArithmeticGate   bool `json:"use_base_arithmetic_gate"`
43		SecurityBits            int  `json:"security_bits"`
44		NumChallenges           int  `json:"num_challenges"`
45		ZeroKnowledge           bool `json:"zero_knowledge"`
46		MaxQuotientDegreeFactor int  `json:"max_quotient_degree_factor"`
47		FriConfig               struct {
48			RateBits          int `json:"rate_bits"`
49			CapHeight         int `json:"cap_height"`
50			ProofOfWorkBits   int `json:"proof_of_work_bits"`
51			ReductionStrategy struct {
52				ConstantArityBits []int `json:"ConstantArityBits"`
53			} `json:"reduction_strategy"`
54			NumQueryRounds int `json:"num_query_rounds"`
55		} `json:"fri_config"`
56	} `json:"config"`
57	FriParams struct {
58		Config struct {
59			RateBits          int `json:"rate_bits"`
60			CapHeight         int `json:"cap_height"`
61			ProofOfWorkBits   int `json:"proof_of_work_bits"`
62			ReductionStrategy struct {
63				ConstantArityBits []int `json:"ConstantArityBits"`
64			} `json:"reduction_strategy"`
65			NumQueryRounds int `json:"num_query_rounds"`
66		} `json:"config"`
67		Hiding             bool          `json:"hiding"`
68		DegreeBits         int           `json:"degree_bits"`
69		ReductionArityBits []interface{} `json:"reduction_arity_bits"`
70	} `json:"fri_params"`
71	DegreeBits    int `json:"degree_bits"`
72	SelectorsInfo struct {
73		SelectorIndices []int `json:"selector_indices"`
74		Groups          []struct {
75			Start int `json:"start"`
76			End   int `json:"end"`
77		} `json:"groups"`
78	} `json:"selectors_info"`
79	QuotientDegreeFactor int           `json:"quotient_degree_factor"`
80	NumGateConstraints   int           `json:"num_gate_constraints"`
81	NumConstants         int           `json:"num_constants"`
82	NumPublicInputs      int           `json:"num_public_inputs"`
83	KIs                  []interface{} `json:"k_is"`
84	NumPartialProducts   int           `json:"num_partial_products"`
85	CircuitDigest        struct {
86		Elements []int64 `json:"elements"`
87	} `json:"circuit_digest"`
88}
89
90type VerifierOnlyCircuitData struct {
91	ConstantsSigmasCap []struct {
92		Elements []int64 `json:"elements"`
93	} `json:"constants_sigmas_cap"`
94}