Apa Itu Coin Mixing dan CoinJoin?

· 5 min read

Bitcoin sering disebut sebagai uang digital, tapi perbandingan ini sebenarnya bisa diperdebatkan. Kalau Alice membayar Bob dengan uang tunai $10, Bob tidak akan tahu dari mana asal uang itu. Kalau Bob kemudian memberikan uangnya kepada Carol, Carol tidak bisa menyimpulkan bahwa uang itu tadinya milik Alice.

Bitcoin berbeda karena sifatnya yang terbuka. Riwayat sebuah coin (yakni unspent transaction output atau UTXO) bisa ditelusuri dengan mudah oleh siapa saja. Prosesnya lebih mirip mencatat jumlah transaksi dan nama penerima di sebuah faktur setiap kali bitcoin dipakai.

Meski begitu, tidak adanya nama pada alamat publik mencegah identitas pengguna terbongkar dengan gampang. Namun Bitcoin tetap tidak sepenuhnya privat. Analitik blockchain terus berkembang makin canggih dan makin berhasil mengaitkan alamat dengan identitas. Selain teknik pemantauan, unit khusus yang bekerja untuk tujuan itu juga bisa mengungkap identitas pengguna kripto. Untuk mencegahnya, berbagai teknik memutus kaitan antartransaksi bermunculan selama bertahun-tahun.

Apa itu coin mixing?

Secara umum, coin mixing mewakili transaksi yang bertujuan menyembunyikan dana dengan cara menukarnya dengan dana lain. Tapi di dunia cryptocurrency, coin mixing sering dipakai untuk merujuk pada layanan yang ditawarkan pihak ketiga. Penyedia layanan mengambil coin milik pengguna (plus biaya transaksi kecil) dan mengembalikan coin lain yang sama sekali tidak berkaitan dengan coin yang dikirim tadi. Layanan semacam ini juga dikenal sebagai tumbler atau mixer.

Tentu saja, ada sejumlah pertanyaan soal keamanan dan privasi layanan terpusat semacam itu. Tidak ada jaminan mixer akan mengembalikan dana pengguna, atau bahwa coin yang dikembalikan tidak menyimpan riwayat transaksi bermasalah. Hal lain yang perlu dipertimbangkan saat memakai mixer adalah IP dan alamat Bitcoin Anda bisa dicatat oleh pihak ketiga. Pada akhirnya, pengguna menitipkan dananya kepada orang lain dengan harapan menerima coin yang sudah terputus jejaknya.

Pendekatan yang lebih menarik adalah transaksi CoinJoin, yang menciptakan tingkat penyangkalan yang masuk akal dalam derajat cukup tinggi. Artinya, setelah sebuah transaksi CoinJoin dilakukan, tidak ada bukti yang bisa dihadirkan untuk memastikan kaitan antara seorang pengguna dan transaksi-transaksi sebelumnya milik pengguna itu. Banyak solusi CoinJoin menawarkan alternatif yang lebih terdesentralisasi dibanding mixer. Pengguna tidak perlu melepaskan kendali atas dananya, meski seorang koordinator bisa saja terlibat dalam prosesnya.

Apa itu CoinJoin?

Transaksi CoinJoin pertama kali diperkenalkan developer Bitcoin Gregory Maxwell pada 2013. Dalam artikelnya, ia menjelaskan secara ringkas bagaimana proses ini disusun dan bagaimana peningkatan privasi berskala besar bisa diraih tanpa mengubah protokolnya.

Pada intinya, CoinJoin adalah memasukkan gabungan input dari berbagai pengguna ke dalam satu transaksi tunggal. Sebelum menjelaskan bagaimana (dan mengapa) hal itu dilakukan, mari bicarakan dulu struktur dasar sebuah transaksi.

Transaksi Bitcoin terdiri dari input dan output. Ketika pengguna hendak bertransaksi, ia memakai UTXO miliknya sebagai input, menentukan output-nya, lalu menandatangani input tersebut. Yang penting dicatat, setiap input ditandatangani secara terpisah, dan pengguna bisa membuat banyak output sekaligus (kiriman ke alamat-alamat berbeda).

Ketika kita menelaah sebuah transaksi yang terdiri dari empat input (masing-masing 0,2 BTC) dan dua output (0,7 BTC dan 0,09 BTC), kita bisa menarik beberapa dugaan. Dugaan pertama, sebuah pembayaran sedang dilakukan — pengirim mengirim salah satu output ke seseorang dan kembaliannya ke dirinya sendiri. Karena ia memakai empat input, output terbesar yang konsisten kemungkinan besar menuju penerima. Kalau ada 0,01 BTC yang hilang dari total output, itulah biaya transaksi yang dibayarkan kepada penambang.

Bisa juga si pengirim ingin membuat satu UTXO besar dari beberapa UTXO kecil, sehingga ia menggabungkan input-input kecil itu untuk mencapai angka 0,7 BTC yang diinginkan.

Dugaan lain yang bisa kita tarik berpijak pada kenyataan bahwa setiap input ditandatangani secara terpisah. Bisa jadi transaksi itu dijalankan sedemikian rupa sehingga input-nya ditandatangani oleh empat pihak yang berbeda. Prinsip inilah yang membuat proses CoinJoin bekerja efektif.

Bagaimana cara kerja CoinJoin?

Gagasan utamanya, beberapa pihak berkoordinasi untuk menyusun satu transaksi dengan saling menyampaikan input dan output yang mereka inginkan. Ketika semua input digabungkan, mustahil memastikan output mana milik pengguna yang mana. Anda bisa melihat prosesnya pada diagram di bawah ini:

Di sini ada empat pengguna yang ingin memutus kaitan antartransaksi. Mereka berkoordinasi satu sama lain (atau lewat seorang koordinator) untuk menyampaikan input dan output yang ingin mereka sertakan.

Koordinator mengambil seluruh informasi itu, menyusun sebuah transaksi darinya, lalu meminta setiap peserta menandatangani transaksi tersebut sebelum disiarkan ke jaringan. Setelah para pengguna menandatanganinya, transaksi ini mustahil diubah tanpa membuatnya menjadi tidak sah. Dengan begitu, risiko koordinator mencuri dana pun hilang.

Transaksi itu berfungsi seperti kotak hitam untuk mengaduk coin. UTXO lama harus dimusnahkan untuk menciptakan yang baru. Satu-satunya kaitan antara UTXO lama dan baru adalah transaksi itu sendiri, tapi di titik ini para pesertanya sudah tidak bisa dipisahkan satu sama lain. Paling banter bisa dikatakan bahwa salah satu input ditambahkan oleh seorang peserta, dan peserta itu bisa jadi pemilik baru dari output yang dihasilkan.

Tapi bahkan itu pun bukan kepastian penuh. Bisakah dari transaksi di atas disimpulkan bahwa ada empat peserta? Apakah satu orang mengirim dana ke empat alamatnya sendiri? Apakah dua orang melakukan dua pembelian berbeda lalu mengirim 0,2 BTC kembali ke alamat mereka? Atau apakah empat orang mengirim dana ke orang baru atau ke diri mereka sendiri? Kita tidak mungkin memberi jawaban pasti atas pertanyaan-pertanyaan itu.

Privasi lewat penyangkalan

Keberadaan aplikasi CoinJoin saja sudah cukup membuat kita meragukan metode yang dipakai untuk menganalisis transaksi. Anda bisa menyimpulkan bahwa CoinJoin dipakai di banyak transaksi, tapi Anda tetap tidak bisa tahu siapa pemilik output-nya. Seiring makin populernya aplikasi semacam ini, asumsi bahwa semua input berasal dari pengguna yang sama pun melemah, dan itu menjadi langkah besar menuju privasi di ekosistem yang lebih luas.

Pada contoh sebelumnya, transaksi tersebut punya anonymity set sebesar 4, sehingga pemilik output bisa jadi salah satu dari empat pengguna yang terlibat. Makin besar anonymity set-nya, makin sulit mengaitkan sebuah transaksi dengan pemilik aslinya. Untungnya, berkat implementasi CoinJoin terbaru, pengguna bisa menggabungkan input-nya dengan puluhan pengguna lain tanpa perlu saling percaya, sehingga tingkat penyangkalannya tinggi. Belum lama ini, sebuah transaksi yang melibatkan 100 orang berhasil dijalankan.

Penutup

Alat untuk mengaduk coin adalah perkakas penting yang tersedia bagi semua pengguna yang peduli privasi. Tidak seperti pembaruan privasi lain (misalnya Confidential Transactions), alat-alat ini bisa dimanfaatkan tanpa perlu mengubah kondisi protokol yang berjalan sekarang.

Bagi pengguna yang percaya pada integritas dan metode pihak ketiga, layanan mixing menawarkan solusi yang mudah. Bagi yang lebih memilih alternatif yang bisa diverifikasi dan tidak berbasis penitipan dana, alternatif CoinJoin jelas lebih unggul. Prosesnya bisa dilakukan secara manual oleh pengguna yang paham teknis, atau lewat perangkat lunak yang menghapus kerumitan mekanismenya. Beberapa alat semacam itu sudah tersedia, dan popularitasnya terus tumbuh seiring pengguna mencari privasi yang lebih besar.

coin mixing coinjoin bitcoin privasi transaksi kripto bitcoin mixer utxo