split trustedsetup in Pk & Vk for proof generation & verification smaller inputs

This commit is contained in:
arnaucube
2019-07-28 12:56:13 +02:00
parent 41f7a3518a
commit 469eabd451
8 changed files with 136 additions and 137 deletions

View File

@@ -80,7 +80,7 @@ func generateProofs(this js.Value, i []js.Value) interface{} {
}
w, err := circuit.CalculateWitness(inputs.Private, inputs.Public)
proof, err := snark.GenerateProofs(circuit, setup, w, px)
proof, err := snark.GenerateProofs(circuit, setup.Pk, w, px)
if err != nil {
println("error generating proof", err)
}
@@ -123,7 +123,7 @@ func verifyProofs(this js.Value, i []js.Value) interface{} {
println("error parsing publicInputs from stringified json")
}
verified := snark.VerifyProof(setup, proof, publicInputs, false)
verified := snark.VerifyProof(setup.Vk, proof, publicInputs, false)
if err != nil {
println("error verifiyng proof", err)
}
@@ -190,7 +190,7 @@ func grothGenerateProofs(this js.Value, i []js.Value) interface{} {
}
w, err := circuit.CalculateWitness(inputs.Private, inputs.Public)
proof, err := groth16.GenerateProofs(circuit, setup, w, px)
proof, err := groth16.GenerateProofs(circuit, setup.Pk, w, px)
if err != nil {
println("error generating proof", err)
}
@@ -233,7 +233,7 @@ func grothVerifyProofs(this js.Value, i []js.Value) interface{} {
println("error parsing publicInputs from stringified json")
}
verified := groth16.VerifyProof(setup, proof, publicInputs, false)
verified := groth16.VerifyProof(setup.Vk, proof, publicInputs, false)
if err != nil {
println("error verifiyng proof", err)
}

Binary file not shown.

View File

@@ -134,17 +134,16 @@ func Array32BigIntToString(b [][3][2]*big.Int) [][3][2]string {
// Setup
type SetupString struct {
// public
G1T [][3]string
G2T [][3][2]string
Pk struct {
A [][3]string
B [][3][2]string
C [][3]string
Kp [][3]string
Ap [][3]string
Bp [][3]string
Cp [][3]string
Z []string
Pk struct {
G1T [][3]string
A [][3]string
B [][3][2]string
C [][3]string
Kp [][3]string
Ap [][3]string
Bp [][3]string
Cp [][3]string
Z []string
}
Vk struct {
Vka [3][2]string
@@ -160,8 +159,7 @@ type SetupString struct {
func SetupToString(setup snark.Setup) SetupString {
var s SetupString
s.G1T = Array3BigIntToString(setup.G1T)
s.G2T = Array32BigIntToString(setup.G2T)
s.Pk.G1T = Array3BigIntToString(setup.Pk.G1T)
s.Pk.A = Array3BigIntToString(setup.Pk.A)
s.Pk.B = Array32BigIntToString(setup.Pk.B)
s.Pk.C = Array3BigIntToString(setup.Pk.C)
@@ -183,11 +181,7 @@ func SetupToString(setup snark.Setup) SetupString {
func SetupFromString(s SetupString) (snark.Setup, error) {
var o snark.Setup
var err error
o.G1T, err = Array3StringToBigInt(s.G1T)
if err != nil {
return o, err
}
o.G2T, err = Array32StringToBigInt(s.G2T)
o.Pk.G1T, err = Array3StringToBigInt(s.Pk.G1T)
if err != nil {
return o, err
}