fix for V-SCT-VUL-028

This commit is contained in:
Kevin Jue 2023-12-19 12:25:29 -08:00
parent f256ca69f3
commit de0ff4f698
4 changed files with 20 additions and 20 deletions

View File

@ -49,14 +49,14 @@ func (f *Chip) GetInstance(zeta gl.QuadraticExtensionVariable) InstanceInfo {
zeta, zeta,
) )
zetaNextBath := BatchInfo{ zetaNextBatch := BatchInfo{
Point: zetaNext, Point: zetaNext,
Polynomials: friZSPolys(f.commonData), Polynomials: friZSPolys(f.commonData),
} }
return InstanceInfo{ return InstanceInfo{
Oracles: friOracles(f.commonData), Oracles: friOracles(f.commonData),
Batches: []BatchInfo{zetaBatch, zetaNextBath}, Batches: []BatchInfo{zetaBatch, zetaNextBatch},
} }
} }
@ -168,7 +168,7 @@ func (f *Chip) expFromBitsConstBase(
) gl.Variable { ) gl.Variable {
product := gl.One() product := gl.One()
for i, bit := range exponentBits { for i, bit := range exponentBits {
// If the bit is on, we multiply product by base^pow. // If the bit is 1, we multiply product by base^pow.
// We can arithmetize this as: // We can arithmetize this as:
// product *= 1 + bit (base^pow - 1) // product *= 1 + bit (base^pow - 1)
// product = (base^pow - 1) product bit + product // product = (base^pow - 1) product bit + product
@ -326,7 +326,7 @@ func (f *Chip) computeEvaluation(
) gl.QuadraticExtensionVariable { ) gl.QuadraticExtensionVariable {
arity := 1 << arityBits arity := 1 << arityBits
if (len(evals)) != arity { if (len(evals)) != arity {
panic("len(evals) ! arity") panic("len(evals) != arity")
} }
if arityBits > 8 { if arityBits > 8 {
panic("currently assuming that arityBits is <= 8") panic("currently assuming that arityBits is <= 8")

View File

@ -9,7 +9,7 @@ import (
gl "github.com/succinctlabs/gnark-plonky2-verifier/goldilocks" gl "github.com/succinctlabs/gnark-plonky2-verifier/goldilocks"
) )
var aritheticExtensionGateRegex = regexp.MustCompile("ArithmeticExtensionGate { num_ops: (?P<numOps>[0-9]+) }") var arithmeticExtensionGateRegex = regexp.MustCompile("ArithmeticExtensionGate { num_ops: (?P<numOps>[0-9]+) }")
func deserializeExtensionArithmeticGate(parameters map[string]string) Gate { func deserializeExtensionArithmeticGate(parameters map[string]string) Gate {
// Has the format "ArithmeticExtensionGate { num_ops: 10 }" // Has the format "ArithmeticExtensionGate { num_ops: 10 }"

View File

@ -9,7 +9,7 @@ import (
gl "github.com/succinctlabs/gnark-plonky2-verifier/goldilocks" gl "github.com/succinctlabs/gnark-plonky2-verifier/goldilocks"
) )
var aritheticGateRegex = regexp.MustCompile("ArithmeticGate { num_ops: (?P<numOps>[0-9]+) }") var arithmeticGateRegex = regexp.MustCompile("ArithmeticGate { num_ops: (?P<numOps>[0-9]+) }")
func deserializeArithmeticGate(parameters map[string]string) Gate { func deserializeArithmeticGate(parameters map[string]string) Gate {
// Has the format "ArithmeticGate { num_ops: 10 }" // Has the format "ArithmeticGate { num_ops: 10 }"

View File

@ -18,20 +18,20 @@ type Gate interface {
} }
var gateRegexHandlers = map[*regexp.Regexp]func(parameters map[string]string) Gate{ var gateRegexHandlers = map[*regexp.Regexp]func(parameters map[string]string) Gate{
aritheticGateRegex: deserializeArithmeticGate, arithmeticGateRegex: deserializeArithmeticGate,
aritheticExtensionGateRegex: deserializeExtensionArithmeticGate, arithmeticExtensionGateRegex: deserializeExtensionArithmeticGate,
baseSumGateRegex: deserializeBaseSumGate, baseSumGateRegex: deserializeBaseSumGate,
constantGateRegex: deserializeConstantGate, constantGateRegex: deserializeConstantGate,
cosetInterpolationGateRegex: deserializeCosetInterpolationGate, cosetInterpolationGateRegex: deserializeCosetInterpolationGate,
exponentiationGateRegex: deserializeExponentiationGate, exponentiationGateRegex: deserializeExponentiationGate,
mulExtensionGateRegex: deserializeMulExtensionGate, mulExtensionGateRegex: deserializeMulExtensionGate,
noopGateRegex: deserializeNoopGate, noopGateRegex: deserializeNoopGate,
poseidonGateRegex: deserializePoseidonGate, poseidonGateRegex: deserializePoseidonGate,
poseidonMdsGateRegex: deserializePoseidonMdsGate, poseidonMdsGateRegex: deserializePoseidonMdsGate,
publicInputGateRegex: deserializePublicInputGate, publicInputGateRegex: deserializePublicInputGate,
randomAccessGateRegex: deserializeRandomAccessGate, randomAccessGateRegex: deserializeRandomAccessGate,
reducingExtensionGateRegex: deserializeReducingExtensionGate, reducingExtensionGateRegex: deserializeReducingExtensionGate,
reducingGateRegex: deserializeReducingGate, reducingGateRegex: deserializeReducingGate,
} }
func GateInstanceFromId(gateId string) Gate { func GateInstanceFromId(gateId string) Gate {