diff --git a/package.json b/package.json index fc91d8b..ea77e60 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "zksnark", - "version": "0.0.4", + "version": "0.0.5", "description": "zkSnark implementation in javascript", "main": "index.js", "scripts": { diff --git a/src/prover.js b/src/prover.js index f64d5e1..2f90eb5 100644 --- a/src/prover.js +++ b/src/prover.js @@ -95,7 +95,7 @@ module.exports = function genProof(vk_proof, witness) { const h = PolF.div(polFull, vk_proof.polZ ); - console.log(h.length + "/" + vk_proof.hExps.length); + // console.log(h.length + "/" + vk_proof.hExps.length); for (let i = 0; i < h.length; i++) { proof.pi_h = G1.add( proof.pi_h, G1.mulScalar( vk_proof.hExps[i], h[i])); diff --git a/src/setup.js b/src/setup.js index ffdddeb..6500470 100644 --- a/src/setup.js +++ b/src/setup.js @@ -54,6 +54,7 @@ module.exports = function setup(circuit) { function calculatePolynomials(setup, circuit) { // Calculate the points that must cross each polynomial +/* setup.toxic.aExtra = []; setup.toxic.bExtra = []; setup.toxic.cExtra = []; @@ -74,8 +75,8 @@ function calculatePolynomials(setup, circuit) { setup.toxic.bExtra[s] = F.random(); setup.toxic.cExtra[s] = F.random(); aPoints[s].push([[bigInt(circuit.nConstraints), F.one], [setup.toxic.aExtra[s], F.one]]); - bPoints[s].push([[bigInt(circuit.nConstraints), F.one], [setup.toxic.aExtra[s], F.one]]); - cPoints[s].push([[bigInt(circuit.nConstraints), F.one], [setup.toxic.aExtra[s], F.one]]); + bPoints[s].push([[bigInt(circuit.nConstraints), F.one], [setup.toxic.bExtra[s], F.one]]); + cPoints[s].push([[bigInt(circuit.nConstraints), F.one], [setup.toxic.cExtra[s], F.one]]); } // Calculate the polynomials using Lagrange @@ -93,6 +94,64 @@ function calculatePolynomials(setup, circuit) { setup.vk_proof.polsC.push( unrat(pC) ); } +*/ + + setup.toxic.aExtra = []; + setup.toxic.bExtra = []; + setup.toxic.cExtra = []; + + let allZerosPol = [bigInt(1)]; + + for (let c=0; c<=circuit.nConstraints; c++) { + allZerosPol = PolF.mul(allZerosPol, [F.neg(bigInt(c)), F.one]); + } + + setup.vk_proof.polsA = []; + setup.vk_proof.polsB = []; + setup.vk_proof.polsC = []; + for (let s = 0; s