iden3 / wasmsnark

A fast zkSnark proof generator written in native Web Assembly.
GNU General Public License v3.0
206 stars 100 forks source link

Error converting proving key to binary #2

Closed poma closed 5 years ago

poma commented 5 years ago

I get error when trying convert proving key to binary. Steps to reproduce:

circuit.circom

include "../node_modules/circomlib/circuits/pedersen.circom";
include "../node_modules/circomlib/circuits/bitify.circom";

template Hasher() {
    signal input hash;
    signal private input preimage;
    component hasher = Pedersen(256);
    component bits = Num2Bits(256);
    bits.in <== preimage;
    for (var i = 0; i<256; i++) {
        hasher.in[i] <== bits.out[i];
    }
    hash === hasher.out[0];
}

component main = Hasher();

trying to setup and convert the key

node -v
> v11.12.0
snarkjs --version
> 0.1.13
circom --version
> 0.0.25
git clone git@github.com:iden3/websnark.git
cd websnark
npm i
npm i circomlib
cd build
vi circuit.circom # paste source above
circom circuit.circom -o circuit.json
snarkjs setup
node ../tools/buildpkey.js -i proving_key.json -o proving_key.bin
> /private/tmp/websnark/tools/buildpkey.js:68
    writeBigInt(h, toMontgomeryQ(p[0]));
                                  ^

TypeError: Cannot read property '0' of undefined
    at writePoint (/private/tmp/websnark/tools/buildpkey.js:68:35)
    at Object.<anonymous> (/private/tmp/websnark/tools/buildpkey.js:141:1)
    at Module._compile (internal/modules/cjs/loader.js:799:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:810:10)
    at Module.load (internal/modules/cjs/loader.js:666:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:606:12)
    at Function.Module._load (internal/modules/cjs/loader.js:598:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:862:12)
    at internal/main/run_main_module.js:21:11
poma commented 5 years ago

forgot --prorocol groth in setup