diff --git a/plonky2_verifier/data/dummy_2^14_gates/proof_challenges.json b/plonky2_verifier/data/dummy_2^14_gates/proof_challenges.json deleted file mode 100644 index 4d44275..0000000 --- a/plonky2_verifier/data/dummy_2^14_gates/proof_challenges.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "plonk_betas": [ - 11216469004148781751, - 6201977337075152249 - ], - "plonk_gammas": [ - 8369751006669847974, - 3610024170884289835 - ], - "plonk_alphas": [ - 970160439138448145, - 2402201283787401921 - ], - "plonk_zeta": [ - 17377750363769967882, - 11921191651424768462 - ] -} \ No newline at end of file diff --git a/plonky2_verifier/data/fibonacci/proof_challenges.json b/plonky2_verifier/data/fibonacci/proof_challenges.json deleted file mode 100644 index 7d7d521..0000000 --- a/plonky2_verifier/data/fibonacci/proof_challenges.json +++ /dev/null @@ -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]}} \ No newline at end of file diff --git a/plonky2_verifier/deserialize.go b/plonky2_verifier/deserialize.go index b8014a3..9e7059f 100644 --- a/plonky2_verifier/deserialize.go +++ b/plonky2_verifier/deserialize.go @@ -155,19 +155,6 @@ type VerifierOnlyCircuitDataRaw struct { } `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 @@ func DeserializeVerifierOnlyCircuitData(path string) 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 -} diff --git a/plonky2_verifier/deserialize_test.go b/plonky2_verifier/deserialize_test.go index 2d9a8ca..253e641 100644 --- a/plonky2_verifier/deserialize_test.go +++ b/plonky2_verifier/deserialize_test.go @@ -22,9 +22,3 @@ func TestDeserializeVerifierOnlyCircuitData(t *testing.T) { 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") -} diff --git a/plonky2_verifier/plonk_test.go b/plonky2_verifier/plonk_test.go index c6e4752..ff8b7c4 100644 --- a/plonky2_verifier/plonk_test.go +++ b/plonky2_verifier/plonk_test.go @@ -12,17 +12,27 @@ import ( 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 @@ func TestPlonkFibonacci(t *testing.T) { 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 @@ func TestPlonkDummy(t *testing.T) { 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())