बिटकॉइन साइलेंट पेमेंट्स सीक्रेट कीज

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

एक पुश आधारित भुगतान प्रणाली के रूप में (किसी को भी आपसे भुगतान “खींचने” की अनुमति नहीं है, आपको उन्हें स्पष्ट रूप से स्वयं अधिकृत करना होगा और उन्हें अन्य लोगों को “धक्का” देना होगा), बिटकॉइन को प्रेषक के लिए गंतव्य को परिभाषित करने के लिए आवश्यक जानकारी की आवश्यकता होती है। पैसा वे भेजते हैं। इसके लिए प्राप्तकर्ता को प्रेषक को अपने बिटकॉइन पते को एक या दूसरे तरीके से संप्रेषित करने की आवश्यकता होती है। आम जनता से धन जुटाने की कोशिश के मामले में, गोपनीयता के मामले में इसका व्यापक परिणाम होता है या ऑनलाइन निरंतर इंटरैक्टिव उपस्थिति बनाए रखने की आवश्यकता होती है। कोई भी केवल एक बिटकॉइन पते को ऑनलाइन कहीं पोस्ट करने में पूरी तरह से सक्षम है, और उस बिंदु से, जो कोई भी उस व्यक्ति को पैसा भेजना चाहता है, वह बस ऐसा कर सकता है, लेकिन इस तरह से पैसे जुटाने में कोई गोपनीयता नहीं है। बस उस पते को लें और इसे ब्लॉकचेन पर देखें, और आप न केवल यह देख सकते हैं कि उस व्यक्ति को कितना पैसा भेजा गया है, लेकिन आप उन सभी लोगों के ब्लॉकचैन पर पदचिह्न देख सकते हैं जिन्होंने उन्हें पैसा भेजा है। धन जुटाने का प्रयास करने वाले व्यक्ति और उन्हें दान करने वाले प्रत्येक व्यक्ति की कोई गोपनीयता नहीं है; पूरी दुनिया को देखने के लिए सब कुछ पूरी तरह से खुला और सहसंबद्ध है।

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

बीआईपी47

दर्ज बीआईपी47 जस्टस रणवीर द्वारा। इस प्रस्ताव का उद्देश्य किसी ऐसे व्यक्ति के लिए सार्वजनिक रूप से पर्याप्त जानकारी पोस्ट करने में सक्षम होना है जो किसी भी व्यक्ति से धन प्राप्त करने में सक्षम होने के लिए सक्षम हो, बिना उस सार्वजनिक जानकारी के (1) ट्रैक करने वाले व्यक्ति ने कितना पैसा पोस्ट किया है इसे प्राप्त हुआ है और (2) जनता को इस बारे में कोई जानकारी देना है कि किसने अनुरोध करने वाले व्यक्ति को धन भेजा है। मूल विचार उस सार्वजनिक रूप से पोस्ट की गई जानकारी (या भुगतान कोड) ले रहा है और वहां से, अपने स्वयं के भुगतान कोड को जोड़कर एक नया सेट पतों का निर्माण कर सकता है जिसके लिए रिसीवर निजी कुंजी का निर्माण कर सकता है। पतों का यह नया सेट एकल प्रेषक और रिसीवर के बीच संबंध के लिए विशिष्ट है, हर बार जब कोई नया प्रेषक इस प्रोटोकॉल का उपयोग किसी रिसीवर को पैसे भेजने के लिए करता है, तो यह उन दोनों के लिए अद्वितीय पतों का एक नया सेट उत्पन्न करेगा।

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

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

ऐलिस और बॉब अब पतों का एक नया सेट प्राप्त कर सकते हैं, जिसके बारे में केवल दो ही जानते हैं, और ऐलिस अब किसी भी बाहरी पर्यवेक्षक को उनके बीच संबंध के बारे में जागरूक किए बिना हर बार एक नए पते का उपयोग करके बॉब को किसी भी राशि का लेनदेन भेज सकता है। एक दूसरी भिन्नता है जहां, बॉब के अधिसूचना लेनदेन के लिए आउटपुट भेजने के बजाय, ऐलिस 1-ऑफ़-2 मल्टीसिग का उपयोग करके खुद को एक परिवर्तन आउटपुट बनाता है जहां एक कुंजी उसका परिवर्तन पता है, और दूसरा बॉब का भुगतान कोड पहचानकर्ता है। ए तीसरी भिन्नता OP_RETURN के बदले आवश्यक जानकारी को एन्कोड करने के लिए 1-ऑफ-3 मल्टीसिग आउटपुट का उपयोग करता है। इसके अलावा, चीजें वही काम करती हैं।

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

मौन भुगतान

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

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

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

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

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

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

कुल मिलाकर यह विचार हर तरह से BIP47 पर एक महत्वपूर्ण सुधार है, सिवाय इसके कि रिसीवर द्वारा भेजे गए धन को स्कैन करने के लिए उच्च सत्यापन लागत को छोड़कर। यह नियतात्मक पुनर्प्राप्ति संपत्ति को बरकरार रखता है, रिसीवर को भेजे गए विभिन्न भुगतानों के बीच असंबद्धता प्राप्त करता है, और भुगतान किए जाने से पहले अधिसूचना लेनदेन की आवश्यकता को हटा देता है। एक बार फिर, सोमसेन एक प्रोटोकॉल के लिए एक बहुत ही ठोस विचार लेकर आया है जिसे बिटकॉइन की उपयोगिता में सुधार करने के लिए लागू किया जा सकता है।

यह शिनोबी की अतिथि पोस्ट है। व्यक्त की गई राय पूरी तरह से उनकी अपनी हैं और जरूरी नहीं कि वे बीटीसी इंक या बिटकॉइन पत्रिका को प्रतिबिंबित करें।

Leave a Comment