keccak256-circom
keccak256-circom copied to clipboard
keccak256 hash implementation in Circom
keccak256-circom 
Keccak256 hash function (ethereum version) implemented in circom. Spec: https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf
Warning: WIP, this is an experimental repo.
Status
Initial version works, compatible with Ethereum version of Keccak256.
It needs around 150848
(151k
) constraints.
For context: Rapidsnark proof generation time:
- 1.1M constraints -> 7 seconds (8 CPU)
- 128M constraints -> <2min (64 CPU)
Usage
- import the lib in the
package.json
:
"dependencies": {
"keccak256-circom": "git+https://github.com/vocdoni/keccak256-circom"
}
- Usage:
pragma circom 2.0.0;
include "../node_modules/keccak256-circom/circuits/keccak.circom";
// for a input & output of 32 bytes:
component main = Keccak(32*8, 32*8);