Computational cryptography › Live on mainnet today
Ethereum component

Privacy apps

In plain words

Apps that let you act on Ethereum without revealing who you are.

The idea: You deposit into a shared pool and receive a secret note. Later you prove, in zero knowledge, that you own some unspent note in the pool's Merkle tree without saying which one, and a "nullifier" derived from the note stops you from spending it twice.

Why it matters: They rely on zero-knowledge proofs on BN254 and the Poseidon hash.

The details

On the map: Semaphore, Privacy Pools: Groth16 + Poseidon on BN254

Applications that let users act without revealing who they are, such as Semaphore (anonymous signaling and voting)[1] and Privacy Pools (private withdrawals with association sets)[2].

They use Groth16 proofs on BN254 with the Poseidon hash inside the circuits[3], so they inherit BN254's assumptions, the trusted setup and Poseidon's security.

Rests on

If any of these breaks, this breaks too.

If it falls

If this breaks, these break with it.

Nothing on the map depends on it: it is an end point, something people use directly.

References

  1. Privacy & Scaling Explorations. Semaphore. Semaphore documentation, 2023. docs.semaphore.pse.dev
  2. Vitalik Buterin, Jacob Illum, Matthias Nadler et al. Blockchain Privacy and Regulatory Compliance: Towards a Practical Equilibrium. Elsevier BV, 2023. doi:10.2139/ssrn.4563364
  3. Lorenzo Grassi, Dmitry Khovratovich, Christian Rechberger et al. Poseidon: A New Hash Function for Zero-Knowledge Proof Systems. USENIX Security 2021. usenix.org/conference/usenixsecurity21/presentation/grassi