- circom 版本
- 0.0.19
- python 版本
- 2.7.16
- nodejs 版本
- v10.16.0
- solidity 版本
- 0.5.0
使用的hash函数为:mimc7
-
编写电路
- mixer
- get_merkle_root.circom
-
编写合约
- mixer
- Merkle
编译电路,并将编译好的电路以json格式输出
$ circom <your_circuit_name>.circom -o circuit.json
为电路生成public input,Private input
$ node generate_circuit_input.js
使用编译好的电路及input生成witness
$ snarkjs calculatewitness -c circuit.json -i input.json
$ snarkjs setup -c circuit.json --protocol groth
$ snarkjs proof -w witness.json --pk proving_key.json
$ snarkjs verify
$ snarkjs generateverifier
$ snarkjs generatecall
mixer 合约: 0x46a7f914785357b9054fdB670845DC6c0c968167