Understanding Tornado Cash: DeFi Privacy via Zero-Knowledge Proofs

Added:

Privacy Problem
Anonymity Set
ZK Proofs
Nullifier Use
Merkle Trees
Proof of Inclusion
Contract Design

Privacy Problem

0:00
Playing Section
  • 1

    Blockchain transactions are public, linking addresses to balances.

  • 2

    Tornado Cash breaks the sender-receiver link for ether transfers.

  • 3

    It uses cryptographic commitments to obscure transaction details.

Fundamental understanding of the Ethereum blockchain, including how transactions are structured, address transparency, and how gas fees work.
Basic cryptographic concepts, specifically cryptographic hash functions and how Merkle trees are used to verify membership in a set.
The conceptual foundation of Zero-Knowledge Proofs (ZKPs)—proving the validity of a statement without revealing the underlying data.
The mechanics of Ethereum smart contracts, particularly how smart contracts hold, deposit, and withdraw user funds in pools.
The regulatory, legal, and ethical implications of decentralized privacy protocols, such as the OFAC sanctions on Tornado Cash and the concept of 'Proof of Innocence'.
Advanced zero-knowledge proof architectures, including the differences between zk-SNARKs (requiring trusted setups) and zk-STARKs.
Privacy-preserving Layer 2 rollup designs, such as Aztec Network, which integrate private transactions directly into scalable execution environments.
Alternative blockchain privacy models, comparing Ethereum-based mixers to native UTXO privacy-centric networks like Zcash and Monero.
39.4K views1.1Klikes13:08@smartcontractprogrammerOriginal Release: 2021-08-27

Tornado Cash protects user privacy on Ethereum by using zero-knowledge proofs (zk-SNARKs) to hide the link between sender and receiver addresses. Users deposit identical amounts of ETH with random secrets and nullifiers, creating commitments stored in a Merkle tree. During withdrawal, users prove they know the secret and nullifier corresponding to their commitment without revealing them, preventing identity exposure while preventing double-spending through nullifier verification.