A toolbox to compute MiMC hash in Javascript, which allows to export a .zok file to perform the same computation in ZoKrates.
To install the library, run:
$ npm install mimcjs
const mimcjs = require('mimcjs')
const point1 = [1,2]
const point2 = [123,"0x55DC2CF4057e4D6D78eE7Ea5170B58c04D2c08a7"]
var hash1 = mimcjs.mimc(point1)
var hash2 = mimcjs.mimc(point2)
Some commands are available from CLI:
-
mimc help
show commands -
mimc hash <point>
perform MiMC hash on a point -
mimc generate-constants <seed>
generate round constants starting from a seed (number or string) -
mimc set-rounds <rounds>
set DEFAULT_ROUNDS parameter -
mimc set-exponent <exponent>
set DEFAULT_EXPONENT parameter -
mimc export-circuit
export a .zok program to compute MiMC hash in ZoKrates using default parameters ROUND_CONSTANTS and DEFAULT_ROUNDS
If you find a bug or you have ideas for new components, please feel free to submit a pull request 🚀
The library is based on https://github.com/HarryR/ethsnarks/blob/master/ethsnarks/mimc/permutation.py
- Guido Cazzaniga - Initial work - guidocazzaniga