iden3 / snarkjs

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

snarkjs calculatewitness raises 3 Hash not found 0 0 0 0 Error for a no-constraint circuit #45

Closed wanseob closed 4 years ago

wanseob commented 4 years ago

Problem? Snarkjs raises 3 Hash not found 0 0 0 0 error for an empty circuit

How to reproduce? Here's the used circuit & input.json https://gist.github.com/wanseob/d4d31e204d25cf31416a0af4ee98e2e6

circom circuit.circom --r1cs --wasm --sym
snarkjs calculatewitness --wasm circuit.wasm --input input.json --witness witness.json
ERROR:  3 Hash not found 0 0 0 0
Error: Hash not found 0 0 0 0
    at error (/home/wanseob/.nvm/versions/node/v12.16.2/lib/node_modules/snarkjs/node_modules/circom_runtime/js/witness_calculator.js:47:23)
    at wasm-function[87]:0x61f1
    at wasm-function[94]:0x6382
    at wasm-function[95]:0x63bb
    at WitnessCalculator._doCalculateWitness (/home/wanseob/.nvm/versions/node/v12.16.2/lib/node_modules/snarkjs/node_modules/circom_runtime/js/witness_calculator.js:133:35)
    at WitnessCalculator.calculateWitness (/home/wanseob/.nvm/versions/node/v12.16.2/lib/node_modules/snarkjs/node_modules/circom_runtime/js/witness_calculator.js:150:20)
    at run (/home/wanseob/.nvm/versions/node/v12.16.2/lib/node_modules/snarkjs/cli.js:367:32)
ERROR: Error: Hash not found 0 0 0 0

versions:

wanseob commented 4 years ago

I investigated it more in detail and it seems the array input is causing the problem.

Works well

// circuit.circom
template Test() {
    signal private input a;
}
component main = Test()

// input.json
{
    "a": 1
}

Doesn't work

// circuit.circom
template Test() {
    signal private input a[1];
}
component main = Test()

// input.json
{
    "a[0]": 1
}
wanseob commented 4 years ago

Closing this issue because it is not related to this module. If you are having problems on it, please check the input parameter key names. Especially if you are using matrices, please check this PR https://github.com/iden3/circom/pull/59