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