iden3 / snarkjs

zkSNARK implementation in JavaScript & WASM
GNU General Public License v3.0
1.73k stars 413 forks source link

PLONK prove doesn't work for Getting Started circuit. Error: Polinomial does not divide #94

Closed 0xys closed 3 years ago

0xys commented 3 years ago

I followed the instruction as in README.md file with plonk. But, at step 24, it fails with the following error. witness should be correct value.

Anyone knows how to resolve it?

[ERROR] snarkJS: Error: Polinomial does not divide
    at divPol1 (/home/username/.nvm/versions/node/v14.17.0/lib/node_modules/snarkjs/build/cli.cjs:7188:19)
    at round5 (/home/username/.nvm/versions/node/v14.17.0/lib/node_modules/snarkjs/build/cli.cjs:7131:18)
    at plonk16Prove (/home/username/.nvm/versions/node/v14.17.0/lib/node_modules/snarkjs/build/cli.cjs:6484:11)
    at async Object.plonkProve [as action] (/home/username/.nvm/versions/node/v14.17.0/lib/node_modules/snarkjs/build/cli.cjs:8825:36)
    at async clProcessor (/home/username/.nvm/versions/node/v14.17.0/lib/node_modules/snarkjs/build/cli.cjs:280:21)
0xys commented 3 years ago

Give you the context. My circuit.circom is:

template Multiplier() {
    signal private input a;
    signal private input b;
    signal output c;
    c <== a*b;
}

component main = Multiplier();

and input.json is:

{"a": 3, "b": 11}
0xys commented 3 years ago

Solved with the latest version.