mirror of
https://github.com/arnaucube/gnark-plonky2-verifier.git
synced 2026-01-12 09:01:32 +01:00
don't need challenges serialized
This commit is contained in:
@@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
"plonk_betas": [
|
|
||||||
11216469004148781751,
|
|
||||||
6201977337075152249
|
|
||||||
],
|
|
||||||
"plonk_gammas": [
|
|
||||||
8369751006669847974,
|
|
||||||
3610024170884289835
|
|
||||||
],
|
|
||||||
"plonk_alphas": [
|
|
||||||
970160439138448145,
|
|
||||||
2402201283787401921
|
|
||||||
],
|
|
||||||
"plonk_zeta": [
|
|
||||||
17377750363769967882,
|
|
||||||
11921191651424768462
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{"plonk_betas":[12973916988745913043,10729509799707823061],"plonk_gammas":[13357786390712427342,13733012568509939467],"plonk_alphas":[4421334860622890213,11104346062293008527],"plonk_zeta":[18168831211174576204,14207073590853934065],"fri_challenges":{"fri_alpha":[3871254635590041629,16336705857054086518],"fri_betas":[],"fri_pow_response":21146135473161,"fri_query_indices":[2,42,42,49,18,2,15,51,2,36,61,47,57,42,30,29,14,54,34,27,51,41,58,15,59,43,41,12]}}
|
|
||||||
@@ -155,19 +155,6 @@ type VerifierOnlyCircuitDataRaw struct {
|
|||||||
} `json:"constants_sigmas_cap"`
|
} `json:"constants_sigmas_cap"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ProofChallengesRaw struct {
|
|
||||||
PlonkBetas []uint64 `json:"plonk_betas"`
|
|
||||||
PlonkGammas []uint64 `json:"plonk_gammas"`
|
|
||||||
PlonkAlphas []uint64 `json:"plonk_alphas"`
|
|
||||||
PlonkZeta []uint64 `json:"plonk_zeta"`
|
|
||||||
FriChallenges struct {
|
|
||||||
FriAlpha []uint64 `json:"fri_alpha"`
|
|
||||||
FriBetas [][]uint64 `json:"fri_betas"`
|
|
||||||
FriPowResponse uint64 `json:"fri_pow_response"`
|
|
||||||
FriQueryIndices []uint64 `json:"fri_query_indices"`
|
|
||||||
} `json:"fri_challenges"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func DeserializeMerkleCap(merkleCapRaw []struct{ Elements []uint64 }) MerkleCap {
|
func DeserializeMerkleCap(merkleCapRaw []struct{ Elements []uint64 }) MerkleCap {
|
||||||
n := len(merkleCapRaw)
|
n := len(merkleCapRaw)
|
||||||
merkleCap := make([]Hash, n)
|
merkleCap := make([]Hash, n)
|
||||||
@@ -404,32 +391,3 @@ func DeserializeVerifierOnlyCircuitData(path string) VerifierOnlyCircuitData {
|
|||||||
ConstantSigmasCap: DeserializeMerkleCap([]struct{ Elements []uint64 }(raw.ConstantsSigmasCap)),
|
ConstantSigmasCap: DeserializeMerkleCap([]struct{ Elements []uint64 }(raw.ConstantsSigmasCap)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func DeserializeProofChallenges(path string) ProofChallenges {
|
|
||||||
jsonFile, err := os.Open(path)
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
defer jsonFile.Close()
|
|
||||||
rawBytes, _ := ioutil.ReadAll(jsonFile)
|
|
||||||
|
|
||||||
var raw ProofChallengesRaw
|
|
||||||
err = json.Unmarshal(rawBytes, &raw)
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
var challenges ProofChallenges
|
|
||||||
challenges.PlonkBetas = utils.Uint64ArrayToFArray(raw.PlonkBetas)
|
|
||||||
challenges.PlonkGammas = utils.Uint64ArrayToFArray(raw.PlonkGammas)
|
|
||||||
challenges.PlonkAlphas = utils.Uint64ArrayToFArray(raw.PlonkAlphas)
|
|
||||||
challenges.PlonkZeta = utils.Uint64ArrayToQuadraticExtension(raw.PlonkZeta)
|
|
||||||
|
|
||||||
challenges.FriChallenges.FriAlpha = utils.Uint64ArrayToQuadraticExtension(raw.FriChallenges.FriAlpha)
|
|
||||||
challenges.FriChallenges.FriBetas = utils.Uint64ArrayToQuadraticExtensionArray(raw.FriChallenges.FriBetas)
|
|
||||||
challenges.FriChallenges.FriPowResponse = NewFieldElement(raw.FriChallenges.FriPowResponse)
|
|
||||||
challenges.FriChallenges.FriQueryIndicies = utils.Uint64ArrayToFArray(raw.FriChallenges.FriQueryIndices)
|
|
||||||
|
|
||||||
return challenges
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -22,9 +22,3 @@ func TestDeserializeVerifierOnlyCircuitData(t *testing.T) {
|
|||||||
fmt.Printf("%+v\n", verifierOnlyCircuitData)
|
fmt.Printf("%+v\n", verifierOnlyCircuitData)
|
||||||
panic("look at stdout")
|
panic("look at stdout")
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestDeserializeProofChallenges(t *testing.T) {
|
|
||||||
challenges := DeserializeProofChallenges("./data/fibonacci/proof_challenges.json")
|
|
||||||
fmt.Printf("%+v\n", challenges)
|
|
||||||
panic("look at stdout")
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -12,17 +12,27 @@ import (
|
|||||||
type TestPlonkCircuit struct {
|
type TestPlonkCircuit struct {
|
||||||
proofWithPIsFilename string `gnark:"-"`
|
proofWithPIsFilename string `gnark:"-"`
|
||||||
commonCircuitDataFilename string `gnark:"-"`
|
commonCircuitDataFilename string `gnark:"-"`
|
||||||
ProofChallengesFilename string `gnark:"-"`
|
|
||||||
|
plonkBetas []F
|
||||||
|
plonkGammas []F
|
||||||
|
plonkAlphas []F
|
||||||
|
plonkZeta QuadraticExtension
|
||||||
}
|
}
|
||||||
|
|
||||||
func (circuit *TestPlonkCircuit) Define(api frontend.API) error {
|
func (circuit *TestPlonkCircuit) Define(api frontend.API) error {
|
||||||
proofWithPis := DeserializeProofWithPublicInputs(circuit.proofWithPIsFilename)
|
proofWithPis := DeserializeProofWithPublicInputs(circuit.proofWithPIsFilename)
|
||||||
commonCircuitData := DeserializeCommonCircuitData(circuit.commonCircuitDataFilename)
|
commonCircuitData := DeserializeCommonCircuitData(circuit.commonCircuitDataFilename)
|
||||||
proofChallenges := DeserializeProofChallenges(circuit.ProofChallengesFilename)
|
|
||||||
|
|
||||||
fieldAPI := NewFieldAPI(api)
|
fieldAPI := NewFieldAPI(api)
|
||||||
qeAPI := NewQuadraticExtensionAPI(fieldAPI, commonCircuitData.DegreeBits)
|
qeAPI := NewQuadraticExtensionAPI(fieldAPI, commonCircuitData.DegreeBits)
|
||||||
|
|
||||||
|
proofChallenges := ProofChallenges{
|
||||||
|
PlonkBetas: circuit.plonkBetas,
|
||||||
|
PlonkGammas: circuit.plonkGammas,
|
||||||
|
PlonkAlphas: circuit.plonkAlphas,
|
||||||
|
PlonkZeta: circuit.plonkZeta,
|
||||||
|
}
|
||||||
|
|
||||||
plonkChip := NewPlonkChip(api, qeAPI, commonCircuitData)
|
plonkChip := NewPlonkChip(api, qeAPI, commonCircuitData)
|
||||||
|
|
||||||
poseidonChip := poseidon.NewPoseidonChip(api, fieldAPI, qeAPI)
|
poseidonChip := poseidon.NewPoseidonChip(api, fieldAPI, qeAPI)
|
||||||
@@ -39,7 +49,23 @@ func TestPlonkFibonacci(t *testing.T) {
|
|||||||
circuit := TestPlonkCircuit{
|
circuit := TestPlonkCircuit{
|
||||||
proofWithPIsFilename: "./data/fibonacci/proof_with_public_inputs.json",
|
proofWithPIsFilename: "./data/fibonacci/proof_with_public_inputs.json",
|
||||||
commonCircuitDataFilename: "./data/fibonacci/common_circuit_data.json",
|
commonCircuitDataFilename: "./data/fibonacci/common_circuit_data.json",
|
||||||
ProofChallengesFilename: "./data/fibonacci/proof_challenges.json",
|
|
||||||
|
plonkBetas: []F{
|
||||||
|
NewFieldElementFromString("12973916988745913043"),
|
||||||
|
NewFieldElementFromString("10729509799707823061"),
|
||||||
|
},
|
||||||
|
plonkGammas: []F{
|
||||||
|
NewFieldElementFromString("13357786390712427342"),
|
||||||
|
NewFieldElementFromString("13733012568509939467"),
|
||||||
|
},
|
||||||
|
plonkAlphas: []F{
|
||||||
|
NewFieldElementFromString("4421334860622890213"),
|
||||||
|
NewFieldElementFromString("11104346062293008527"),
|
||||||
|
},
|
||||||
|
plonkZeta: QuadraticExtension{
|
||||||
|
NewFieldElementFromString("18168831211174576204"),
|
||||||
|
NewFieldElementFromString("14207073590853934065"),
|
||||||
|
},
|
||||||
}
|
}
|
||||||
witness := TestPlonkCircuit{}
|
witness := TestPlonkCircuit{}
|
||||||
err := test.IsSolved(&circuit, &witness, TEST_CURVE.ScalarField())
|
err := test.IsSolved(&circuit, &witness, TEST_CURVE.ScalarField())
|
||||||
@@ -56,7 +82,23 @@ func TestPlonkDummy(t *testing.T) {
|
|||||||
circuit := TestPlonkCircuit{
|
circuit := TestPlonkCircuit{
|
||||||
proofWithPIsFilename: "./data/dummy_2^14_gates/proof_with_public_inputs.json",
|
proofWithPIsFilename: "./data/dummy_2^14_gates/proof_with_public_inputs.json",
|
||||||
commonCircuitDataFilename: "./data/dummy_2^14_gates/common_circuit_data.json",
|
commonCircuitDataFilename: "./data/dummy_2^14_gates/common_circuit_data.json",
|
||||||
ProofChallengesFilename: "./data/dummy_2^14_gates/proof_challenges.json",
|
|
||||||
|
plonkBetas: []F{
|
||||||
|
NewFieldElementFromString("11216469004148781751"),
|
||||||
|
NewFieldElementFromString("6201977337075152249"),
|
||||||
|
},
|
||||||
|
plonkGammas: []F{
|
||||||
|
NewFieldElementFromString("8369751006669847974"),
|
||||||
|
NewFieldElementFromString("3610024170884289835"),
|
||||||
|
},
|
||||||
|
plonkAlphas: []F{
|
||||||
|
NewFieldElementFromString("970160439138448145"),
|
||||||
|
NewFieldElementFromString("2402201283787401921"),
|
||||||
|
},
|
||||||
|
plonkZeta: QuadraticExtension{
|
||||||
|
NewFieldElementFromString("17377750363769967882"),
|
||||||
|
NewFieldElementFromString("11921191651424768462"),
|
||||||
|
},
|
||||||
}
|
}
|
||||||
witness := TestPlonkCircuit{}
|
witness := TestPlonkCircuit{}
|
||||||
err := test.IsSolved(&circuit, &witness, TEST_CURVE.ScalarField())
|
err := test.IsSolved(&circuit, &witness, TEST_CURVE.ScalarField())
|
||||||
|
|||||||
Reference in New Issue
Block a user