arnaucube
arnaucube/gnark-plonky2-verifierPublic Self-hosted repository
gnark-plonky2-verifier/plonky2_verifier/structs.go
plonky2_verifier/structs.goRaw
  1package plonky2_verifier
  2
  3import (
  4	. "gnark-ed25519/field"
  5)
  6
  7type MerkleCap = []Hash
  8
  9type MerkleProof struct {
 10	Siblings []Hash
 11}
 12
 13type EvalProof struct {
 14	Elements    []F
 15	MerkleProof MerkleProof
 16}
 17
 18type FriInitialTreeProof struct {
 19	EvalsProofs []EvalProof
 20}
 21
 22type FriQueryStep struct {
 23	Evals       []QuadraticExtension
 24	MerkleProof MerkleProof
 25}
 26
 27type FriQueryRound struct {
 28	InitialTreesProof FriInitialTreeProof
 29	Steps             []FriQueryStep
 30}
 31
 32type PolynomialCoeffs struct {
 33	Coeffs []QuadraticExtension
 34}
 35
 36type FriProof struct {
 37	CommitPhaseMerkleCaps []MerkleCap
 38	QueryRoundProofs      FriQueryRound
 39	FinalPoly             PolynomialCoeffs
 40	PowWitness            F
 41}
 42
 43type OpeningSet struct {
 44	Constants       []QuadraticExtension
 45	PlonkSigmas     []QuadraticExtension
 46	Wires           []QuadraticExtension
 47	PlonkZs         []QuadraticExtension
 48	PlonkZsNext     []QuadraticExtension
 49	PartialProducts []QuadraticExtension
 50	QuotientPolys   []QuadraticExtension
 51}
 52
 53type Proof struct {
 54	WiresCap                  MerkleCap
 55	PlonkZsPartialProductsCap MerkleCap
 56	QuotientPolysCap          MerkleCap
 57	Openings                  OpeningSet
 58	OpeningProof              FriProof
 59}
 60
 61type ProofWithPublicInputs struct {
 62	Proof        Proof
 63	PublicInputs []F
 64}
 65
 66type VerifierOnlyCircuitData struct {
 67	ConstantSigmasCap MerkleCap
 68}
 69
 70type FriConfig struct {
 71	RateBits        uint64
 72	CapHeight       uint64
 73	ProofOfWorkBits uint64
 74	NumQueryRounds  uint64
 75	// TODO: add FriReductionStrategy
 76}
 77
 78type FriParams struct {
 79	Config             FriConfig
 80	Hiding             bool
 81	DegreeBits         uint64
 82	ReductionArityBits []uint64
 83}
 84
 85type CircuitConfig struct {
 86	NumWires                uint64
 87	NumRoutedWires          uint64
 88	NumConstants            uint64
 89	UseBaseArithmeticGate   bool
 90	SecurityBits            uint64
 91	NumChallenges           uint64
 92	ZeroKnowledge           bool
 93	MaxQuotientDegreeFactor uint64
 94	FriConfig               FriConfig
 95}
 96
 97type CommonCircuitData struct {
 98	Config               CircuitConfig
 99	FriParams            FriParams
100	DegreeBits           uint64
101	QuotientDegreeFactor uint64
102	NumGateConstraints   uint64
103	NumConstants         uint64
104	NumPublicInputs      uint64
105	KIs                  []F
106	NumPartialProducts   uint64
107	CircuitDigest        Hash
108}
109
110type ProofChallenges struct {
111	PlonkBetas    []F
112	PlonkGammas   []F
113	PlonkAlphas   []F
114	PlonkZeta     QuadraticExtension
115	FriChallenges FriChallenges
116}
117
118type FriChallenges struct {
119	FriAlpha         QuadraticExtension
120	FriBetas         []QuadraticExtension
121	FriPowResponse   F
122	FriQueryIndicies []F
123}