CoinJoin menggabungkan dana beberapa orang dalam satu transaksi Bitcoin. Setiap orang tetap menguasai kuncinya dan memeriksa apa yang ditandatangani. Transaksi menghasilkan output baru bagi peserta atau penerima yang mereka tentukan. Pengamat mungkin lebih sulit menghubungkan setiap output dengan pemilik dana semula. Hasilnya bergantung pada struktur transaksi, protokol, dan informasi lain yang dimiliki pengamat.
Anna membayar sebuah layanan dan tidak ingin penerimanya mudah melacak dana Anna yang lain. Namun, Bitcoin tidak memiliki rekening koran yang bersifat pribadi: riwayat transaksinya terbuka. Transaksi membelanjakan output lama yang belum terpakai, disebut UTXO, lalu membuat output baru. Output mencatat jumlah dana dan syarat untuk membelanjakannya. Ketika pembayaran biasa menggunakan beberapa output, analis sering menganggap semuanya dikuasai satu orang. Itu dugaan praktis atau heuristik, bukan bukti. CoinJoin mematahkan asumsi tersebut dengan menyatukan beberapa pemilik dalam satu transaksi. Riwayatnya tidak ditulis ulang; yang berubah adalah tingkat kepastian saat menyimpulkan hubungan dari catatan publik. [1]
Dalam contoh sederhana, Anna dan Pavel masing-masing memiliki output senilai 100 500 sat. Sat adalah singkatan dari satoshi, unit terkecil bitcoin. Mereka menyusun transaksi yang memberikan output baru sebesar 100 000 sat kepada masing-masing orang. Sisa total 1 000 sat menjadi biaya jaringan yang mereka tanggung bersama. Contoh ini tidak memasukkan biaya layanan tambahan. Koordinator atau dompet yang saling berkomunikasi menyiapkan rancangan. Tanda tangan digital adalah persetujuan yang dapat diverifikasi, dibuat dengan kunci privat, yaitu data rahasia yang memungkinkan pemiliknya menandatangani. Kunci itu sendiri tidak diungkapkan. Sebelum menandatangani inputnya, setiap orang memeriksa alamat output sendiri, jumlah, biaya, dan seluruh persyaratan. Koordinator sendiri tidak memegang kunci orang lain maupun izin membelanjakan dana mereka. Jika tanda tangan yang diperlukan tidak datang, transaksi ini tidak dapat diselesaikan secara sah. Perlindungan itu bergantung pada perangkat lunak yang benar dan pemeriksaan rancangan: menandatangani pengiriman ke alamat penipu akan menggagalkannya. [1] [5]
Dalam contoh tadi, orang yang hanya melihat blockchain menemukan dua output baru dengan nilai sama. Jumlahnya saja tidak menunjukkan mana milik Anna dan mana milik Pavel. Namun, itu tidak otomatis berarti peluang setengah-setengah atau anonimitas terjamin. Pengamat mungkin sudah mengenali satu alamat atau mempunyai petunjuk lain. Dalam transaksi nyata, kembalian yang mudah dikenali, jumlah berbeda, jenis output, dan waktu dapat membantu mengungkap hubungan. Kelompok anonimitas berarti kandidat yang tidak dapat dibedakan oleh pengamat, bukan sekadar jumlah orang yang mendaftar dalam putaran. Skor dompet juga merupakan perkiraan berdasarkan model tertentu, bukan janji tentang apa yang diketahui setiap pengamat mengenai Anda. [1] [4]
Kemampuan mencuri uang berbeda dari kemampuan memperoleh informasi. Koordinator sederhana mungkin mengetahui hubungan input dan output; protokol lain menyembunyikannya dengan teknik kriptografi. Informasi jaringan seperti alamat IP dan waktu koneksi juga penting. Masalah lain adalah Sybil Attack: satu penyerang berpura-pura menjadi banyak peserta, mengenali outputnya sendiri, lalu mempersempit kemungkinan kepemilikan output yang tersisa. Peserta juga bisa menolak menandatangani dan menggagalkan seluruh putaran. Karena itu, aturan partisipasi serta perlindungan terhadap banjir permintaan atau sabotase, yang dikenal sebagai DoS, perlu diperhatikan. Banyaknya input saja tidak menjawab pertanyaan-pertanyaan tersebut. [1] [4]
Kemudian Anna membelanjakan output barunya bersama dana yang ditarik dari bursa yang mengetahui identitasnya. Tindakan ini dapat memberi pengamat hubungan baru di tempat yang ingin Anna buat lebih sulit dilacak. Menggunakan alamat berulang kali atau menyatukan beberapa output menjadi satu, yakni konsolidasi, bisa berdampak serupa. Coin Control memungkinkan pemilihan UTXO yang dibelanjakan dompet sehingga dana dari konteks berbeda dapat dipisahkan. Itu bukan tombol untuk mendapatkan privasi mutlak. Penerima mungkin mengenal pembayar, dan layanan dapat menyimpan catatannya sendiri. Jadi, privasi tetap perlu diperhatikan setelah putaran berhasil, bukan hanya dilihat dari bentuk satu transaksi. [5]
Tentukan dulu informasi apa yang ingin dilindungi dan dari siapa. Penerima yang penasaran, koordinator, dan pengamat jaringan mempunyai kemampuan berbeda. Lalu periksa siapa yang memegang kunci, apa yang ditandatangani aplikasi, biaya yang dibebankan, dan cara mengelola output hasilnya. Layanan yang meminta Anda menyerahkan dana untuk disimpan memerlukan kepercayaan berbeda dari CoinJoin tanpa penyerahan kendali kunci. CoinJoin tidak menambahkan aturan khusus pada Bitcoin: node memeriksa transaksi biasa beserta persyaratannya. Node adalah komputer yang menjalankan perangkat lunak untuk memeriksa transaksi dan blok Bitcoin. CoinJoin tidak menghapus catatan bursa atau penerima, dan tidak menjanjikan perlakuan suatu layanan terhadap pembayaran. Bagi pemula, memahami batasan ini lebih berguna daripada label ‘anonim’ di aplikasi. [1] [5]
Gregory Maxwell menjelaskan CoinJoin kepada publik pada Agustus 2013. Gagasan itu tidak memerlukan perubahan aturan jaringan, tetapi orang-orang tetap membutuhkan cara untuk saling menemukan dan bekerja sama. JoinMarket memperlihatkan pendekatan pasar: penyelenggara transaksi bersama membayar orang lain agar menyediakan dana untuk berpartisipasi. Protokol dengan koordinator mengaturnya secara berbeda. Misalnya, WabiSabi mendukung jumlah bervariasi dan kredensial anonim yang memungkinkan peserta membuktikan hak atas output tanpa langsung membuka kaitannya dengan input. Karena itu, CoinJoin tidak boleh disamakan dengan satu aplikasi, dan tidak semua variannya hanya menggunakan output dengan nilai sama. [1] [2] [4]
Tulisan Maxwell menjelaskan gagasan dasar, dokumentasi dompet tertentu menerangkan alur penggunaannya, dan makalah WabiSabi membahas sifat protokol. Ketiganya merupakan lapisan informasi yang berbeda. Saat penyuntingan ini dilakukan, repositori asli klien dan server JoinMarket sudah diarsipkan. Di sini repositori tersebut menjadi bahan sejarah dan teknis, bukan rekomendasi untuk memasangnya. PayJoin menurut BIP 78 adalah kerja sama terkait antara pembayar dan penerima, dengan keduanya menyumbangkan input. Biasanya tujuannya bukan membentuk kelompok besar output bernilai sama. Saat membandingkan cara-cara tersebut, tanyakan siapa yang bekerja sama, apa yang bisa mereka ketahui, dan apa yang sebenarnya diperiksa oleh pengguna dan dompetnya sebelum menandatangani, bukan hanya mengandalkan kata ‘privasi’. [1] [2] [3] [4] [5] [6]
Transaksi bersama tidak berarti semua dana milik satu orang
Alice dan Bob masing-masing mengendalikan input berbeda dalam transaksi bersama dan menerima output sendiri. Anggapan bahwa semua input milik satu orang salah dalam contoh ini. Penggabungan saja tidak menjamin pemilik output tersembunyi; jumlah, informasi lain dan pengeluaran berikutnya dapat mengungkap hubungan.
Untuk gambaran yang lebih utuh, baca entri ini bersama Bitcoin, Privasi Bitcoin, Pseudonimitas, Dompet, UTXO, Transaksi. Entri ini juga dirujuk dari Change Address, Privasi Bitcoin, Pseudonimitas, KYC.
01Bisakah koordinator CoinJoin mencuri dana dari input?+
Dalam CoinJoin nonkustodian yang dirancang dengan benar, kunci tetap dipegang peserta. Sebelum menandatangani, mereka memeriksa seluruh transaksi, terutama output sendiri, jumlah dan biaya. Koordinator tidak bisa membuat pengeluaran valid tanpa tanda tangan yang diperlukan, tetapi dapat mengganggu putaran atau menolak partisipasi. Namun, jika peserta menandatangani transaksi yang mengirim uangnya kepada penipu, ia sendiri menyetujui pembayaran itu.
02Apakah output tetap anonim selamanya setelah CoinJoin?+
Tidak. Riwayat tetap publik. Penggunaan ulang alamat, konsolidasi, pembayaran ke pihak yang dikenal, perilaku dompet yang dapat dikenali dan metadata jaringan dapat mengurangi atau menghilangkan ketidakjelasan kepemilikan. Hasilnya bergantung pada protokol dan penanganan output setelahnya.