| Penulis | Semenov, Roman; Storm, Alexey; Pertsev, Alexey |
|---|---|
| Tahun | 2019 |
| Proyek | Tornado Cash |
| Lisensi | MIT |
| Sumber Resmi | tornado.cash/whitepaper_v1.4.pdf |
“Tornado Cash: Ethereum Privacy Solution” adalah dokumentasi oleh Roman Semenov, Alexey Storm, dan Alexey Pertsev dari tim Tornado Cash, diterbitkan pada 2019. Tornado Cash adalah protokol transaksi privat terdesentralisasi, non-kustodial di Ethereum: pengguna menyetor jumlah tetap ETH (atau token ERC-20) dan kemudian dapat menarik ke alamat segar, dengan tautan deposit-penarikan diputus oleh bukti zk-SNARK. Pada Agustus 2022, Departemen Keuangan AS (OFAC) menyanksi alamat smart contract Tornado Cash — tindakan regulasi bersejarah terhadap kode smart contract yang tidak dapat diubah itu sendiri. Alexey Pertsev kemudian dihukum di Belanda karena pencucian uang (2024) dalam persidangan yang menjadi preseden bagi pengembang protokol privasi.
Publikasi dan Konteks
Pada 2019, Ethereum tidak memiliki privasi native. Setiap transaksi ETH terlihat publik: dari alamat mana ke alamat mana, kapan, dan berapa jumlahnya. Tornado Cash mengambil langsung dari pekerjaan akademis tim Zcash/Zerocash: menggunakan zk-SNARK untuk membuktikan bahwa penarikan diotorisasi oleh seseorang yang melakukan deposit yang valid, tanpa mengungkapkan deposit mana. Perbedaan utama dari Zcash: Tornado Cash adalah smart contract Ethereum, bukan blockchain terpisah.
Desain Inti: Skema Commitment-Nullifier
Deposit:
- Pengguna menghasilkan rahasia acak: 31 byte
nullifierdan 31 bytesecret - Menghitung commitment: C = hash(nullifier || secret)
- Menyetor tepat 1 ETH (atau 10 ETH, 100 ETH — denominasi tetap) beserta C ke dalam kontrak
- C dimasukkan ke dalam Merkle tree yang dipertahankan oleh kontrak
- Pengguna menyimpan (nullifier, secret) mereka secara offline — ini adalah “tiket penarikan” mereka
Penarikan:
- Pengguna menghasilkan bukti zk-SNARK yang menunjukkan bahwa mereka mengetahui pasangan (nullifier, secret) sehingga hash(nullifier || secret) adalah daun dalam Merkle tree kontrak, dan hash nullifier (H(nullifier)) belum pernah digunakan sebelumnya
- Pengguna mengirim bukti + hash nullifier ke kontrak, yang mentransfer 1 ETH ke alamat penerima yang ditentukan
- Kontrak menyimpan hash nullifier untuk mencegah double-spending
Hasilnya: tidak ada cara on-chain untuk menautkan alamat deposan ke alamat penerima.
Denominasi Tetap
Tornado Cash menggunakan denominasi tetap (0,1 ETH; 1 ETH; 10 ETH; 100 ETH) bukan jumlah arbitrer. Ini penting untuk privasi: jika jumlah penarikan bervariasi, mudah mencocokkan deposit dan penarikan berdasarkan jumlah. Denominasi tetap membuat semua deposit dan penarikan dalam kelompok yang sama terlihat identik.
Sanksi OFAC Agustus 2022
Pada 8 Agustus 2022, OFAC AS menyanksi 45 alamat Ethereum terkait Tornado Cash, termasuk alamat smart contract yang tidak dapat diubah. Ini berarti warga AS secara hukum dilarang berinteraksi dengan kontrak-kontrak ini — bahkan untuk penggunaan yang sah. Tindakan ini sangat kontroversial karena menyanksi kode, bukan individu.
Dampak Hukum
Alexey Pertsev ditangkap di Belanda (Agustus 2022), diadili, dan dihukum 5 tahun 4 bulan penjara (Mei 2024) karena pencucian uang terkait penggunaan Tornado Cash oleh Lazarus Group Korea Utara. Persidangan ini menetapkan preseden yang mengkhawatirkan bagi pengembang protokol privasi open-source.
Istilah Terkait
Referensi
- Semenov, R.; Storm, A.; Pertsev, A. (2019). Tornado Cash: Ethereum Privacy Solution. tornado.cash/whitepaper_v1.4.pdf