CoinJoin कई लोगों के फंड को एक Bitcoin ट्रांज़ैक्शन में जोड़ने का तरीका है। हर व्यक्ति अपनी कुंजियाँ अपने पास रखता है और जाँचता है कि वह किस बात पर हस्ताक्षर कर रहा है। प्रतिभागियों या उनके बताए प्राप्तकर्ताओं के लिए नए आउटपुट बनते हैं। देखने वाले के लिए यह पता लगाना कठिन हो सकता है कि किस पुराने मालिक को कौन-सा नया आउटपुट मिला। असर ट्रांज़ैक्शन की बनावट, प्रोटोकॉल और देखने वाले के पास मौजूद दूसरी जानकारी पर निर्भर है।
एना किसी सेवा का भुगतान करती है और नहीं चाहती कि प्राप्तकर्ता आसानी से उसके बाकी फंड का पता लगा ले। लेकिन Bitcoin में बैंक स्टेटमेंट जैसी निजी सूची नहीं होती; ट्रांज़ैक्शन का इतिहास सार्वजनिक है। एक ट्रांज़ैक्शन पहले बने, अभी तक खर्च न हुए आउटपुट यानी UTXO खर्च करती है और नए आउटपुट बनाती है। आउटपुट में रकम और उसे खर्च करने की शर्तें दर्ज होती हैं। जब सामान्य भुगतान ऐसे कई आउटपुट इस्तेमाल करता है, तो विश्लेषक अक्सर मान लेता है कि वे एक ही व्यक्ति के नियंत्रण में हैं। यह उपयोगी अनुमान या heuristic है, प्रमाण नहीं। CoinJoin अलग-अलग मालिकों को एक ट्रांज़ैक्शन में लाकर इस धारणा को तोड़ता है। वह अतीत नहीं बदलता; सार्वजनिक रिकॉर्ड से संबंध जोड़ने की निश्चितता बदलता है। [1]
एक सरल उदाहरण में एना और पावेल के पास 100 500 sat का एक-एक आउटपुट है। sat का मतलब सातोशी है, जो बिटकॉइन की सबसे छोटी इकाई है। वे ऐसी ट्रांज़ैक्शन तैयार करते हैं जिसमें दोनों को 100 000 sat का नया आउटपुट मिले। बचे हुए कुल 1 000 sat दोनों का साझा नेटवर्क शुल्क हैं। इस उदाहरण में अतिरिक्त सेवा शुल्क शामिल नहीं हैं। समन्वयक या आपस में संपर्क करने वाले वॉलेट प्रस्ताव बनाते हैं। डिजिटल हस्ताक्षर ऐसी मंज़ूरी का प्रमाण है जिसे जाँचा जा सकता है। इसे निजी कुंजी से बनाया जाता है—यह गुप्त डेटा हस्ताक्षर करने की क्षमता देता है, लेकिन हस्ताक्षर करते समय कुंजी खुद उजागर नहीं होती। अपने इनपुट पर हस्ताक्षर करने से पहले हर व्यक्ति अपने आउटपुट का पता, रकम, शुल्क और सभी शर्तें जाँचता है। समन्वयक के पास अपने आप न दूसरों की कुंजियाँ होती हैं, न उनके फंड खर्च करने का अधिकार। कोई आवश्यक हस्ताक्षर न मिले तो यह ट्रांज़ैक्शन वैध रूप से पूरी नहीं हो सकती। यह सुरक्षा सही सॉफ्टवेयर और प्रस्ताव की जाँच पर निर्भर है: ठग के पते पर भेजने वाले प्रस्ताव पर हस्ताक्षर कर देना इसे निष्प्रभावी कर देगा। [1] [5]
उदाहरण में केवल ब्लॉकचेन देखने वाले को समान रकम के दो नए आउटपुट दिखते हैं। रकम भर से नहीं पता चलता कि कौन-सा एना का है और कौन-सा पावेल का। इसका अर्थ अपने आप आधी-आधी संभावना या पहचान छिपने की गारंटी नहीं है। देखने वाला एक पता जान सकता है या उसके पास कोई और सुराग हो सकता है। वास्तविक ट्रांज़ैक्शन में पहचाने जा सकने वाले बचे पैसे, अलग रकम, आउटपुट के प्रकार और समय संबंधों को उजागर कर सकते हैं। anonymity set उन संभावनाओं का समूह है जिनमें देखने वाला अंतर नहीं कर सकता, केवल किसी दौर में पंजीकृत लोगों की गिनती नहीं। वॉलेट का स्कोर भी एक खास मॉडल का अनुमान है, हर देखने वाले के ज्ञान की सीमा का वादा नहीं। [1] [4]
पैसा चुराने की क्षमता और जानकारी हासिल करने की क्षमता अलग हैं। साधारण समन्वयक इनपुट और आउटपुट के संबंध जान सकता है; दूसरे प्रोटोकॉल इन्हें क्रिप्टोग्राफिक तरीकों से छिपाते हैं। IP पते और कनेक्शन के समय जैसी नेटवर्क जानकारी भी मायने रखती है। एक और समस्या Sybil Attack है: एक हमलावर कई प्रतिभागियों का रूप लेता है, अपने आउटपुट पहचानता है और बाकी के बारे में अनिश्चितता घटाता है। कोई प्रतिभागी हस्ताक्षर करने से इनकार करके पूरा दौर भी रोक सकता है। इसलिए भागीदारी के ठोस नियम और बहुत सारे अनुरोधों या जानबूझकर बाधा डालने वाले DoS से बचाव महत्वपूर्ण हैं। केवल अधिक इनपुट होना इन सवालों का जवाब नहीं है। [1] [4]
बाद में एना अपने नए आउटपुट को उस एक्सचेंज से निकाले फंड के साथ खर्च करती है जो उसकी पहचान जानता है। इससे देखने वाले को वहाँ नया संबंध मिल सकता है जहाँ एना ने अस्पष्टता पैदा करने की कोशिश की थी। पते दोबारा इस्तेमाल करने या कई आउटपुट को एक में जोड़ने, यानी consolidation, से भी ऐसा हो सकता है। Coin Control से चुना जा सकता है कि वॉलेट कौन-से UTXO खर्च करे। इससे अलग संदर्भों के फंड अलग रखने में मदद मिलती है, लेकिन यह पूर्ण गोपनीयता का बटन नहीं है। प्राप्तकर्ता भुगतान करने वाले को जान सकता है और सेवा अपना रिकॉर्ड रख सकती है। इसलिए सफल दौर के बाद भी गोपनीयता पर ध्यान देना पड़ता है; यह केवल एक ट्रांज़ैक्शन की आकृति का गुण नहीं है। [5]
पहले तय करें कि कौन-सी जानकारी किससे बचानी है। जिज्ञासु प्राप्तकर्ता, समन्वयक और नेटवर्क देखने वाले की क्षमताएँ समान नहीं होतीं। फिर जाँचें कि कुंजियाँ किसके पास हैं, ऐप किस पर हस्ताक्षर करता है, क्या शुल्क लेता है और बने हुए आउटपुट कैसे संभालता है। जिस सेवा को पहले पैसे रखने के लिए भेजते हैं, उस पर भरोसे का तरीका कुंजियाँ अपने पास रखने वाले CoinJoin से अलग है। CoinJoin Bitcoin में कोई विशेष नियम नहीं जोड़ता: नोड सामान्य ट्रांज़ैक्शन और उसकी शर्तें जाँचते हैं। नोड वह कंप्यूटर है जिस पर Bitcoin की ट्रांज़ैक्शन और ब्लॉक जाँचने वाला सॉफ़्टवेयर चलता है। CoinJoin एक्सचेंज या प्राप्तकर्ता का रिकॉर्ड नहीं मिटाता और किसी खास सेवा के भुगतान के प्रति व्यवहार का वादा नहीं करता। नए पाठक के लिए ऐप के ‘अनाम’ लेबल से अधिक उपयोगी इन सीमाओं को समझना है। [1] [5]
Gregory Maxwell ने अगस्त 2013 में CoinJoin को सार्वजनिक रूप से समझाया। विचार के लिए नेटवर्क के नियम बदलने की जरूरत नहीं थी, लेकिन लोगों को एक-दूसरे को ढूँढ़ने और सहयोग करने का तरीका चाहिए था। JoinMarket ने बाजार आधारित तरीका दिखाया: साझा ट्रांज़ैक्शन आयोजित करने वाला दूसरों को भागीदारी के लिए फंड उपलब्ध कराने का भुगतान करता है। समन्वयक वाले प्रोटोकॉल यह काम दूसरे ढंग से करते हैं। उदाहरण के लिए WabiSabi अलग-अलग रकम और अनाम प्रमाण-पत्रों का समर्थन करता है। उनसे प्रतिभागी इनपुट से संबंध सीधे बताए बिना आउटपुट पाने का अधिकार साबित कर सकता है। इसलिए CoinJoin को एक ऐप का नाम न समझें और यह न मानें कि हर रूप में केवल बराबर आउटपुट होते हैं। [1] [2] [4]
Maxwell की पोस्ट मूल विचार समझाती है, किसी वॉलेट के दस्तावेज उसकी प्रक्रिया बताते हैं और WabiSabi का शोधपत्र प्रोटोकॉल के गुण बताता है। ये साक्ष्य के अलग स्तर हैं। इस समीक्षा के समय मूल JoinMarket क्लाइंट और सर्वर रिपॉज़िटरी संग्रहित हो चुकी है; यहाँ उसे ऐतिहासिक और तकनीकी स्रोत की तरह लिया गया है, इंस्टॉल करने की सलाह की तरह नहीं। BIP 78 का PayJoin भुगतान करने वाले और प्राप्तकर्ता का संबंधित सहयोग है, जिसमें दोनों इनपुट देते हैं। आम तौर पर उसका लक्ष्य बराबर आउटपुट का बड़ा समूह बनाना नहीं है। तरीकों की तुलना में केवल ‘गोपनीयता’ शब्द पर भरोसा न करें; पूछें कौन सहयोग करता है, क्या जान सकता है और व्यक्ति और उसका वॉलेट हस्ताक्षर से पहले किन बातों की जाँच करते हैं। [1] [2] [3] [4] [5] [6]
साझा ट्रांज़ैक्शन एक ही मालिक साबित नहीं करती
Alice और Bob साझा ट्रांज़ैक्शन के अलग-अलग इनपुट नियंत्रित करते हैं और अपने आउटपुट पाते हैं। सभी इनपुट एक व्यक्ति के हैं, यह धारणा यहाँ गलत है। केवल जोड़ना आउटपुट का स्वामित्व छिपाने की गारंटी नहीं देता; रकम, अन्य जानकारी और बाद का खर्च संबंध दिखा सकते हैं।
पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें Bitcoin, Bitcoin में गोपनीयता, छद्मनामिता, वॉलेट, UTXO, लेनदेन. इस प्रविष्टि का उल्लेख यहाँ भी है Change Address, Bitcoin में गोपनीयता, छद्मनामिता, KYC.
01क्या CoinJoin समन्वयक इनपुट की रकम चुरा सकता है?+
सही ढंग से बनाए गए गैर-कस्टोडियल CoinJoin में कुंजियाँ प्रतिभागियों के पास ही रहती हैं। हस्ताक्षर करने से पहले वे पूरी ट्रांज़ैक्शन, खासकर अपने आउटपुट, रकम और शुल्क की जाँच करते हैं। जरूरी हस्ताक्षरों के बिना समन्वयक वैध खर्च नहीं बना सकता, पर दौर बाधित कर सकता है या भागीदारी रोक सकता है। लेकिन यदि कोई प्रतिभागी अपने पैसे ठग को भेजने वाली ट्रांज़ैक्शन पर हस्ताक्षर कर दे, तो वह खुद उस भुगतान को मंज़ूरी दे रहा है।
02क्या CoinJoin के बाद आउटपुट हमेशा गुमनाम रहते हैं?+
नहीं। इतिहास सार्वजनिक रहता है। पते दोहराना, समेकन, ज्ञात पक्ष को भुगतान, पहचानने योग्य वॉलेट व्यवहार और नेटवर्क मेटाडेटा स्वामित्व की अस्पष्टता घटा या मिटा सकते हैं। परिणाम प्रोटोकॉल और आउटपुट के बाद के उपयोग पर निर्भर है।