Tornado Cash but with Poseidon Hash

Node.js CI

WARNING: This project is unaudited, please don't use in the production.

We copy and modify the Tornado Cash and implement the optimization suggestions in the a Tornado audit report.

Specifically we

  • Use Poseidon Hash for tree hashing, nullifier hashing, and commitment construction
  • Use the following suggested construction to allow nullifier reuse
commitment = PoseidonHash(nullifier, 0)
nullifierHash = PoseidonHash(nullifier, 1, leafIndex)

Build

First, you must have the Circom 2 compiler installed. See installation instructions for details.

The build step compiles the circuit, does untrusted setup, generates verifier contract, and compiles all the contracts. It could take a while at the setup step.

npm install
npm run build
npm run test

Benchmark

npm run info