Pekala, açık söyleyeceğim: Yanılmışım. Ya da en azından, yakın zamana kadar yanılmıştım.
Bu blogu bir süredir okuyorsanız, muhtemelen Liquid ağındaki varlıklar hakkındaki hevesli yazılarımı hatırlarsınız. L-BTC, Liquid üzerindeki USDT — bunları birden fazla kez övdüm. Orada işlemlerin gizli olduğunu, bunun sizi sürekli izleyen AML analistlerinden ve geçmişte bir noktada “kötü arkadaşlık” yaptığı için CEX’lerin satoshilerinizi dondurmasından koruduğunu yazmıştım.
Buna içtenlikle inanıyordum.
Çoğu cüzdandan Liquid işlemi gönderdiğinizde genellikle blok gezginine iki bağlantı alırsınız: biri gizli işlemi gösteren, diğeri ise “açığa çıkarılmış” versiyonu gösteren. İkinci bağlantı yalnızca göndericiye açıktır; ilk bağlantı ise blok gezginini gezen herkes tarafından görülebilir. Ve nedense, “gizli”nin gerçekte ne anlama geldiğini sorgulamak aklıma hiç gelmemişti. Bu bağlantılardan tam olarak neyin görüldüğünü kontrol etmeyi hiç düşünmemiştim.
Ancak yakın zamanda rabbit.io üzerinde başka bir swap gerçekleştirdik ve bir miktar kriptoyu Liquid blok zincirindeki USDT’ye dönüştürdük. Kullanıcı işlemle ilgili ayrıntılar istedi. Blok gezginini açtım — ve işte o anda şok yaşadım.
Adresler arasındaki tüm etkileşim grafiği apaçık oradaydı. Kimin kime bir şey gönderdiği. Ne zaman. Ne sıklıkla. Adresler arasındaki ilişki yapısının tamamı eksiksiz şekilde açığa çıkmıştı. Ve bunların hiçbiri herhangi bir “gizlilik” tarafından saklanmamıştı.
İşte o zaman ciddi şekilde yanıldığımı fark ettim — ve dahası, istemeden sizi yanlış yönlendirdiğimi anladım. Özür dilerim.
Liquid sizi AML ile ilgili istismardan korumaz. Eğer bir AML izleme servisi size fon gönderen herhangi bir adresi “kirli” olarak etiketlemeye karar verirse, aynı gerekçelerle sizin adresinizi de kolaylıkla kirli olarak işaretleyebilir — herhangi başka şeffaf blok zincirinde yaptıkları gibi.
Ben bir tür gizliliği başka bir türle karıştırmıştım. Ve bu karışıklığın önemi büyük.
Liquid söz konusu olduğunda “confidential transaction” bir metafor değil — teknik olarak doğru bir terimdir. Ancak çok belirli bir şeyi ifade eder: miktar ve varlık türü gizlenir. Hepsi bu.
Bununla birlikte, bana yardımcı olan bir metafor şu oldu. Detaylara inmeye başlayınca Liquid’i bir masa üzerine serilmiş masa örtüsü gibi düşünmeye başladım. Masa örtüsü yemeği gizler — üzerinde ne olduğunu veya miktarını göremezsiniz — ama masanın kendisi ve tabakların üzerindeki hareketler blok gezginiyle bakan herkes için tamamen görünür halde kalır.
Dışarıdan bir gözlemci sizin yüz bitcoin mi yoksa elli sent değerinde USDT mi gönderdiğinizi söyleyemez. Ama A adresinin B adresine bir şey gönderdiğini ve B’nin daha sonra C’den bir şey aldığını açıkça görebilir.
İşte sorunumun başladığı yer burası.
rabbit.io üzerindeki swap’larla ilgisi olmayan kişisel Bitcoin ödemeleri için Lightning Network kullanıyorum. Sebep basit: alıcı coinlerin geçmişini görmüyor. Onların bunları “kirli” ilan edip hiçbir şey vermeden bitcoinlerimi bloke etmek için bir gerekçesi olmuyor.
Safça Liquid’in benzer bir koruma sunduğunu varsaydım — belki tam kendi kendine saklama konusunda bazı ödünlerle, ama ödeme kanallarını yönetmenin operasyonel karmaşıklığı olmadan.
Meğerse sunmuyor.
Liquid’in çok iyi yaptığı şey bambaşka bir problemi çözmek. Liquid’deki işlemlerin gizliliği ağ üzerinde işlem yapan token ihraççıları tarafından yapılan istismarlara karşı kullanıcıları korur.
Ethereum, Tron ve benzeri blok zincirlerde popüler tokenlerin arkasındaki akıllı sözleşmeler, ihraççının her cüzdan bakiyesini görebilecek ve gerekirse bir düğmeye basarak tokenlerinizi dondurabilecek şekilde tasarlanır.
Liquid’de ihraççılar teknik olarak bunu yapamaz — bu ilk nokta. Ve yapmak isteseler bile gereksiz olurdu: her adresin hangi miktarda ve hangi varlık türünde bakiye tuttuğu gizlidir. İhraççı basitçe kimin ne kadar token tuttuğunu bilmez.
Bu, hedefli sansüre karşı anlamlı bir savunmadır. Aynı zamanda dolandırıcılar ve hırsızlardan gelen istenmeyen ilginin önünde de makul bir kalkan sağlar — kimsenin adresinize ne kadar değer aktığını görememesi gibi.
Liquid, tasarlandığı problemi çözüyor. Sadece benim düşündüğüm problemi çözmüyordu. Ve bu, zinciri kötü yapmaz — onu uzmanlaştırır.
Devam etmeden önce bir şeyi netleştirelim. Bir işlemi “gizli” olarak adlandırdığımızda tam olarak neyi kastediyoruz?
Her işlemin birkaç bileşeni vardır ve bunların her biri ayrı ayrı gizlenebilir:
Farklı sistemler farklı parçaları gizli yapar. Ve bu katmanları ayırdığımızda, her teknolojinin gerçekte neyi koruduğunu — ve neyi korumadığını — anlamak çok daha kolay hale gelir.
Eğer Liquid “ne kadar” ve “ne”yi gizliyorsa, Lightning “nereden”i gizler.
Başka bir şehirdeki bir arkadaşınıza paket göndermek istediğinizi hayal edin. Paketi kendiniz teslim etmezsiniz. Paketi bir kurye alır, kurye uzun mesafe otobüs şoförüne verir, otobüs şoförü varış şehrindeki bir taksi şoförüne verir ve taksi şoförü nihayet paketi arkadaşınıza teslim eder.
Zincirin sonundaki bu taksi şoförü sadece otobüs şoforunun kendisine kutuyu verdiğini bilir. Orijinal göndericinin siz olduğunu bilmez.
Lightning’da buna soğan yönlendirmesi denir — Tor’da kullanılanla aynı kavram. Alıcı sadece rotanın son atlama noktasını görür. Coinlerinizin geçmişi ondan gizlidir. Bir AML analistinin analiz edecek hiçbir şeyi yoktur, çünkü herhangi bir işlem geçmişi zincirde kaydedilmez.
Bu, şahsen benim ihtiyaç duyduğum şeydi. Bu yüzden özel işlemlerim için Lightning kullanıyorum.
Bir nüans var: ödeme kanallarının açılması ve kapatılması Bitcoin blok zincirine kaydedilir. Ancak bunlar sadece ilk ve son işlemlerdir — arada geçen onlarca, yüzlerce ya da binlerce ödeme değil.
Kamuoyuna malolmuş kişiler büyük bir problemle karşılaşıyor. Bağışlar veya ödemeler için düzenli bir Bitcoin adresi yayınlarlarsa, herhangi biri blok gezginini açıp o adrese kaç kez fon gönderildiğini ve şu anda ne kadar bitcoin tuttuğunu görebilir. Bu, banka kartı numaranızın yabancılara hesap ekstresi erişimi vermesi gibi bir şeydir.
Silent Payments bunu zarifçe çözer.
Miktarlar hâlâ görünür — bu sıradan bir Bitcoin işlemidir. Ama bir adresi yayınlayan kamu kimliği ile gelen belirli ödemeler arasındaki bağlantı gizlenir.
Benzer bir gizlilik şeması yakın zamanda Stellar ağında önerildi.
Ark, Bitcoin üzerine inşa edilmiş ve aktif olarak geliştirilen nispeten yeni bir protokoldür. Kullanıcılardan kanalları yönetmelerini istemeden Lightning benzeri bir şey sunmayı amaçlar.
Bireysel ödeme kanalları yerine tüm katılımcılar koydukları coinleri paylaşılan bir havuza yatırır, aynı zamanda katkıda bulundukları miktar üzerinde kontrolü korurlar. Coinlerinizi kaba bir tabakaya atarsınız — binlerce diğerinin arasına çözünürler.
Birine ödeme yapmak istediğinizde operatöre havuz içindeki başka bir katılımcıya belirli bir miktarı yeniden atamasını söylersiniz. Alıcı havuzun bir parçası değilse, operatör fonları çekip belirtilen adrese gönderir. Operatör talebinizi reddedemez.
Sonuç olarak, başlangıçta yatırdığınız coinlerle arkadaşınızın sonunda aldığı coinler arasında görünür bir zincirleme iz yoktur. Bağlantı kopar.
İlk bakışta bir miksere benziyor, ama birincil amacı mevduat ve çekimler arasındaki bağları koparmak değildir. Temel özellik havuz içindeki dahili transferlerdir — operatöre karşı taleplerin yeniden atanması. Bunlar anlık ve ucuzdur, tıpkı CEX içi dahili transferler gibi.
Ana fark, bir CEX operatörünün aksine Ark operatörünün fonlarınızı donduramayacak olmasıdır.
Gizlilik açısından bu ayrıca CEX içi dahili transferlere benzer: operatör her şeyi görürken dış gözlemciler hiçbir şey göremez — hatta transferlerin gerçekleştiğini bile.
Bu çok yeni bir fikir ve hala araştırma aşamasında. Fakat oldukça basitçe açıklanabilir.
Alice’in ne kadar gönderdiği ve kime gönderdiğiyle ilgili tüm bilgiler doğrudan Alice’ten Bob’a iletilir. Alıcı transferin içeriğini dünyaya açıklamadan doğrular. Daha doğrusu, ağ işlemin geçerli olduğunu doğrularken, alıcı işlemin gerçekten ne içerdiğini doğrular.
Blok zinciri yalnızca çift harcamayı önlemek için gereken asgari kriptografik izi saklar. İşleme dahil olmadıysanız, o işlem hakkında hiçbir şey öğrenmezsiniz — sadece bazı UTXO’ların yok edildiğini anlarsınız.
Benzer bir model — blok zincirinin sadece işlem doğruluğunun zk-kanıtlarını sakladığı model — neredeyse on yıldır Zcash ağında başarılı şekilde çalışıyor.
Bitcoin’in dışına çıkalım. Burada geliştiriciler işlem grafiği sorununu çok daha radikal bir şekilde ele aldılar.
Geleneksel blok zincirlerinde adresleri, miktarları ve açık bir işlem yapısını görürsünüz: işte bir girdi, işte bir çıktı ve bunlar arasındaki bağlantı.
MimbleWimble’da — Grin ve Beam’de kullanıldığı gibi — hiç adres yoktur. Hatta görünür miktarlar bile yoktur. Sadece girdiler ve çıktılar ve bunların boyutları gizlidir.
Bir blok oluştuğunda, her girdinin ve çıktının belirli bir işlemle eşlendiği ayrı ayrı işlemler içermez. Bunun yerine blok şunları içerir:
Kime kim gönderdiğinin kaydı yoktur. Dahası, eğer bir işlemin çıktısı aynı bloğun içinde harcanırsa, o ara girdiler ve çıktılar blok zinciri geçmişinden tamamen kaybolur.
Dışarıdan bir gözlemci sadece bazı coinlerin yok edildiğini ve yenilerinin yaratıldığını görür.
Ancak işlemler bloklara alınmadan önce onları işleyen ağ düğümlerine karşı gizli değildir. Bir işlem ağ üzerinde yayılırken girdiler ile çıktılar arasındaki bağlantı görünür durumdadır. Eğer biri blok içine alma öncesi işlem yayılımını aktif şekilde izlerse, grafiğin parçalarını yeniden inşa edebilir.
Litecoin ağı MimbleWimble Extension Block (MWEB) adlı bir uzantı uyguladı. Bu, Grin veya Beam gibi ayrı bir MimbleWimble zinciri değil, ana blok zinciri içinde gömülü ek bir katmandır.
Coinler şunlar yapılabilir:
Bazı açılardan bu Bitcoin’deki Ark’a benzer — tek fark tek bir operatörün olmamasıdır. “Operatörler” ağ düğümleri ve elbette girdileri ve çıktıları bloklara dahil eden madencilerdir.
Kullanıcı kolaylığı için Litecoin’in MWEB uygulaması adres işlevselliği içerir. Adres gibi davranan tanıdık görünümlü stringler vardır ve blok zinciri bir işlemin “MWEB adresine” gönderildiğini anlar.
Ama bu adresler yalnızca kullanıcı arayüzü düzeyinde vardır. MWEB bloklarının içinde adres yoktur — yalnızca girdilerin ve çıktılarin toplu listeleri vardır.

Monero esasen böyle çalışır.
Bir işlem gönderdiğinizde, cüzdanınız coininizi blok zincirinden alınmış birkaç ilgisiz tarihi çıktı ile karıştırır ve bunları sahte katılımcılar olarak kullanır. Dışarıdan bir gözlemcinin bakış açısından işlem o grubun herhangi bir üyesi tarafından başlatılmış olabilir.
Aynı zamanda Monero, alıcıyı tek kullanımlık stealth adreslerle gizler: her ödeme için benzersiz bir adres üretilir (Silent Payments ile benzer ruh), ve bu adres alıcının genel adresine bağlanamaz. İşlem miktarları da gizlenir.
Bu, şu anda zincir üzerinde en agresif gizlilik biçimidir. Bu yüzden düzenleyiciler genellikle Monero’dan hoşlanmaz.
Ama “en agresif” otomatik olarak “en geleceğe dayanıklı” demek değildir. Blok zinciri kayıtları opak olsa bile hala varlar. Ve kimse bu kayıtların gelecekte ortaya çıkabilecek yeni analiz teknikleriyle daha fazla bilgi çıkarılamayacağı konusunda tam kesinlik sağlayamaz.
Bu potansiyel risk Monero’yu, işlem kayıtlarının hiç zincirde bulunmadığı Lightning Network gibi sistemlerden ayırır.
Aslında, Supertestnet olarak bilinen tanınmış bir Bitcoin meraklısı aylardır bir meydan okuma yürütüyor: Monero kullanıcılarından ona Lightning üzerinden ödeme göndermelerini istiyor ve karşılığında onlara eşdeğer bir Monero ödemesi gönderiyor. Sonra her bir göndericinin alıcı hakkında ne kadar bilgi öğrenebildiğini karşılaştırmaya davet ediyor. İlginçtir ki bazen Monero blok zincirinde kaydedilen sınırlı verilerden hassas bazı bilgiler çıkarabiliyor.
Her şeyi basit bir resme koyalım.
Hedefli ihraççı sansüründen veya finansal gözetimden korunmak mı istiyorsunuz? O zaman Liquid sizin aracınız. Bu işi çok iyi yapar. Tether Liquid üzerinde USDT bakiyenizi göremez ve donduramaz, dolandırıcılar hangi adreslerin oltalama saldırısına değer olduğunu söyleyemez.
Coinlerinizin kaynağını gizlemek ve AML istismarından korunmak mı istiyorsunuz? Lightning Network’ü seçin. Alıcı fonların nereden geldiğini göremez.
Tek ihtiyacınız gelen işlemlerin kamu kimliğinizle ilişkilendirilmesini engellemekse? Bitcoin’de Silent Payments veya Stellar’daki benzer bir çözümü kullanın.
Hiç kimsenin işlem grafiğini görmesini istemiyor musunuz? MimbleWimble (Grin, Beam, Litecoin), Ark veya Zcash’e bakın.
Bugün her şeyi — göndereni, alıcıyı, miktarı ve grafiği — gizlemek istiyor musunuz, gelecekteki analizlerin bunlardan bir kısmını çözebileceği küçük bir risk olsa bile? O zaman Monero sizin tercihiniz.
Bir sonraki ne olacak diye bekliyor musunuz? Shielded CSV’yi takip edin.
Her teknoloji belirli bir tehdit modelini ele almak için tasarlandı. Bir çakıyı vidaları çevirmede kötü olduğu için eleştirmenin anlamı yoktur. Liquid yapması için inşa edildiği şeyi tam olarak yapar. Sadece benim düşündüğüm problemi çözmüyordu — ve bunu size önermeden önce anlamaya zaman ayırmadım.
Şimdi anladım. Ve umarım size de yardımcı olmuştur.