package types
|
|
|
|
import (
|
|
gl "github.com/succinctlabs/gnark-plonky2-verifier/goldilocks"
|
|
"github.com/succinctlabs/gnark-plonky2-verifier/plonk/gates"
|
|
"github.com/succinctlabs/gnark-plonky2-verifier/poseidon"
|
|
)
|
|
|
|
type Proof struct {
|
|
WiresCap FriMerkleCap // length = 2^CircuitConfig.FriConfig.CapHeight
|
|
PlonkZsPartialProductsCap FriMerkleCap // length = 2^CircuitConfig.FriConfig.CapHeight
|
|
QuotientPolysCap FriMerkleCap // length = 2^CircuitConfig.FriConfig.CapHeight
|
|
Openings OpeningSet
|
|
OpeningProof FriProof
|
|
}
|
|
|
|
type ProofWithPublicInputs struct {
|
|
Proof Proof
|
|
PublicInputs []gl.GoldilocksVariable // Length = CommonCircuitData.NumPublicInputs
|
|
}
|
|
|
|
type VerifierOnlyCircuitData struct {
|
|
ConstantSigmasCap FriMerkleCap
|
|
CircuitDigest poseidon.BN254HashOut
|
|
}
|
|
|
|
type CircuitConfig struct {
|
|
NumWires uint64
|
|
NumRoutedWires uint64
|
|
NumConstants uint64
|
|
UseBaseArithmeticGate bool
|
|
SecurityBits uint64
|
|
NumChallenges uint64
|
|
ZeroKnowledge bool
|
|
MaxQuotientDegreeFactor uint64
|
|
FriConfig FriConfig
|
|
}
|
|
|
|
type CommonCircuitData struct {
|
|
Config CircuitConfig
|
|
FriParams FriParams
|
|
Gates []gates.Gate
|
|
SelectorsInfo gates.SelectorsInfo
|
|
DegreeBits uint64
|
|
QuotientDegreeFactor uint64
|
|
NumGateConstraints uint64
|
|
NumConstants uint64
|
|
NumPublicInputs uint64
|
|
KIs []gl.GoldilocksVariable
|
|
NumPartialProducts uint64
|
|
}
|