Penjelasan mengenai Coin Mixing dan CoinJoin
Beranda
Artikel
Penjelasan mengenai Coin Mixing dan CoinJoin

Penjelasan mengenai Coin Mixing dan CoinJoin

Tingkat Lanjut
Diterbitkan Mar 25, 2020Diperbarui Dec 28, 2022
6m

Daftar isi


Pengantar

Bitcoin sering disebut sebagai uang tunai digital, namun perbandingan ini layak dipertanyakan. Jika Alice membayar Bob sepuluh dolar tunai, Bob tidak tahu dari mana uang itu berasal. Jika Bob kemudian memberikannya kepada Carol, Carol tidak akan mengetahui bahwa Alice pernah memilikinya.
Bitcoin berbeda karena sifat publiknya yang melekat. Sejarah koin yang diberikan (lebih tepatnya, output transaksi yang tidak terpakai atau unspent transaction output/UTXO) dapat diamati dengan mudah oleh siapa pun. Ini sama seperti menulis jumlah transaksi dan nama peserta pada tagihan setiap kali digunakan. 
Dengan demikian, nama samaran dari alamat publik dapat digunakan agar identitas pengguna tidak mudah terungkap. Namun, Bitcoin tidak memberikan privasi sepenuhnya. Analisis Blockchain tumbuh semakin canggih dan mampu menghubungkan alamat ke identitas lebih efisien dari waktu ke waktu. Di samping teknik pengawasan lainnya, entitas yang bergelut di bidang ini dapat melakukan pengungkapan identitas pengguna kripto. Untuk mengatasinya, teknik untuk memutus tautan transaksi telah muncul selama bertahun-tahun.


Apa itu coin mixing?

Secara umum, coin mixing merupakan aktivitas apa pun yang melibatkan pengaburan dana, dan menggantinya dengan yang lain. Namun, dalam lingkungan mata uang kripto, coin mixing biasanya mengarah pada layanan yang disediakan oleh pihak ketiga. Penyedia layanan mengambil koin pengguna (mengenakan sedikit biaya), dan mengembalikan koin yang tidak memiliki tautan ke koin yang dikirim sebelumnya. Layanan ini juga dikenal sebagai tumbler atau mixer.

Keamanan dan anonimitas dari layanan tersentralisasi semacam itu tentu saja layak dipertanyakan. Pengguna tidak memiliki jaminan bahwa uang mereka akan dikembalikan oleh mixer atau bahwa koin yang dikembalikan tidak cacat dengan cara apa pun. Aspek lain yang perlu dipertimbangkan saat menggunakan mixer adalah bahwa alamat IP dan alamat Bitcoin mungkin dicatat oleh pihak ketiga. Pada akhirnya, pengguna malah menyerahkan kendali atas dana mereka dengan harapan menerima kembali koin yang tidak terkait atau terhubung dengan yang sebelumnya.

Pendekatan yang bisa dibilang lebih menarik lagi, ada dalam bentuk transaksi CoinJoin, yang menciptakan penyangkalan yang masuk akal (plausible deniability) tingkat tinggi. Dengan kata lain, setelah keluar dari CoinJoin, tidak ada bukti yang dapat menghubungkan pengguna dengan transaksi mereka sebelumnya. Banyak solusi CoinJoin yang menyediakan pilihan desentralisasi bagi para mixer. Meskipun mungkin ada koordinator yang terlibat, pengguna tidak perlu mengorbankan kustodi dana mereka.


Apa itu CoinJoin?

Transaksi CoinJoin pada awalnya diusulkan oleh pengembang Bitcoin, Gregory Maxwell, pada tahun 2013. Di utasnya, ia memberikan tinjauan singkat mengenai bagaimana transaksi ini disusun dan bagaimana keuntungan privasi yang masif dapat dicapai tanpa mengubah protokol.
Intinya, CoinJoin melibatkan kombinasi input oleh banyak pengguna ke dalam satu transaksi. Sebelum kita membahas bagaimana (dan mengapa), mari kita melihat struktur transaksi dasar lebih dulu.

Transaksi Bitcoin terdiri dari input dan output. Ketika pengguna ingin melakukan transaksi, mereka mengambil UTXO sebagai input, menentukan output, dan menandatangani input. Penting untuk dicatat bahwa setiap input ditandatangani secara independen, dan pengguna dapat mengatur beberapa output (berpindah ke alamat yang berbeda).



Jika kita melihat contoh transaksi yang terdiri dari empat input (masing-masing 0,2 BTC) dan dua output (0,7 BTC dan 0,09 BTC), ada beberapa asumsi berbeda yang dapat dibuat. Yang pertama adalah kita menyaksikan terjadinya pembayaran – pengirim mengirim salah satu output ke seseorang, dan mengembalikan beberapa ke diri mereka sendiri. Karena telah menggunakan empat input, output yang lebih besar mungkin untuk penerima. Perhatikan bahwa kita kehilangan 0,01 BTC dari output, ini merupakan biaya yang diberikan kepada penambang.

Mungkin juga pengirim ingin membuat UTXO yang lebih besar, sehingga mereka mengkonsolidasikan input yang lebih kecil untuk mendapatkan outcome 0,7 BTC yang diinginkan.

Asumsi lain yang dapat kita buat didasarkan pada kenyataan bahwa setiap input ditandatangani secara independen. Transaksi ini dapat memiliki hingga empat pihak yang berbeda yang menandatangani input. Di sinilah letak prinsip yang membuat proses CoinJoin efektif.


Bagaimana cara kerja CoinJoin?

Idenya adalah bahwa banyak pihak akan berkoordinasi untuk membuat transaksi, masing-masing memberikan input dan output yang diinginkan. Karena semua input digabungkan, maka tidak mungkin untuk mengetahui dengan pasti output mana milik pengguna yang mana. Perhatikan diagram di bawah ini:



Di sini, kita memiliki empat peserta yang ingin memutus hubungan antara transaksi. Mereka berkoordinasi satu sama lain (atau melalui koordinator khusus) untuk mengumumkan input dan output mana yang ingin mereka sertakan. 

Koordinator akan mengambil semua informasi, menyusunnya menjadi transaksi, dan meminta setiap peserta menandatangani sebelum melakukan broadcast ke jaringan. Setelah pengguna menandatangani, transaksi tidak dapat dimodifikasi - kalau ini dilakukan, akan menjadi tidak valid. Dengan begini, tidak ada risiko koordinator melarikan dana peserta. 

Transaksi berfungsi sebagai semacam kotak hitam untuk mencampur koin. Harap diingat bahwa kita secara efektif menghancurkan UTXO untuk membuat yang baru. Satu-satunya tautan antara UTXO lama dan baru yang kita miliki adalah transaksi itu sendiri, namun, tentu saja, kita tidak akan dapat membedakan antara peserta. Paling-paling, kita dapat mengatakan bahwa satu peserta memberikan salah satu input dan mungkin merupakan pemilik baru dari output yang dihasilkan.

Bahkan itu sama sekali tidak dapat dipastikan. Siapa yang benar-benar tahu, ketika melihat transaksi di atas, bahwa ada empat peserta? Apakah satu orang mengirim dana ke empat alamatnya sendiri? Dua orang melakukan dua pembelian terpisah dan mengembalikan masing-masing 0,2 BTC ke alamat mereka sendiri? Empat orang mengirim ke peserta baru, atau mengembalikan ke diri mereka sendiri? Kita tidak tahu pasti.


Privasi melalui penyangkalan

Fakta bahwa CoinJoin dapat diimplementasikan sudah cukup untuk mematahkan metode yang digunakan untuk menganalisis transaksi. Anda dapat menyimpulkan bahwa CoinJoin telah terjadi dalam banyak kasus, tetapi Anda tetap tidak tahu siapa yang memiliki output. Seiring semakin populernya metode ini, asumsi bahwa semua input dimiliki oleh satu pengguna pun semakin melemah – ini merupakan sebuah lompatan besar bagi privasi di ekosistem yang lebih luas.

Dalam contoh sebelumnya, kita mengatakan bahwa transaksi memiliki kumpulan anonimitas dari 4 pihak – pemilik output dapat merupakan salah satu dari empat peserta yang terlibat. Semakin besar anonimitas yang ditetapkan, semakin kecil kemungkinan transaksi dapat ditautkan ke pemilik aslinya. Untungnya, implementasi CoinJoin baru-baru ini sangat mudah bagi pengguna untuk menggabungkan input mereka dengan yang lain, ini memberikan tingkat penyangkalan yang tinggi. Bahkan baru-baru ini, satu transaksi 100 orang berhasil dilakukan.


Penutup

Alat untuk mencampur koin adalah tambahan penting bagi pengguna mana pun yang memandang serius masalah privasi. Tidak seperti peningkatan privasi yang diusulkan (contohnya Transaksi Konfidensial), metode ini kompatibel dengan protokol saat ini. 

Bagi mereka yang mempercayai integritas dan metodologi pihak ketiga, layanan mixing adalah solusi mudah. Bagi mereka yang lebih memilih alternatif non-kustodian yang dapat diverifikasi, CoinJoin lebih unggul. Ini dapat dilakukan oleh pengguna yang mahir secara teknis, atau dengan menggunakan perangkat lunak yang mengabstrakkan mekanisme yang lebih kompleks. Beberapa alat ini sudah tersedia dengan popularitas yang terus meningkat, karena pengguna berusaha untuk mendapatkan privasi yang lebih besar.