package common
|
|
|
|
import (
|
|
"github.com/succinctlabs/gnark-plonky2-verifier/field"
|
|
"github.com/succinctlabs/gnark-plonky2-verifier/poseidon"
|
|
"github.com/succinctlabs/gnark-plonky2-verifier/verifier/internal/gates"
|
|
)
|
|
|
|
type VerifierOnlyCircuitData struct {
|
|
ConstantSigmasCap MerkleCap
|
|
CircuitDigest poseidon.PoseidonBN128HashOut
|
|
}
|
|
|
|
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 []field.F
|
|
NumPartialProducts uint64
|
|
}
|
|
|
|
type FriConfig struct {
|
|
RateBits uint64
|
|
CapHeight uint64
|
|
ProofOfWorkBits uint64
|
|
NumQueryRounds uint64
|
|
// TODO: add FriReductionStrategy
|
|
}
|
|
|
|
func (fc *FriConfig) Rate() float64 {
|
|
return 1.0 / float64((uint64(1) << fc.RateBits))
|
|
}
|
|
|
|
type FriParams struct {
|
|
Config FriConfig
|
|
Hiding bool
|
|
DegreeBits uint64
|
|
ReductionArityBits []uint64
|
|
}
|