कॉइन मिक्सिंग और CoinJoin क्या है?

· 5 min read

बिटकॉइन को अक्सर डिजिटल नकदी कहा जाता है, लेकिन यह तुलना विवादास्पद है। अगर ऐलिस बॉब को 10 डॉलर नकद देती है, तो बॉब को पता नहीं चलेगा कि यह पैसा कहाँ से आया। और अगर बॉब बाद में वही नोट कैरल को दे दे, तो कैरल यह अंदाज़ा नहीं लगा सकती कि पहले वह पैसा ऐलिस के पास था।

बिटकॉइन के साथ मामला इसके खुले स्वरूप की वजह से अलग है। किसी भी कॉइन का इतिहास (यानी अनखर्च लेन-देन आउटपुट या UTXO) कोई भी आसानी से जाँच सकता है। यह ऐसा है मानो हर बार बिटकॉइन इस्तेमाल होने पर लेन-देन की रकम और पाने वाले का नाम एक इनवॉइस पर लिख दिया जाता हो।

हालाँकि सार्वजनिक पतों पर नाम न होने की वजह से उपयोगकर्ताओं की पहचान इतनी आसानी से उजागर नहीं होती। फिर भी बिटकॉइन पूरी तरह निजी नहीं है। ब्लॉकचेन एनालिटिक्स दिन-ब-दिन परिष्कृत होती जा रही है और पतों को पहचान से जोड़ने में लगातार ज़्यादा कामयाब हो रही है। ऐसी निगरानी तकनीकों के अलावा, खास इसी काम के लिए बनी कोई इकाई भी क्रिप्टो उपयोगकर्ताओं की पहचान उजागर कर सकती है। इसे रोकने के लिए बीते वर्षों में लेन-देन के बीच की कड़ी तोड़ने वाली तकनीकें सामने आई हैं।

कॉइन मिक्सिंग क्या है?

आम तौर पर कॉइन मिक्सिंग से मतलब ऐसे लेन-देन से है जिनका मकसद किसी रकम को दूसरी रकम से बदलकर छिपाना होता है। लेकिन क्रिप्टो की दुनिया में यह शब्द ज़्यादातर तीसरे पक्ष की सेवाओं के लिए इस्तेमाल होता है। सेवा देने वाला उपयोगकर्ता के कॉइन (और एक छोटा शुल्क) लेता है और बदले में ऐसे दूसरे कॉइन लौटा देता है जिनका भेजे गए कॉइन से कोई संबंध नहीं होता। इन सेवाओं को टंबलर या मिक्सर भी कहा जाता है।

बेशक, इस तरह की केंद्रीकृत सेवाओं की सुरक्षा और निजता पर कुछ सवाल उठते हैं। इस बात की कोई गारंटी नहीं कि मिक्सर उपयोगकर्ता को उसकी रकम लौटाएगा ही, या यह कि लौटाए गए कॉइन का लेन-देन इतिहास साफ़-सुथरा होगा। मिक्सर इस्तेमाल करते समय एक और बात ध्यान में रखनी चाहिए: IP पते और बिटकॉइन पते तीसरे पक्ष द्वारा दर्ज किए जा सकते हैं। आखिरकार उपयोगकर्ता अपनी रकम किसी और के भरोसे छोड़ता है, इस उम्मीद में कि उसे बिना अतीत वाले कॉइन वापस मिलेंगे।

इससे कहीं दिलचस्प तरीका है CoinJoin लेन-देन, जो काफी हद तक "उचित इनकार" की गुंजाइश पैदा करते हैं। यानी CoinJoin लेन-देन हो जाने के बाद ऐसा कोई सबूत पेश नहीं किया जा सकता जो किसी उपयोगकर्ता और उसके पिछले लेन-देन के बीच पक्का संबंध साबित कर दे। कई CoinJoin समाधान मिक्सर की तुलना में ज़्यादा विकेंद्रीकृत विकल्प देते हैं। प्रक्रिया में भले ही कोई समन्वयक शामिल हो, उपयोगकर्ताओं को अपनी रकम की कस्टडी छोड़नी नहीं पड़ती।

CoinJoin क्या है?

CoinJoin लेन-देन को पहली बार 2013 में बिटकॉइन डेवलपर ग्रेगरी मैक्सवेल ने पेश किया था। अपने लेख में उन्होंने संक्षेप में बताया कि ये लेन-देन किस तरह बनाए जाते हैं और प्रोटोकॉल में कोई बदलाव किए बिना निजता में बड़े पैमाने पर बढ़ोतरी कैसे हासिल की जा सकती है।

मूल रूप से CoinJoin का मतलब है अलग-अलग उपयोगकर्ताओं के इनपुट को एक ही लेन-देन में जोड़ देना। यह कैसे (और क्यों) किया जाता है, यह समझाने से पहले लेन-देन की बुनियादी संरचना पर एक नज़र डाल लेते हैं।

बिटकॉइन लेन-देन इनपुट और आउटपुट से बने होते हैं। जब कोई उपयोगकर्ता लेन-देन करना चाहता है, तो वह अपने UTXO को इनपुट के रूप में इस्तेमाल करता है, आउटपुट तय करता है और इनपुट पर हस्ताक्षर करता है। ध्यान देने वाली बात यह है कि हर इनपुट पर अलग-अलग हस्ताक्षर होते हैं और उपयोगकर्ता कई आउटपुट बना सकता है, यानी अलग-अलग पतों पर रकम भेज सकता है।

चार इनपुट (हर एक 0.2 BTC) और दो आउटपुट (0.7 BTC और 0.09 BTC) वाले लेन-देन को देखें तो हम कुछ अनुमान लगा सकते हैं। पहला यह कि कोई भुगतान किया जा रहा है — भेजने वाला एक आउटपुट किसी और को भेज रहा है और बाकी रकम खुद को। चूँकि वह चार इनपुट इस्तेमाल कर रहा है, इसलिए सबसे बड़ा आउटपुट संभवतः पाने वाले के पास जा रहा है। अगर कुल जोड़ में 0.01 BTC कम है, तो वह माइनर को दिया गया लेन-देन शुल्क है।

यह भी हो सकता है कि भेजने वाला छोटे UTXO से एक बड़ा UTXO बनाना चाहता हो और इसीलिए छोटे इनपुट जोड़कर मनचाही 0.7 BTC की रकम तक पहुँच रहा हो।

एक और अनुमान इस तथ्य पर टिका है कि हर इनपुट पर अलग से हस्ताक्षर होते हैं। हो सकता है यह लेन-देन इस तरह बनाया गया हो कि इनपुट पर चार अलग-अलग पक्षों ने हस्ताक्षर किए हों। यही सिद्धांत CoinJoin को कारगर बनाता है।

CoinJoin कैसे काम करता है?

मुख्य विचार यह है कि कई पक्ष आपस में तालमेल बिठाकर अपने इनपुट और मनचाहे आउटपुट बताते हुए एक साझा लेन-देन बनाते हैं। जब सारे इनपुट जुड़ जाते हैं, तो यह पक्के तौर पर कहना संभव नहीं रहता कि कौन-सा आउटपुट किस उपयोगकर्ता का है। यह प्रक्रिया आप नीचे दिए गए चित्र में देख सकते हैं:

यहाँ चार उपयोगकर्ता हैं जो अपने लेन-देन के बीच की कड़ी तोड़ना चाहते हैं। वे आपस में (या किसी समन्वयक के ज़रिए) तालमेल बिठाकर बताते हैं कि उन्हें कौन-से इनपुट और आउटपुट शामिल करने हैं।

समन्वयक सारी जानकारी लेता है, उससे एक लेन-देन तैयार करता है और नेटवर्क पर प्रसारित करने से पहले हर प्रतिभागी से उस पर हस्ताक्षर करवाता है। उपयोगकर्ताओं के हस्ताक्षर कर देने के बाद इस लेन-देन को बिना अमान्य किए बदलना नामुमकिन हो जाता है। इस तरह समन्वयक द्वारा रकम चुरा लेने का जोखिम खत्म हो जाता है।

यह लेन-देन एक ब्लैक बॉक्स की तरह काम करता है जिसमें कॉइन मिल-जुल जाते हैं। नए UTXO बनाने के लिए पुराने UTXO को नष्ट करना पड़ता है। पुराने और नए UTXO के बीच एकमात्र कड़ी खुद यह लेन-देन है, लेकिन इस बिंदु पर प्रतिभागियों को एक-दूसरे से अलग कर पाना संभव नहीं रहता। ज़्यादा से ज़्यादा इतना कहा जा सकता है कि किसी एक प्रतिभागी ने कोई एक इनपुट जोड़ा था और वही प्रतिभागी उससे बने आउटपुट का नया मालिक हो सकता है।

लेकिन यह भी पूरी गारंटी नहीं है। क्या ऊपर दिए गए लेन-देन से यह निष्कर्ष निकाला जा सकता है कि इसमें चार प्रतिभागी हैं? कहीं ऐसा तो नहीं कि एक ही व्यक्ति अपने ही चार अलग-अलग पतों पर रकम भेज रहा हो? या दो लोग दो अलग खरीदारी करके अपने-अपने पते पर 0.2 BTC वापस भेज रहे हों? या चार लोग किसी नए व्यक्ति को या खुद को रकम भेज रहे हों? इन सवालों का ठोस जवाब देना हमारे लिए मुमकिन नहीं है।

इनकार की गुंजाइश से मिलने वाली निजता

CoinJoin ऐप्स का महज़ अस्तित्व ही लेन-देन के विश्लेषण में इस्तेमाल होने वाले तरीकों पर शक करने के लिए काफी है। आप यह नतीजा निकाल सकते हैं कि कई लेन-देन में CoinJoin इस्तेमाल हुआ है, फिर भी आपको यह पता नहीं चलेगा कि आउटपुट किसके हैं। जैसे-जैसे ये ऐप्स लोकप्रिय हुए, यह मान्यता कमज़ोर पड़ी कि सारे इनपुट एक ही उपयोगकर्ता के होते हैं — और यह पूरे इकोसिस्टम में निजता की दिशा में बड़ा कदम साबित हुआ।

पिछले उदाहरण में लेन-देन का एनोनिमिटी सेट 4 है, यानी आउटपुट का मालिक इसमें शामिल चार उपयोगकर्ताओं में से कोई भी हो सकता है। एनोनिमिटी सेट जितना बड़ा होगा, लेन-देन को उसके असली मालिक से जोड़ना उतना ही मुश्किल होगा। अच्छी बात यह है कि नए CoinJoin कार्यान्वयनों की बदौलत उपयोगकर्ता बिना किसी पर भरोसा किए अपना इनपुट दर्जनों दूसरे उपयोगकर्ताओं के साथ जोड़ सकते हैं, जिससे इनकार की गुंजाइश बहुत बढ़ जाती है। हाल ही में 100 लोगों वाला एक लेन-देन सफलतापूर्वक किया गया था।

आखिरी बात

कॉइन मिक्स करने के औज़ार हर उस उपयोगकर्ता के लिए अहम हैं जो अपनी निजता को लेकर सजग है। निजता से जुड़े दूसरे अपडेट्स (जैसे Confidential Transactions) के उलट, इन औज़ारों का फायदा प्रोटोकॉल को उसकी मौजूदा स्थिति में रखते हुए ही उठाया जा सकता है।

जो लोग तीसरे पक्ष की ईमानदारी और तरीकों पर भरोसा करते हैं, उनके लिए मिक्सिंग सेवाएँ एक आसान हल हैं। और जो सत्यापन-योग्य तथा बिना कस्टडी वाले विकल्प चाहते हैं, उनके लिए CoinJoin साफ़ तौर पर बेहतर है। तकनीकी समझ रखने वाले उपयोगकर्ता ये लेन-देन खुद हाथ से बना सकते हैं, या फिर ऐसे सॉफ़्टवेयर टूल्स का सहारा ले सकते हैं जो जटिल तंत्र से जूझने की ज़रूरत ही खत्म कर देते हैं। इस तरह के कई टूल पहले से मौजूद हैं और जैसे-जैसे उपयोगकर्ता ज़्यादा निजता चाहते हैं, उनकी लोकप्रियता बढ़ती जा रही है।