112 / 736BLIND

Blind Signature

संदेश देखे बिना उसकी पुष्टि करने वाला ब्लाइंड हस्ताक्षर

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

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

सामान्य मंजूरी में जारीकर्ता वाउचर का नंबर और उसे लेने वाले व्यक्ति को साथ दर्ज कर सकता है। दुकान से वाउचर लौटने पर दोनों रिकॉर्ड जोड़े जा सकते हैं। चाउम ने कार्बन पेपर वाले लिफाफे से समझाया: बाहर की मुहर अंदर के कागज पर उतरती है, जिसका नंबर जारीकर्ता नहीं देखता। बाहर निकले कागज पर वैध मंजूरी रहती है। यह समझाने का उदाहरण है, कागज और मुहर से सुरक्षा बनाने की विधि नहीं। वास्तविक प्रोटोकॉल संख्याओं और गणित से कंप्यूटरों के बीच यही अलगाव बनाता है। [7] [1]

अन्ना को 100 sats का डिजिटल वाउचर चाहिए। Sats, Bitcoin की छोटी इकाइयाँ हैं। वॉलेट इन वाउचरों को सँभालने और उनसे भुगतान करने वाला ऐप है। यह हर वाउचर की अलग पहचान के लिए ऐसा गुप्त मान बनाता है जिसका अनुमान लगाना संभव न हो और एक दूसरे यादृच्छिक मान से उसे गणितीय रूप से ढकता है। इस बदलाव को blinding कहते हैं। जारीकर्ता को ढका संदेश मिलता है, मूल रहस्य नहीं। वॉलेट बाद में ढकाव हटाने के लिए जरूरी जानकारी रखता है। केवल फाइल का नाम बदलना या व्यक्ति का नाम हटाना पर्याप्त नहीं; blinding को स्पष्ट क्रिप्टोग्राफिक गुण पूरे करने होते हैं। उदाहरण सरल रखने के लिए यहाँ एक ही वाउचर लिया गया है; असली वॉलेट अलग-अलग मूल्य के कई वाउचर जोड़कर मनचाही रकम बना सकता है। [8] [2]

ब्लाइंड हस्ताक्षर का मतलब किसी के लिए कुछ भी मुफ्त में हस्ताक्षर करना नहीं है। जारीकर्ता पहले अन्ना का भुगतान जाँच सकता है या उतनी राशि उसके बैलेंस से घटा सकता है। उसे माँगी गई कीमत 100 sats पता है, लेकिन वाउचर का छिपा नंबर जानना जरूरी नहीं। हस्ताक्षर कुंजी एक गुप्त संख्यात्मक मान है, जिससे जारीकर्ता का प्रोग्राम हस्ताक्षर बनाता है। हर मूल्यवर्ग के लिए अलग हस्ताक्षर कुंजी से कीमत बाँधी जा सकती है; फाइल में अंक बदलने से अधिक मूल्य का वाउचर नहीं बन जाता। जारीकर्ता ढके इनपुट पर हस्ताक्षर करके परिणाम लौटाता है। यहाँ वाउचर पाने की पात्रता और बाद में उसी वाउचर की पहचान अलग की जाती हैं। [7] [8]

अब अन्ना को मूल रहस्य जारीकर्ता को दिखाने की जरूरत नहीं। वॉलेट लौटे परिणाम से यादृच्छिक आवरण खुद हटाता है। इस चरण को unblinding कहते हैं। सही बनावट में शुरुआती संदेश की वैध पुष्टि बचती है, लेकिन वॉलेट को जारीकर्ता की निजी हस्ताक्षर कुंजी नहीं मिलती। उपयोगकर्ता को नया बैलेंस दिखता है; गणितीय आवरण लगाने और हटाने का काम पीछे होता है। इस डिजिटल प्रमाण को अक्सर टोकन कहते हैं। यह ब्लॉकचेन, यानी Bitcoin के लेनदेन के साझा रिकॉर्ड पर अलग बिटकॉइन नहीं, बल्कि जारीकर्ता से भुगतान माँगने का दावा है। [2] [8]

सत्यापन पूछता है कि पुष्टि संदेश और सही जारीकर्ता की कुंजी से मेल खाती है या नहीं। RSA क्रिप्टोग्राफिक प्रणाली पर आधारित ब्लाइंड हस्ताक्षर के लिए सार्वजनिक कुंजी पर्याप्त है; दूसरी बनावटों में अतिरिक्त प्रमाण या जारीकर्ता की मदद चाहिए हो सकती है। इससे यह साबित नहीं होता कि वाउचर खर्च नहीं हुआ, उसकी प्रति किसी के पास नहीं या जारीकर्ता के पास चुकाने के लिए पर्याप्त भंडार है। ये तीन अलग सवाल हैं। जैसे असली मगर इस्तेमाल हो चुका टिकट दूसरी बार प्रवेश नहीं देता, वैसे ही क्रिप्टोग्राफिक रूप से सही प्रमाण अगले भुगतान में बेकार हो सकता है। [2] [10]

अन्ना वाउचर पीटर को भेजती है। चूँकि वह डेटा है, वह समान प्रति रख सकती है। ब्लाइंड हस्ताक्षर उसके उपकरण से फाइल नहीं मिटाता। सामान्य ऑनलाइन प्रणाली में प्राप्तकर्ता का वॉलेट इसलिए टोकन जारीकर्ता को देता है। जारीकर्ता टोकन की वैधता जाँचता है और देखता है कि उसी गुप्त मान वाला टोकन पहले खर्च तो नहीं हुआ। स्वीकार करने पर पुराने टोकन को इस्तेमाल हुआ दर्ज करता है और पीटर के लिए उसी ब्लाइंड हस्ताक्षर प्रक्रिया से नया टोकन जारी कर सकता है। अन्ना नया रहस्य नहीं जानती। पुरानी प्रति दोबारा खर्च करने की कोशिश रिकॉर्ड के आधार पर खारिज होती है। उन्हीं पैसों को फिर खर्च करना double spend है; उसे रोकना भुगतान प्रणाली का एक अलग हिस्सा है। [9] [8]

दूसरी दिशा में भी सुरक्षा चाहिए: ग्राहक को अनुमत हस्ताक्षरों से नए रहस्यों वाले अतिरिक्त वैध प्रमाण नहीं बनाने चाहिए। इसे जालसाजी से सुरक्षा कहते हैं। ब्लाइंड हस्ताक्षरों में खास तौर पर one-more unforgeability परखा जाता है: तय संख्या में हस्ताक्षर संवाद के बाद क्या हमलावर एक और नया वैध संदेश-हस्ताक्षर जोड़ा पेश कर सकता है? उसी जोड़े की प्रति बनाना पहले वाला अलग मुद्दा है। सही क्रिप्टोग्राफी भी सर्वर पर पात्रता, रकम और अनुमत टोकन संरचना की जाँच का विकल्प नहीं। मिलकर ये जाँच अनधिकृत मूल्य जारी होने से रोक सकती हैं। [2] [3]

जारीकर्ता जान सकता है कि अन्ना ने कब और कितने मूल्य के टोकन लिए। भुनाते समय उसे समय, रकम या प्राप्तकर्ता के नेटवर्क पते की जानकारी मिल सकती है। यह मेटाडेटा है, यानी भुगतान प्रमाण के साथ की जानकारी। उपयोगकर्ता कम हों तो असामान्य रकम या तुरंत अगला भुगतान संबंध का अनुमान आसान बना सकता है। साझा और सत्यापित कुंजियाँ भी जरूरी हैं: सिर्फ एक व्यक्ति को दी गई कुंजी उसकी पहचान बन सकती है। प्रोटोकॉल का ब्लाइंड गुण हस्ताक्षर और जारीकरण के खास संबंध को बचाता है, सारी आसपास की जानकारी को नहीं। न वह हैक हुए वॉलेट को ठीक करता है, न जारीकर्ता से उसका वादा जबरन पूरा कराता है। [7] [2]

चाउम का विचार इलेक्ट्रॉनिक नकदी की नींव है, जिसका इतिहास DigiCash से जुड़ा है। आज Cashu और Fedimint इसे Bitcoin में इस्तेमाल करते हैं; Lightning Network (Bitcoin में तेज़ भुगतान के लिए बना नेटवर्क) के संपर्क पैसे अंदर-बाहर लाने में मदद करते हैं। लेकिन उनकी बनावट RSA नहीं है। मूल Cashu टोकन को जारीकर्ता की गुप्त कुंजी से जाँचता है; NUT-12 सार्वजनिक जानकारी से हस्ताक्षर जाँचने का प्रमाण जोड़ता है, टोकन के अभी तक न खर्च होने का नहीं। Fedimint प्रशासन कई संचालकों में बाँटता है। दोनों में उपयोगकर्ता का दावा जारीकर्ता पर है और वह उसकी अभिरक्षा तथा उपलब्धता पर निर्भर है। GNU Taler, उदाहरण के लिए, खरीदार की निजता को व्यापारी की आय का पता लगाने की क्षमता के साथ जोड़ता है। [5] [6] [10] [4]

सरल रूप कुछ समीकरणों में समझा जा सकता है। संदेश सुरक्षित रूप से संख्या m में कूटबद्ध होता है; सार्वजनिक कुंजी में n और e हैं और निजी भाग d है। अनुरोधकर्ता यादृच्छिक r चुनता है जिसका n के मॉड्यूलो में गुणात्मक प्रतिलोम r⁻¹ हो, और m′ = m·r^e mod n भेजता है। Mod n का अर्थ n से भाग देने पर बचे शेष के साथ गणना है। हस्ताक्षरकर्ता s′ = (m′)^d mod n लौटाता है और अनुरोधकर्ता s = s′·r⁻¹ mod n पाता है। जाँच में s^e mod n = m मिलता है। r⁻¹ आवरण हटाता है। ये संबंध प्रक्रिया समझाते हैं, पूरा सुरक्षित प्रोग्राम नहीं हैं। RFC 9474 संदेश की तैयारी, सुरक्षित कूटबद्धता वाली RSA-PSS हस्ताक्षर योजना, इनपुट जाँच और हस्ताक्षर कुंजियों को अलग रखने के नियम भी देता है। यादृच्छिकता और सही प्रोटोकॉल रूप जरूरी हैं। [2] [3]

पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें David Chaum, Chaumian eCash, DigiCash, Cashu, Fedimint, Bitcoin में गोपनीयता. इस प्रविष्टि का उल्लेख यहाँ भी है DigiCash, Chaumian eCash, Reusable Proofs of Work, Fedimint.

DOC · 001David Chaum — Blind Signatures for Untraceable Paymentsप्राथमिक स्रोत DOC · 002RFC 9474 — RSA Blind Signaturesविनिर्देश DOC · 003IRTF/CFRG — RFC 9474 publication recordविनिर्देश DOC · 004GNU Taler — Principlesप्राथमिक स्रोत DOC · 005Cashu protocol specificationsविनिर्देश DOC · 006Fedimint — How Federations Workप्राथमिक स्रोत DOC · 007David Chaum — Security without Identificationप्राथमिक स्रोत DOC · 008Cashu NUT-00 — Notation and modelsविनिर्देश DOC · 009Cashu NUT-03 — Swapping tokensविनिर्देश DOC · 010Cashu NUT-12 — DLEQ proofsविनिर्देश
समीक्षा की गई: स्रोत पहले · यह निवेश सलाह नहीं है