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}