don't need challenges serialized
Nicholas Ward npward@berkeley.edu
Wed, 12 Apr 2023 09:25:51 -0700
5 files changed,
46 insertions(+),
71 deletions(-)
D
plonky2_verifier/data/dummy_2^14_gates/proof_challenges.json
@@ -1,18 +0,0 @@
-{ - "plonk_betas": [ - 11216469004148781751, - 6201977337075152249 - ], - "plonk_gammas": [ - 8369751006669847974, - 3610024170884289835 - ], - "plonk_alphas": [ - 970160439138448145, - 2402201283787401921 - ], - "plonk_zeta": [ - 17377750363769967882, - 11921191651424768462 - ] -}
D
plonky2_verifier/data/fibonacci/proof_challenges.json
@@ -1,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]}}
M
plonky2_verifier/deserialize.go
→
plonky2_verifier/deserialize.go
@@ -155,19 +155,6 @@ Elements []uint64 `json:"elements"`
} `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 { n := len(merkleCapRaw) merkleCap := make([]Hash, n)@@ -404,32 +391,3 @@ return VerifierOnlyCircuitData{
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 -}
M
plonky2_verifier/deserialize_test.go
→
plonky2_verifier/deserialize_test.go
@@ -22,9 +22,3 @@ verifierOnlyCircuitData := DeserializeVerifierOnlyCircuitData("./data/fibonacci/verifier_only_circuit_data.json")
fmt.Printf("%+v\n", verifierOnlyCircuitData) 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") -}
M
plonky2_verifier/plonk_test.go
→
plonky2_verifier/plonk_test.go
@@ -12,17 +12,27 @@
type TestPlonkCircuit struct { proofWithPIsFilename string `gnark:"-"` commonCircuitDataFilename string `gnark:"-"` - ProofChallengesFilename string `gnark:"-"` + + plonkBetas []F + plonkGammas []F + plonkAlphas []F + plonkZeta QuadraticExtension } func (circuit *TestPlonkCircuit) Define(api frontend.API) error { proofWithPis := DeserializeProofWithPublicInputs(circuit.proofWithPIsFilename) commonCircuitData := DeserializeCommonCircuitData(circuit.commonCircuitDataFilename) - proofChallenges := DeserializeProofChallenges(circuit.ProofChallengesFilename) fieldAPI := NewFieldAPI(api) qeAPI := NewQuadraticExtensionAPI(fieldAPI, commonCircuitData.DegreeBits) + proofChallenges := ProofChallenges{ + PlonkBetas: circuit.plonkBetas, + PlonkGammas: circuit.plonkGammas, + PlonkAlphas: circuit.plonkAlphas, + PlonkZeta: circuit.plonkZeta, + } + plonkChip := NewPlonkChip(api, qeAPI, commonCircuitData) poseidonChip := poseidon.NewPoseidonChip(api, fieldAPI, qeAPI)@@ -39,7 +49,23 @@ testCase := func() {
circuit := TestPlonkCircuit{ proofWithPIsFilename: "./data/fibonacci/proof_with_public_inputs.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{} err := test.IsSolved(&circuit, &witness, TEST_CURVE.ScalarField())@@ -56,7 +82,23 @@ testCase := func() {
circuit := TestPlonkCircuit{ proofWithPIsFilename: "./data/dummy_2^14_gates/proof_with_public_inputs.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{} err := test.IsSolved(&circuit, &witness, TEST_CURVE.ScalarField())