Monero RingCT Gizli İşlemler Nasıl Çalışır?
Monero RingCT Gizli İşlemler Nasıl Çalışır?
Herhangi bir Bitcoin blok gezginini açın; o güne kadar yapılmış her işlemin tam tutarını satoshi'sine kadar okuyabilirsiniz. Bir adres yazın; bakiyesini izleyebilir, paranın nereden geldiğini takip edebilir ve nereye gittiğini adım adım sürebilirsiniz. Bu şeffaflık tasarımın bir parçası; ama aynı zamanda bir maaş ödemesinin, bir bağışın ya da dikkatsizce yapılmış tek bir yatırımın koca bir cüzdanı deşifre edebilmesinin de sebebi. Monero tam tersi bir duruş benimser: kendi zincirinde tutarın kendisi gizlidir. Bunu mümkün kılan teknolojinin adı ise RingCT, yani Ring Confidential Transactions.
RingCT, bir Monero işleminin halka açık defterde okunabilir bir rakam yerine kriptografik bir taahhüt olarak görünmesinin sebebidir. Ocak 2017'de devreye girdi, aynı yılın ilerleyen aylarında tüm işlemler için zorunlu hâle geldi ve bir cüzdan üzerinden gönderdiğiniz ya da MoneroSwapper gibi hesap gerektirmeyen bir servisten edindiğiniz her XMR onunla korunur. Bu yazı RingCT'nin tam olarak ne yaptığını, ağın tutarları görmeden bir işlemi nasıl doğrulayabildiğini sağlayan matematiği, Bulletproofs ve Bulletproofs+ üzerinden nasıl evrildiğini ve FCMP++ ile bundan sonra nereye gittiğini tek tek açıyor.
Tutarı gizlemek neden önemli?
Bir blok zincirinde gizlilik tek bir özellik değildir; aynı anda çözülmesi gereken üç ayrı problemdir. Bunlardan herhangi birini açıkta bırakırsanız, diğer ikisi de o açıktan sızar. Monero üçüne birden saldırır ve üçüncüsünün sahibi RingCT'dir.
- Kim gönderdi: halka imzalarla (ring signatures) çözülür. Bir işlemi olası harcayanlardan oluşan bir grup adına imzalar, böylece bir gözlemci gerçek girdinin hangisi olduğunu ayırt edemez.
- Kim aldı: gizli adres (stealth address) teknolojisiyle çözülür. Her ödeme için tek kullanımlık benzersiz bir adres üretir, böylece para hiçbir zaman tekrar kullanılabilen herkese açık bir adrese düşmez.
- Ne kadar gönderildi: RingCT ile çözülür. Tutarı bir Pedersen taahhüdü içinde şifreler ama her düğümün hesapların denk geldiğini doğrulamasına yine de izin verir.
RingCT var olmadan önce Monero gönderici ile alıcıyı gizliyor ama tutarları açık metin olarak bırakıyordu. Tutar gizliliğine bir nebze ulaşmak için protokol işlemleri sabit kupürlere zorluyordu — 0,01, 0,1, 1, 10 gibi — tıpkı bir şeyin parasını üstü kalmadan tam bozuklukla ödemeniz gibi. Bu, beklenenden çok daha fazla bilgi sızdırıyordu. 7,3 XMR'lik bir çıktı için makul yem (decoy) kümesi, gizli bir çıktıya kıyasla çok daha küçüktür; çünkü yemlerin kupürle eşleşmesi gerekiyordu. Görünür tutarlar ayrıca analistlerin zincir boyunca eşit değerleri izleyerek işlemleri birbirine bağlamasına da olanak veriyordu.
Gizli tutarlar bu deliği kapatır. Değer bir kez şifrelendiğinde her çıktı yapısal olarak diğer her çıktıyla tıpatıp aynı görünür ki bu da değiştirilebilirliğin (fungibility) temelidir — yani bir birim XMR'nin, bir tüccarın ya da borsanın reddedebileceği "lekeli" bir geçmiş taşımadan, herhangi başka bir birimle yer değiştirebilmesi özelliğidir. Bu, her geçen yıl daha çok önem kazanıyor. 2024'ün başında Binance XMR'yi emir defterlerinden çıkardıktan ve ardından birkaç Avrupa borsası bunu izledikten sonra, tekil birimleri taranamayan ya da kara listeye alınamayan bir paranın lehindeki argüman yalnızca güçlendi. Türkiye'deki kullanıcılar da bu küresel listeden çıkarma dalgasını doğrudan hissetti; çünkü bir varlığın likiditesi ana borsalarda kuruyunca, regülasyondan bağımsız olarak erişim zorlaşıyor.
RingCT aslında nedir ve nasıl çalışır?
RingCT'nin "CT" yarısı — Confidential Transactions, yani gizli işlemler — tutarları saklayan kısımdır ve Pedersen taahhüdü adı verilen bir kriptografi parçasına dayanır. "Ring" yarısı ise bu tutar gizlemeyi Monero'nun mevcut halka imza şemasına bağlar, böylece gönderici de anonim kalır. İki fikri ayrı ayrı ele almakta fayda var.
Pedersen taahhütleri: üzerinde hâlâ matematik yapabildiğiniz şifreli bir sayı
Taahhüt (commitment), bir değeri ne olduğunu açık etmeden sonradan değiştiremeyecek şekilde kilitlemenin bir yoludur. Bir tutara dair Pedersen taahhüdü C = xG + aH şeklinde görünür; burada a gerçek tutar, x körleme çarpanı (blinding factor) denilen rastgele bir sır, G ile H ise bir eliptik eğri üzerindeki sabit noktalardır. Taahhüdü okunamaz kılan şey körleme çarpanıdır: o olmadan aynı değere sahip iki çıktı tamamen farklı görünen taahhütler üretir, dolayısıyla eşit olduklarını anlayamazsınız.
Asıl sihirli özellik, bu taahhütlerin toplanabilir, yani homomorfik olmasıdır. Bir işlemin tüm girdilerine ait taahhütleri toplayın, tüm çıktıların artı ücretin taahhütlerini toplayın; eğer gerçek tutarlar denkse iki toplam da aynı toplam değere ait taahhütler olur. Gönderici körleme çarpanlarını öyle ayarlar ki girdiler eksi çıktılar, sıfıra ait bir taahhüde eşit olur. Ağdaki her düğüm bu denklemi kontrol edebilir — hiç para yaratılmadığını ya da yok edilmediğini onaylayabilir — üstelik işlemdeki tek bir tutarı dahi asla öğrenmeden.
RingCT'nin bütün hüneri şudur: ağ, hesapların satoshi'sine kadar denk geldiğini ispatlayabilir, ama tek bir kalemi bile matematiksel olarak okuyamaz.
Range proof'lar: yoktan para basılmasını engellemek
Homomorfik denge tek bir tehlikeli açık taşır. Tutarlar gizli olduğu için kötü niyetli bir gönderici negatif bir tutara taahhüt etmeye çalışabilir; modüler aritmetik sayesinde bu, devasa bir pozitif sayıya dönüşerek yoktan XMR yaratmasına olanak tanır. Bunu önlemek için her gizli çıktı bir aralık ispatıyla (range proof) birlikte gelir: taahhüt edilen tutarın geçerli bir aralıkta — sıfır ile 2⁶⁴ arasında — yer aldığının kriptografik garantisidir; üstelik bu aralığın neresine düştüğünü açık etmeden.
RingCT'nin boyut ve maliyetinin çoğu işte bu range proof'larda yaşamıştır ve en büyük iyileştirmeler de burada olmuştur. 2017'deki ilk uygulama Borromean halka imzalarını kullanıyordu; doğruydular ama hantaldılar: tipik iki çıktılı bir işlem yaklaşık 13 KB range proof verisi taşıyordu ve bu da Monero işlemlerini iri, ücretleri ise görece yüksek kılıyordu. O makineyi değiştirmek, o günden beri protokolün ana optimizasyon hikâyesi oldu.
RingCT'nin evrimi: Bulletproofs, Bulletproofs+ ve CLSAG
RingCT sabit bir şey değil — Monero'nun kabaca altı ayda bir yaşanan sert çatallanmaları (hard fork) boyunca defalarca yeniden mühendislikten geçti, her seferinde aynı gizlilik garantilerini korurken daha küçük ve daha hızlı oldu. Öne çıkan yükseltmeler:
| Yükseltme | Etkinleşme | Neyi değiştirdi |
|---|---|---|
| RingCT (Borromean) | Oca 2017, zorunlu Eyl 2017 | Pedersen taahhütleri ve Borromean range proof'larıyla gizli tutarları getirdi. |
| Bulletproofs | Eki 2018 | Borromean ispatlarını değiştirdi; 2 çıktılı bir işlemin range proof'unu ~13 KB'tan ~2,5 KB'a indirdi, toplam işlem boyutunu ~%80, ücretleri ~%95'in üzerinde azalttı. |
| CLSAG | Eki 2020 | MLSAG halka imzalarını değiştirdi; ~%25 daha küçük imzalar ve gözle görülür şekilde daha hızlı doğrulama. |
| Bulletproofs+ | Ağu 2022 | Bulletproofs'u daha da küçültüp doğrulamayı hızlandıracak şekilde rafine etti; aynı çatallanma halka boyutunu 16'ya çıkardı ve view tag'leri ekledi. |
Ekim 2018 sert çatallanmasında devreye giren Bulletproofs dönüm noktasıydı. Logaritmik boyutlu bir range proof'a geçilmesiyle her işleme eklenen veri çöktü ve medyan ücretler dolarlar mertebesinden bir kuruşun kesirlerine düştü. Monero'nun bugün ucuza kullanılmasından en çok sorumlu olan tek değişiklik budur. Ağustos 2022'deki Bulletproofs+ bir miktar daha kazandırdı ve doğrulamayı hızlandırdı; ki bu önemlidir, çünkü her düğüm her ispatı kontrol etmek zorundadır.
Halka imza tarafı buna paralel evrildi. CLSAG (Concise Linkable Spontaneous Anonymous Group imzaları) Ekim 2020'de eski MLSAG yapısının yerini aldı ve göndericiyi gizleyen bileşeni yaklaşık dörtte bir oranında küçültüp doğrulamasını hızlandırdı. Bulletproofs+'ı getiren aynı Ağustos 2022 çatallanması, zorunlu halka boyutunu da 11'den 16'ya çıkardı — yani artık harcanan her çıktı 10 yerine 15 yem arasında gizleniyor — ve view tag'leri tanıttı; bu, cüzdanların gelen parayı tararken işin çoğunu atlamasına olanak veren küçük bir optimizasyondur.
Bir RingCT işlemi adım adım nasıl inşa edilir?
Cüzdanınız XMR gönderirken parçaların nasıl birleştiğini görmek faydalı. Bunların hiçbiri sizden bir eylem gerektirmez — cüzdan tüm bunları bir iki saniyede halleder — ama sırayı anlamak zincirde aslında ne olduğunun esrarını çözer.
- Gerçek girdiyi ve yemleri seçin. Cüzdan, gerçekten harcadığınız çıktıyı seçer ve yem olarak hizmet etmesi için zincirden 15 gerçek çıktı daha çeker; böylece 16 makul kaynaktan oluşan bir halka kurulur.
- Bir anahtar imgesi (key image) üretin. Gerçek çıktıdan benzersiz bir anahtar imgesi türetilir. Bu, ağın çifte harcamayı tespit etmesini sağlayan şeydir; yine de hangi halka üyesinden geldiğine geri bağlanamaz.
- Gizli çıktılar oluşturun. Her alıcı için cüzdan tek kullanımlık bir gizli adres hesaplar, böylece ödeme alıcının herkese açık adresine bağlanamaz.
- Tutarları taahhüt edin. Her çıktı tutarı rastgele bir körleme çarpanıyla bir Pedersen taahhüdüne sarılır ve körleme çarpanları, girdiler eksi çıktılar eksi ücret sıfıra taahhüt edecek şekilde dengelenir.
- Range proof'ları ekleyin. Her çıktı için, gizli tutarın negatif olmadığını ve aralıkta yer aldığını ispatlayan bir Bulletproofs+ range proof'u üretilir.
- CLSAG ile imzalayın ve yayımlayın. CLSAG halka imzası, harcamayı bütün halka adına yetkilendirir ve işlem aktarılır — herkese açık bekleme havuzuna (mempool) düşmeden önce kaynak IP'yi gizlemek için Dandelion++ üzerinden yayılır.
Blok zincirine düşen sonuç hiçbir okunabilir gönderici, hiçbir okunabilir alıcı ve hiçbir okunabilir tutar içermez — yalnızca taahhütler, ispatlar ve bir olasılıklar halkası — yine de her düğüm tarafından tam olarak doğrulanabilir.
Gizli işlemler pratikte sizin için ne anlama geliyor?
RingCT'nin pratik getirisi değiştirilebilirlik ve gözetime karşı dirençtir; bu da somut durumlarda kendini gösterir. Kriptoyla ödeme alan bir serbest çalışanı (freelancer) düşünün. Şeffaf bir zincirde her müşteri cüzdanın tüm bakiyesini ve o güne dek aldığı diğer her ödemeyi görebilir; ifşa olmuş tek bir adres her şeyi açığa çıkarır. Monero'da ise gelen ödeme, tutarı gizli bir gizli çıktıdır — müşteri, kendi gönderdiği işlemin ötesinde hiçbir şey öğrenmez.
Bu, "zincir analizinin" size karşı nasıl çalıştığını da değiştirir. Blok zinciri adli analizi satan firmalar işlerini adresleri kümelemek ve tutarları takip etmek üzerine kurdu. RingCT tutar sinyalini tamamen ortadan kaldırır, halka imzaları kaynağı bulanıklaştırır, gizli adresler de hedef bağlantısını koparır. Bakılacak bir bakiye ve izlenecek temiz bir para izi yoktur; gizlilik parası takibinin neden bir ürün özelliği değil de hâlâ çözülmemiş bir problem olarak kaldığının sebebi tam da budur.
Edinim biçiminin önem taşımasının sebebi de bu. XMR'yi, kimliğinizi belirli bir zincir üstü çıktıya bağlayan yoğun gözetim altındaki bir mecradan satın alırsanız, zincirin kendisi gizli olsa bile bilinen bir başlangıç noktası yaratmış olursunuz. Hesap tutmayan ya da kimlik belgesi talep etmeyen MoneroSwapper gibi bir takas servisi kullanmak o ilk adımı temiz tutar; böylece RingCT'nin zincir üstünde sağladığı gizlilik, zincir dışı bir kâğıt iziyle çürütülmez. Bunların hiçbiri vergi tavsiyesi değildir — Türkiye'de Gelir İdaresi Başkanlığı (GİB) kripto varlıkları gelişen bir çerçeve içinde değerlendiriyor ve elden çıkarmalar düzenlemenin olgunlaşmasıyla vergilendirilebilir hâle gelebilir — ama ağın kendisinin, bir blok gezgini olan herkese mali durumunuzu yayınlamadığı anlamına gelir.
RingCT bundan sonra nereye gidiyor: FCMP++
RingCT'nin tutar gizlemesi kaya gibi sağlamdır, ama gönderici anonimliğinin teorik bir tavanı vardır: 16'lık bir halka, gerçek harcamanın 16 adaydan biri olması demektir ve istatistiksel analiz arada bir bu olasılıkları kemirebilir. Monero'nun yanıtı, 2025 ve 2026 boyunca aktif geliştirme altında olan FCMP++ — tam zincir üyelik ispatları (full-chain membership proofs). Bir harcamayı 15 yem arasında gizlemek yerine FCMP++, onu zincirde o güne dek var olmuş her uygun çıktı arasında gizler ve anonimlik kümesini 16'dan on milyonlara genişletir.
Önemli bir nokta: FCMP++ halka imza bileşenini değiştirir, gizli işlem bileşenini değil. Tutarları gizleyen Pedersen taahhütleri ve Bulletproofs+ range proof'ları yerinde kalır; değişen şey, harcanabilir kümeye üyeliğin nasıl ispatlandığıdır. Daha ileride, Seraphis işlem protokolü ve Jamtis adresleme şeması bu temelin üzerine inşa edilecek şekilde tasarlanıyor. Kullanıcı için çıkarılacak ders basit: RingCT üzerinden tutar gizliliği Monero'nun yerleşmiş, olgun bir parçasıdır ve protokol etrafındaki parçaları güçlendirmeye devam ediyor.
Sıkça Sorulan Sorular
RingCT aslında neyi gizler?
RingCT bir Monero işleminin tutarını gizler. Her değeri bir Pedersen taahhüdü içinde şifreler, böylece rakam blok zincirine asla açık metin olarak yazılmaz; yine de her düğümün girdilerin, çıktılar artı ücrete eşit olduğunu doğrulamasına izin verir. Gönderici ve alıcı, RingCT'nin yanında çalıştığı ayrı mekanizmalarla — halka imzaları ve gizli adreslerle — gizlenir.
Tutarlar gizliyse ağ sahte para üretilmesini nasıl engelliyor?
İki koruma var. Pedersen taahhütlerinin homomorfik özelliği, düğümlerin gizli girdilerle çıktıların sıfıra denk geldiğini onaylamasını sağlar, böylece hiçbir değer yaratılmaz ya da yok edilmez. Her çıktıya eklenen bir range proof ise taahhüt edilen tutarın negatif olmadığını ve geçerli bir aralıkta yer aldığını garanti eder; bu da gizli negatif tutarların yol açacağı taşma (overflow) hilesini engeller.
RingCT ile halka imzaları arasındaki fark nedir?
Farklı problemleri çözerler ve isimler örtüştüğü için sık sık karıştırılırlar. Halka imzaları, olası harcayanlardan oluşan bir grup adına imzalayarak bir işlemi kimin gönderdiğini gizler. RingCT ise gizli taahhütler kullanarak ne kadar gönderildiğini gizler. RingCT ikisini birleştirir, böylece her iki koruma da aynı işleme uygulanır.
Bulletproofs, RingCT'nin yerini mi aldı?
Hayır. Bulletproofs ve Bulletproofs+, RingCT'nin içindeki yükseltmelerdir — özellikle range proof bileşenine yöneliktir. Eski, daha hantal Borromean range proof'larının yerini aldılar; işlem boyutunu kabaca %80, ücretleri ise %90'ın çok üzerinde kestiler, ama genel RingCT çerçevesi ve gizli tutarları aynı kaldı.
FCMP++ devreye girince RingCT kaldırılıyor mu?
Hayır. FCMP++, Monero'nun halka imzalarının yerine tam zincir üyelik ispatlarını koyarak gönderici anonimlik kümesini büyük ölçüde genişletecek. Gizli tutar makinesi — Pedersen taahhütleri ve Bulletproofs+ range proof'ları — yerinde kalacak. Yani FCMP++, RingCT'nin sağladığı tutar gizliliğini bozmadan gönderici gizliliğini güçlendiriyor.
Sonuç
RingCT, Monero gizliliğinin sessiz beygiridir: zincirdeki her tutarı, ağın doğrulayabildiği ama kimsenin okuyamadığı bir taahhüde dönüştürür ve bunu yaparken range proof'lar arzı dürüst tutar. Göndericiyi gizleyen halka imzaları ve alıcıyı gizleyen gizli adreslerle birleştiğinde, bir Monero çıktısının diğer her çıktıyla aynı görünmesinin ve değerine göre taranamaması, kara listeye alınamaması ya da izlenememesinin sebebi odur. Bulletproofs, Bulletproofs+ ve CLSAG sayesinde yalnızca daha ucuz ve daha hızlı oldu; FCMP++ ufukta belirirken etrafındaki gizlilik de derinleşmeye devam ediyor. Bu korumayı edindiğiniz andan itibaren taşıyan paralar istiyorsanız, MoneroSwapper üzerinden anonim olarak Monero satın alabilir ve işlem yaptığınız anda gerisini RingCT'ye bırakabilirsiniz.
🌍 Şu dilde oku