Coin Karıştırma ve CoinJoin Nedir?
Ana sayfa
Makaleler
Coin Karıştırma ve CoinJoin Nedir?

Coin Karıştırma ve CoinJoin Nedir?

İleri Seviye
Yayınlanma: Mar 25, 2020Güncellenme: Dec 28, 2022
6m

İçerik


Giriş

Bitcoin'den sıklıkla dijital para olarak bahsedilir fakat bu tartışmaya açık bir kıyaslamadır. Eğer Alice Bob'a 10 dolarlık nakit bir ödeme yaparsa Bob paranın nereden geldiğini bilemez. Bob bu parayı daha sonra Carol'a verirse, Carol da paranın ilk olarak Alice'te olduğu çıkarımını yapamaz.
Bitcoin herkese açık yapısı gereği farklıdır. Belirli bir coinin geçmişi (yani harcanmamış işlem çıktısı ya da UTXO) herhangi biri tarafından kolayca incelenebilir. Süreç daha çok, bir bitcoinin kullanıldığı her sefer işlem tutarının ve alıcı isimlerinin bir faturaya yazılmasına benzerdir. 
Bununla birlikte, açık adreslerde isim olmaması kullanıcı kimliklerinin kolayca açığa çıkmasını engeller. Yine de Bitcoin tamamen gizli değildir. Blockchain analizleri gitgide daha sofistike hale gelmekte ve adreslerle kimlikleri daha da başarılı şekilde birbirine bağlamaktadır. İzleme tekniklerinin yanı sıra özellikle bu amaca yönelik çalışan bir birim de kripto para kullanıcılarının kimliklerini açığa çıkarabilir. Bunu engellemek için işlem bağlantılarını kesen teknikler yıllar içinde ortaya çıkmıştır.


Coin karıştırma nedir?

Genel anlamda coin karıştırma, fonları başka fonlarla değiştirerek gizlemeye yönelik işlemleri temsil eder. Fakat kripto para dünyasında coin karıştırma genellikle üçüncü partiler tarafından sunulan hizmetlerden bahsedilirken kullanılır. Hizmet sunucular kullanıcıların coinlerini (ve düşük bir işlem ücreti) alır ve gönderilenlerle hiçbir bağlantısı olmayan başka coinleri kullanıcıya iade eder. Bu hizmetler tumbler'lar ya da karıştırıcılar olarak da bilinir.

Tabi ki böylesi merkezi hizmetlerin güvenliği ve gizliliğine dair bazı soru işaretleri vardır. Karıştırıcıların kullanıcıların parasını iade edeceği ya da iade edilen coinlerin herhangi bir şekilde sıkıntılı işlem geçmişine sahip olmadığı garanti değildir. Karıştırıcı kullanırken dikkate alınması gereken bir diğer nokta da IP'lerin ve Bitcoin adreslerinin üçüncü parti tarafından kaydedilebilecek olmasıdır. En nihayetinde kullanıcılar bağlantısı kesilmiş coinler alacakları umuduyla fonlarını başkasına emanet etmiş olur.

Daha ilginç bir yaklaşım ise önemli ölçüde makul reddedilebilirlik yaratan CoinJoin (coin birleştirme) işlemleridir. Yani bir CoinJoin işlemi yapıldıktan sonra kullanıcı ile bu kullanıcının önceki işlemleri arasında kati şekilde bağlantı kurulmasını sağlayan bir kanıt ortaya sürülemez. Birçok CoinJoin çözümü karıştırıcılara kıyasla daha merkeziyetsiz bir alternatif sunar. Sürece bir koordinatör dahil olabilse de kullanıcıların fonlarının vesayetinden feragat etmesi gerekmez.


CoinJoin nedir?

CoinJoin işlemleri ilk olarak Bitcoin geliştiricisi Gregory Maxwell tarafından 2013 yılında ortaya atılmıştır. Yayınladığı yazıda bu işlemlerin nasıl yapılandırıldığından ve protokolde bir değişiklik yapılmadan gizliliğe yönelik büyük çaplı bir artıştan nasıl faydalanılabileceğinden kısaca bahsetmiştir.
En özünde CoinJoin, farklı kullanıcılardan gelen girdilerin bir kombinasyonunu tek bir işleme dahil etmektir. Nasıl (ve neden) yapıldığını açıklamadan önce temel işlem yapısından bahsedelim.

Bitcoin işlemleri girdilerden ve çıktılardan oluşur. Kullanıcı bir işlem yapmak istediğinde, girdiler olarak UTXO'larını kullanır, çıktıları belirler ve girdileri imzalar. Her bir girdinin birbirinden bağımsız olarak imzalandığını ve kullanıcıların çoklu çıktılar (farklı adreslere giden) yaratabileceğini belirtmek önemlidir.



Dört girdiden (her biri 0,2 BTC'lik) ve iki çıktıdan (0,7 BTC ve 0,09 BTC) oluşan bir işlemi incelediğimizde bazı varsayımlarda bulunabiliriz. Birincisi, bir ödemenin yapıldığıdır – gönderici çıktılardan birini bir kişiye ve para üstünü de kendisine göndermektedir. Dört girdi kullandığına göre en yüksek tutarlı çıktı muhtemelen alıcıya gitmektedir. Çıktıdaki 0,01 BTC'lik eksik ise madenciye ödenen işlem ücretidir.

Göndericinin daha küçük UTXO'lardan büyük bir UTXO oluşturmak istemesi de olasıdır, bu nedenle daha küçük girdileri istenen 0,7 BTC rakamına ulaşacak şekilde bir araya getirmektedir.

Yapabileceğimiz bir diğer varsayım ise her bir girdinin bağımsız olarak imzalandığı gerçeğine dayanır. İşlem, girdilerin dört farklı parti tarafından imzalandığı şekilde de gerçekleştirilmiş olabilir. İşte bunun altında da CoinJoin işlemini etkili hale getiren prensip yatar.


CoinJoin nasıl çalışır?

Ana fikir, birden fazla partinin girdileri ve talep edilen çıktıları ortaya koyarak bir işlem oluşturmak için koordine olmasıdır. Tüm girdiler birleştirildiğinde hangi çıktının hangi kullanıcıya ait olduğunu kati bir şekilde söylemek mümkün olmaz. Aşağıdaki şemadan işlemi görebilirsiniz:



Burada işlemler arasındaki bağlantıyı kırmak isteyen dört kullanıcı yer almaktadır. Dahil etmek istedikleri girdileri ve çıktıları bildirmek için kendi aralarında (ya da bir koordinatör aracılığıyla) koordine olurlar. 

Koordinatör tüm bilgileri alır, bunlarla bir işlem yaratır ve işlemi ağa yayınlamadan önce her bir katılımcıya imzalatır. Kullanıcıların imzalamasının ardından, işlemi geçersiz hale getirmeden bu işlem üzerinde değişiklik yapılması imkansız hale gelir. Dolayısıyla, koordinatörün fonları çalması riski ortadan kalkar.

İşlem, coinleri karıştırmak için bir kara kutu gibi hizmet eder. Yenilerini oluşturmak için eski UTXO'ların yok edilmesi gerekir. Eski ve yeni UTXO'ların arasındaki tek bağlantı ise işlemin kendisidir fakat bu noktada katılımcıları birbirinden ayırmak mümkün olmaz. En iyi ihtimalle girdilerden birinin bir katılımcı tarafından eklendiği ve bu katılımcının ortaya çıkan çıktının yeni sahibi olabileceği söylenebilir.

Fakat bu bile tam olarak garanti değildir. Yukarıdaki işleme bakarak dört katılımcı olduğu sonucuna varılabilir mi? Bir kişi fonları kendine ait dört farklı adrese mi gönderiyor? İki kişi farklı iki satın alma işlemi yapıyor ve 0,2 BTC'yi kendi adreslerine geri mi gönderiyor? Dört kişi yeni kişilere mi yoksa kendilerine mi fon gönderiyor? Bu soruların yanıtlarını kesin olarak vermemiz mümkün değildir.


Reddedilebilirlik yoluyla gizlilik

CoinJoin uygulamalarının var olması gerçeği bile işlemleri analiz etmek için kullanılan yöntemlere dair şüphe duymamız için yeterlidir. CoinJoin'in birçok işlemde kullanıldığı sonucunu çıkarabilirsiniz fakat yine de çıktıların sahibinin kim olduğunu bilmeniz mümkün olmaz. Bu uygulamaların popülerliği arttıkça tüm girdilerin aynı kullanıcıya ait olduğu varsayımı zayıflamış ve bu da geniş çapta ekosistem dahilinde gizliliğe yönelik büyük bir adım atılmasını sağlamıştır.

Bir önceki örnekte, işlem 4 kişilik bir anonimlik setine sahiptir yani çıktının sahibi işleme dahil olan dört kullanıcıdan biri olabilir. Anonimlik seti ne kadar büyük olursa işlemin ve asıl sahibinin bağlantılandırılması da o kadar zor olur. Neyse ki, en yeni CoinJoin uygulamaları sayesinde kullanıcılar güvene gerek olmadan girdilerini onlarca başka kullanıcıyla birleştirerek yüksek seviye reddedilebilirliğe sahip olmaktadır. Yakın bir geçmişte 100 kişilik bir işlem başarıyla gerçekleştirilmiştir.


Son fikirler

Coinleri karıştırmak için araçlar gizlilik konusuna önem veren tüm kullanıcıların faydalanabileceği önemli araçlardır. Ortaya atılan diğer gizlilik güncellemelerinin (örneğin Gizli İşlemler) aksine bu araçlardan protokolün mevcut hali korunarak faydalanmak mümkündür.  

Üçüncü partilerin dürüstlüğüne ve yöntemlerine inanan kullanıcılar için karıştırma hizmetleri kolay bir çözüm sunar. Doğrulanabilir ve emanete dayalı olmayan alternatifleri tercih edenler için de CoinJoin alternatifleri daha üstündür. Bu işlemler teknik konularda bilgili kullanıcılar tarafından manuel olarak ya da kompleks mekanizmalarla uğraşma ihtiyacını ortadan kaldıran yazılım araçlarıyla yapılabilir. Bu tip araçlardan halihazırda birkaç tane mevcuttur ve kullanıcılar daha fazla gizlilik istedikçe araçların popülerliği de gitgide artmaktadır.