remove circuit parameter from proof Verification
@@ -374,13 +374,6 @@ var proof snark.Proof
json.Unmarshal([]byte(string(proofsFile)), &proof) panicErr(err) - // open compiledcircuit.json - compiledcircuitFile, err := ioutil.ReadFile("compiledcircuit.json") - panicErr(err) - var circuit circuitcompiler.Circuit - json.Unmarshal([]byte(string(compiledcircuitFile)), &circuit) - panicErr(err) - // open trustedsetup.json trustedsetupFile, err := ioutil.ReadFile("trustedsetup.json") panicErr(err)@@ -395,7 +388,7 @@ var publicSignals []*big.Int
err = json.Unmarshal([]byte(string(publicInputsFile)), &publicSignals) panicErr(err) - verified := snark.VerifyProof(circuit, trustedsetup, proof, publicSignals, true) + verified := snark.VerifyProof(trustedsetup, proof, publicSignals, true) if !verified { fmt.Println("ERROR: proofs not verified") } else {@@ -533,13 +526,6 @@ var proof groth16.Proof
json.Unmarshal([]byte(string(proofsFile)), &proof) panicErr(err) - // open compiledcircuit.json - compiledcircuitFile, err := ioutil.ReadFile("compiledcircuit.json") - panicErr(err) - var circuit circuitcompiler.Circuit - json.Unmarshal([]byte(string(compiledcircuitFile)), &circuit) - panicErr(err) - // open trustedsetup.json trustedsetupFile, err := ioutil.ReadFile("trustedsetup.json") panicErr(err)@@ -554,7 +540,7 @@ var publicSignals []*big.Int
err = json.Unmarshal([]byte(string(publicInputsFile)), &publicSignals) panicErr(err) - verified := groth16.VerifyProof(circuit, trustedsetup, proof, publicSignals, true) + verified := groth16.VerifyProof(trustedsetup, proof, publicSignals, true) if !verified { fmt.Println("ERROR: proofs not verified") } else {
@@ -275,7 +275,7 @@ return proof, nil
} // VerifyProof verifies over the BN128 the Pairings of the Proof -func VerifyProof(circuit circuitcompiler.Circuit, setup Setup, proof Proof, publicSignals []*big.Int, debug bool) bool { +func VerifyProof(setup Setup, proof Proof, publicSignals []*big.Int, debug bool) bool { icPubl := setup.Vk.IC[0] for i := 0; i < len(publicSignals); i++ {
@@ -97,11 +97,11 @@ fmt.Println("witness:", w)
b35Verif := big.NewInt(int64(35)) publicSignalsVerif := []*big.Int{b35Verif} before := time.Now() - assert.True(t, VerifyProof(*circuit, setup, proof, publicSignalsVerif, true)) + assert.True(t, VerifyProof(setup, proof, publicSignalsVerif, true)) fmt.Println("verify proof time elapsed:", time.Since(before)) // check that with another public input the verification returns false bOtherWrongPublic := big.NewInt(int64(34)) wrongPublicSignalsVerif := []*big.Int{bOtherWrongPublic} - assert.True(t, !VerifyProof(*circuit, setup, proof, wrongPublicSignalsVerif, false)) + assert.True(t, !VerifyProof(setup, proof, wrongPublicSignalsVerif, false)) }
@@ -286,7 +286,7 @@ return proof, nil
} // VerifyProof verifies over the BN128 the Pairings of the Proof -func VerifyProof(circuit circuitcompiler.Circuit, setup Setup, proof Proof, publicSignals []*big.Int, debug bool) bool { +func VerifyProof(setup Setup, proof Proof, publicSignals []*big.Int, debug bool) bool { // e(piA, Va) == e(piA', g2) pairingPiaVa := Utils.Bn.Pairing(proof.PiA, setup.Vk.Vka) pairingPiapG2 := Utils.Bn.Pairing(proof.PiAp, Utils.Bn.G2.G)
@@ -98,13 +98,13 @@ fmt.Println("witness:", w)
b35Verif := big.NewInt(int64(35)) publicSignalsVerif := []*big.Int{b35Verif} before := time.Now() - assert.True(t, groth16.VerifyProof(*circuit, setup, proof, publicSignalsVerif, true)) + assert.True(t, groth16.VerifyProof(setup, proof, publicSignalsVerif, true)) fmt.Println("verify proof time elapsed:", time.Since(before)) // check that with another public input the verification returns false bOtherWrongPublic := big.NewInt(int64(34)) wrongPublicSignalsVerif := []*big.Int{bOtherWrongPublic} - assert.True(t, !groth16.VerifyProof(*circuit, setup, proof, wrongPublicSignalsVerif, false)) + assert.True(t, !groth16.VerifyProof(setup, proof, wrongPublicSignalsVerif, false)) } func TestZkFromFlatCircuitCode(t *testing.T) {@@ -233,13 +233,13 @@ fmt.Println("witness:", w)
b35Verif := big.NewInt(int64(35)) publicSignalsVerif := []*big.Int{b35Verif} before := time.Now() - assert.True(t, VerifyProof(*circuit, setup, proof, publicSignalsVerif, true)) + assert.True(t, VerifyProof(setup, proof, publicSignalsVerif, true)) fmt.Println("verify proof time elapsed:", time.Since(before)) // check that with another public input the verification returns false bOtherWrongPublic := big.NewInt(int64(34)) wrongPublicSignalsVerif := []*big.Int{bOtherWrongPublic} - assert.True(t, !VerifyProof(*circuit, setup, proof, wrongPublicSignalsVerif, false)) + assert.True(t, !VerifyProof(setup, proof, wrongPublicSignalsVerif, false)) } func TestZkMultiplication(t *testing.T) {@@ -341,13 +341,13 @@ fmt.Println("witness", w)
b12Verif := big.NewInt(int64(12)) publicSignalsVerif := []*big.Int{b12Verif} before := time.Now() - assert.True(t, VerifyProof(*circuit, setup, proof, publicSignalsVerif, true)) + assert.True(t, VerifyProof(setup, proof, publicSignalsVerif, true)) fmt.Println("verify proof time elapsed:", time.Since(before)) // check that with another public input the verification returns false bOtherWrongPublic := big.NewInt(int64(11)) wrongPublicSignalsVerif := []*big.Int{bOtherWrongPublic} - assert.True(t, !VerifyProof(*circuit, setup, proof, wrongPublicSignalsVerif, false)) + assert.True(t, !VerifyProof(setup, proof, wrongPublicSignalsVerif, false)) } func TestMinimalFlow(t *testing.T) {@@ -430,11 +430,11 @@ fmt.Println("witness:", w)
b35Verif := big.NewInt(int64(35)) publicSignalsVerif := []*big.Int{b35Verif} before := time.Now() - assert.True(t, VerifyProof(*circuit, setup, proof, publicSignalsVerif, true)) + assert.True(t, VerifyProof(setup, proof, publicSignalsVerif, true)) fmt.Println("verify proof time elapsed:", time.Since(before)) // check that with another public input the verification returns false bOtherWrongPublic := big.NewInt(int64(34)) wrongPublicSignalsVerif := []*big.Int{bOtherWrongPublic} - assert.True(t, !VerifyProof(*circuit, setup, proof, wrongPublicSignalsVerif, false)) + assert.True(t, !VerifyProof(setup, proof, wrongPublicSignalsVerif, false)) }
@@ -94,20 +94,9 @@ return js.ValueOf(string(proofJson))
} func verifyProofs(this js.Value, i []js.Value) interface{} { - var circuitStr utils.CircuitString - err := json.Unmarshal([]byte(i[0].String()), &circuitStr) - if err != nil { - println(i[0].String()) - println("error parsing circuit from stringified json") - } - circuit, err := utils.CircuitFromString(circuitStr) - if err != nil { - println("error " + err.Error()) - } - var setupStr utils.SetupString - println(i[1].String()) - err = json.Unmarshal([]byte(i[1].String()), &setupStr) + println(i[0].String()) + err := json.Unmarshal([]byte(i[0].String()), &setupStr) if err != nil { println("error parsing setup from stringified json") }@@ -117,9 +106,9 @@ println("error " + err.Error())
} var proofStr utils.ProofString - err = json.Unmarshal([]byte(i[2].String()), &proofStr) + err = json.Unmarshal([]byte(i[1].String()), &proofStr) if err != nil { - println(i[0].String()) + println(i[1].String()) println("error parsing proof from stringified json") } proof, err := utils.ProofFromString(proofStr)@@ -128,13 +117,13 @@ println("error " + err.Error())
} var publicInputs []*big.Int - err = json.Unmarshal([]byte(i[3].String()), &publicInputs) + err = json.Unmarshal([]byte(i[2].String()), &publicInputs) if err != nil { - println(i[0].String()) + println(i[2].String()) println("error parsing publicInputs from stringified json") } - verified := snark.VerifyProof(circuit, setup, proof, publicInputs, false) + verified := snark.VerifyProof(setup, proof, publicInputs, false) if err != nil { println("error verifiyng proof", err) }@@ -215,20 +204,9 @@ return js.ValueOf(string(proofJson))
} func grothVerifyProofs(this js.Value, i []js.Value) interface{} { - var circuitStr utils.CircuitString - err := json.Unmarshal([]byte(i[0].String()), &circuitStr) - if err != nil { - println(i[0].String()) - println("error parsing circuit from stringified json") - } - circuit, err := utils.CircuitFromString(circuitStr) - if err != nil { - println("error " + err.Error()) - } - var setupStr utils.GrothSetupString - println(i[1].String()) - err = json.Unmarshal([]byte(i[1].String()), &setupStr) + println(i[0].String()) + err := json.Unmarshal([]byte(i[0].String()), &setupStr) if err != nil { println("error parsing setup from stringified json") }@@ -238,9 +216,9 @@ println("error " + err.Error())
} var proofStr utils.GrothProofString - err = json.Unmarshal([]byte(i[2].String()), &proofStr) + err = json.Unmarshal([]byte(i[1].String()), &proofStr) if err != nil { - println(i[0].String()) + println(i[1].String()) println("error parsing proof from stringified json") } proof, err := utils.GrothProofFromString(proofStr)@@ -249,13 +227,13 @@ println("error " + err.Error())
} var publicInputs []*big.Int - err = json.Unmarshal([]byte(i[3].String()), &publicInputs) + err = json.Unmarshal([]byte(i[2].String()), &publicInputs) if err != nil { - println(i[0].String()) + println(i[2].String()) println("error parsing publicInputs from stringified json") } - verified := groth16.VerifyProof(circuit, setup, proof, publicInputs, false) + verified := groth16.VerifyProof(setup, proof, publicInputs, false) if err != nil { println("error verifiyng proof", err) }
@@ -21,7 +21,6 @@
function callVerifyProof() { const proof = document.getElementById("proofResult").value; let r = verifyProofs( - JSON.stringify(circuit), JSON.stringify(setup), proof, JSON.stringify([35])