शून्य-ज्ञान प्रमाण (zero-knowledge proof) किसी कथन को प्रकट किए बिना उसकी वैधता साबित करने का एक तरीका है। 'प्रमाणक' (prover) वह पक्ष है जो किसी दावे को साबित करने का प्रयास कर रहा है, जबकि 'सत्यापनकर्ता' (verifier) दावे को मान्य करने के लिए जिम्मेदार है।
शून्य-ज्ञान प्रमाण पहली बार 1985 के एक पेपर, “The knowledge complexity of interactive proof systems (opens in a new tab)” में सामने आए थे, जो शून्य-ज्ञान प्रमाण की एक ऐसी परिभाषा प्रदान करता है जिसका आज व्यापक रूप से उपयोग किया जाता है:
एक शून्य-ज्ञान प्रोटोकॉल एक ऐसी विधि है जिसके द्वारा एक पक्ष (प्रमाणक) दूसरे पक्ष (सत्यापनकर्ता) को यह साबित कर सकता है कि कुछ सत्य है, बिना कोई जानकारी प्रकट किए सिवाय इस तथ्य के कि यह विशिष्ट कथन सत्य है।
शून्य-ज्ञान प्रमाणों में पिछले कुछ वर्षों में सुधार हुआ है और अब उनका उपयोग कई वास्तविक दुनिया के अनुप्रयोगों में किया जा रहा है।
हमें शून्य-ज्ञान प्रमाण की आवश्यकता क्यों है?
शून्य-ज्ञान प्रमाण एप्लाइड क्रिप्टोग्राफी में एक बड़ी सफलता का प्रतिनिधित्व करते हैं, क्योंकि उन्होंने व्यक्तियों के लिए जानकारी की सुरक्षा में सुधार करने का वादा किया था। विचार करें कि आप किसी अन्य पक्ष (जैसे, एक सेवा प्रदाता) को कोई दावा (जैसे, "मैं X देश का नागरिक हूँ") कैसे साबित कर सकते हैं। आपको अपने दावे का समर्थन करने के लिए "सबूत" प्रदान करने की आवश्यकता होगी, जैसे कि राष्ट्रीय पासपोर्ट या ड्राइवर का लाइसेंस।
लेकिन इस दृष्टिकोण के साथ समस्याएँ हैं, मुख्य रूप से गोपनीयता की कमी। तृतीय-पक्ष सेवाओं के साथ साझा की गई व्यक्तिगत पहचान योग्य जानकारी (PII) केंद्रीय डेटाबेस में संग्रहीत की जाती है, जो हैक के प्रति संवेदनशील होते हैं। पहचान की चोरी एक गंभीर मुद्दा बनने के साथ, संवेदनशील जानकारी साझा करने के अधिक गोपनीयता-सुरक्षा वाले साधनों की मांग की जा रही है।
शून्य-ज्ञान प्रमाण दावों की वैधता साबित करने के लिए जानकारी प्रकट करने की आवश्यकता को समाप्त करके इस समस्या को हल करते हैं। शून्य-ज्ञान प्रोटोकॉल इसकी वैधता का एक संक्षिप्त प्रमाण उत्पन्न करने के लिए इनपुट के रूप में कथन (जिसे 'साक्षी' कहा जाता है) का उपयोग करता है। यह प्रमाण मजबूत गारंटी प्रदान करता है कि कोई कथन उसे बनाने में उपयोग की गई जानकारी को उजागर किए बिना सत्य है।
हमारे पहले के उदाहरण पर वापस जाएं, तो अपनी नागरिकता के दावे को साबित करने के लिए आपको केवल एक शून्य-ज्ञान प्रमाण की आवश्यकता है। सत्यापनकर्ता को केवल यह जांचना होता है कि क्या प्रमाण के कुछ गुण सत्य हैं ताकि यह आश्वस्त हो सके कि अंतर्निहित कथन भी सत्य है।
शून्य-ज्ञान प्रमाण के उपयोग के मामले
अनाम भुगतान
क्रेडिट कार्ड भुगतान अक्सर कई पक्षों को दिखाई देते हैं, जिनमें भुगतान प्रदाता, बैंक और अन्य इच्छुक पक्ष (जैसे, सरकारी अधिकारी) शामिल हैं। जबकि वित्तीय निगरानी के अवैध गतिविधि की पहचान करने के लिए लाभ हैं, यह आम नागरिकों की गोपनीयता को भी कमजोर करता है।
क्रिप्टोकरेंसी का उद्देश्य उपयोगकर्ताओं को निजी, पीयर-टू-पीयर लेन-देन करने का एक साधन प्रदान करना था। लेकिन अधिकांश क्रिप्टोकरेंसी लेन-देन सार्वजनिक ब्लॉकचेन पर खुले तौर पर दिखाई देते हैं। उपयोगकर्ता की पहचान अक्सर छद्म नाम वाली होती है और या तो जानबूझकर वास्तविक दुनिया की पहचान से जुड़ी होती है (जैसे, ट्विटर या GitHub प्रोफाइल पर ETH पते शामिल करके) या बुनियादी ऑनचेन और ऑफचेन डेटा विश्लेषण का उपयोग करके वास्तविक दुनिया की पहचान से जुड़ी हो सकती है।
पूरी तरह से अनाम लेन-देन के लिए डिज़ाइन किए गए विशिष्ट "प्राइवेसी कॉइन" हैं। गोपनीयता-केंद्रित ब्लॉकचेन, जैसे कि Zcash और Monero, प्रेषक/प्राप्तकर्ता पते, संपत्ति के प्रकार, मात्रा और लेन-देन की समयरेखा सहित लेन-देन के विवरण को ढालते हैं।
प्रोटोकॉल में शून्य-ज्ञान तकनीक को शामिल करके, गोपनीयता-केंद्रित नेटवर्क को लेन-देन डेटा तक पहुंचने की आवश्यकता के बिना लेन-देन को मान्य करने की अनुमति देते हैं। EIP-7503 (opens in a new tab) एक प्रस्तावित डिज़ाइन का उदाहरण है जो इथेरियम ब्लॉकचेन पर मूल्य के मूल निजी हस्तांतरण को सक्षम करेगा। हालांकि, सुरक्षा, विनियामक और UX चिंताओं के मिश्रण के कारण ऐसे प्रस्तावों को लागू करना मुश्किल है।
सार्वजनिक ब्लॉकचेन पर लेन-देन को अनाम बनाने के लिए शून्य-ज्ञान प्रमाण भी लागू किए जा रहे हैं। इसका एक उदाहरण Tornado Cash है, जो एक विकेंद्रीकृत, गैर-कस्टोडियल सेवा है जो उपयोगकर्ताओं को इथेरियम पर निजी लेन-देन करने की अनुमति देती है। Tornado Cash लेन-देन के विवरण को अस्पष्ट करने और वित्तीय गोपनीयता की गारंटी देने के लिए शून्य-ज्ञान प्रमाण का उपयोग करता है। दुर्भाग्य से, क्योंकि ये "ऑप्ट-इन" गोपनीयता उपकरण हैं, वे अवैध गतिविधि से जुड़े हैं। इसे दूर करने के लिए, गोपनीयता को अंततः सार्वजनिक ब्लॉकचेन पर डिफ़ॉल्ट बनना होगा। इथेरियम पर गोपनीयता के बारे में अधिक जानें।
पहचान सुरक्षा
वर्तमान पहचान प्रबंधन प्रणालियाँ व्यक्तिगत जानकारी को जोखिम में डालती हैं। शून्य-ज्ञान प्रमाण संवेदनशील विवरणों की रक्षा करते हुए व्यक्तियों को पहचान को मान्य करने में मदद कर सकते हैं।
शून्य-ज्ञान प्रमाण विकेंद्रीकृत पहचान (डीआईडी) के संदर्भ में विशेष रूप से उपयोगी हैं। विकेंद्रीकृत पहचान (जिसे 'स्व-संप्रभु पहचान' के रूप में भी वर्णित किया गया है) व्यक्ति को व्यक्तिगत पहचानकर्ताओं तक पहुंच को नियंत्रित करने की क्षमता देती है। अपने टैक्स आईडी या पासपोर्ट विवरण को प्रकट किए बिना अपनी नागरिकता साबित करना इस बात का एक अच्छा उदाहरण है कि शून्य-ज्ञान तकनीक विकेंद्रीकृत पहचान को कैसे सक्षम बनाती है।
कार्रवाई में ZKP + पहचान: इथेरियम पर भूटान की राष्ट्रीय डिजिटल आईडी (NDI)
पहचान प्रबंधन प्रणालियों के लिए ZKP का उपयोग करने का एक वास्तविक दुनिया का उदाहरण इथेरियम पर निर्मित भूटान साम्राज्य की राष्ट्रीय डिजिटल आईडी (NDI) प्रणाली है। भूटान का NDI नागरिकों को अपनी आईडी पर संवेदनशील व्यक्तिगत डेटा प्रकट किए बिना, "मैं एक नागरिक हूँ" या "मैं 18 वर्ष से अधिक का हूँ" जैसे अपने बारे में तथ्यों को क्रिप्टोग्राफ़िक रूप से साबित करने की अनुमति देने के लिए ZKP का उपयोग करता है।
विकेंद्रीकृत पहचान केस स्टडी में भूटान NDI के बारे में अधिक जानें।
मानवता का प्रमाण (Proof of Humanity)
आज कार्रवाई में शून्य-ज्ञान प्रमाण के सबसे व्यापक रूप से उपयोग किए जाने वाले उदाहरणों में से एक World ID प्रोटोकॉल (opens in a new tab) है, जिसे "AI के युग के लिए एक वैश्विक डिजिटल पासपोर्ट" माना जा सकता है। यह लोगों को व्यक्तिगत जानकारी प्रकट किए बिना यह साबित करने की अनुमति देता है कि वे अद्वितीय व्यक्ति हैं। यह Orb नामक उपकरण के माध्यम से प्राप्त किया जाता है, जो किसी व्यक्ति की परितारिका (iris) को स्कैन करता है और एक आईरिस कोड उत्पन्न करता है। यह पुष्टि करने के लिए आईरिस कोड की जांच और सत्यापन किया जाता है कि व्यक्ति जैविक रूप से अद्वितीय इंसान है। सत्यापन के बाद, उपयोगकर्ता के डिवाइस पर उत्पन्न एक पहचान प्रतिबद्धता (जो बायोमेट्रिक डेटा से जुड़ी या प्राप्त नहीं होती है) को ब्लॉकचेन पर एक सुरक्षित सूची में जोड़ा जाता है। फिर, जब भी उपयोगकर्ता यह साबित करना चाहता है कि वे एक सत्यापित इंसान हैं - चाहे साइन इन करना हो, वोट देना हो, या अन्य कार्रवाई करनी हो - वे एक शून्य-ज्ञान प्रमाण उत्पन्न कर सकते हैं जो सूची में उनकी सदस्यता की पुष्टि करता है। शून्य-ज्ञान प्रमाण का उपयोग करने की सुंदरता यह है कि केवल एक कथन सामने आता है: यह व्यक्ति अद्वितीय है। बाकी सब कुछ निजी रहता है।
World ID एथेरियम फाउंडेशन में PSE टीम (opens in a new tab) द्वारा विकसित Semaphore प्रोटोकॉल (opens in a new tab) पर निर्भर करता है। Semaphore को शून्य-ज्ञान प्रमाण उत्पन्न करने और सत्यापित करने के लिए एक हल्का लेकिन शक्तिशाली तरीका बनाने के लिए डिज़ाइन किया गया है। यह उपयोगकर्ताओं को यह साबित करने देता है कि वे एक समूह (इस मामले में, सत्यापित इंसान) का हिस्सा हैं, बिना यह दिखाए कि वे समूह के कौन से सदस्य हैं। Semaphore अत्यधिक लचीला भी है, जो पहचान सत्यापन, घटनाओं में भागीदारी, या क्रेडेंशियल्स के स्वामित्व जैसे मानदंडों की एक विस्तृत श्रृंखला के आधार पर समूह बनाने की अनुमति देता है।
प्रमाणीकरण (Authentication)
ऑनलाइन सेवाओं का उपयोग करने के लिए आपकी पहचान और उन प्लेटफार्मों तक पहुंचने के अधिकार को साबित करने की आवश्यकता होती है। इसके लिए अक्सर व्यक्तिगत जानकारी प्रदान करने की आवश्यकता होती है, जैसे नाम, ईमेल पते, जन्म तिथि, आदि। आपको लंबे पासवर्ड याद रखने की भी आवश्यकता हो सकती है या पहुंच खोने का जोखिम हो सकता है।
हालाँकि, शून्य-ज्ञान प्रमाण दोनों प्लेटफार्मों और उपयोगकर्ताओं के लिए प्रमाणीकरण को सरल बना सकते हैं। एक बार सार्वजनिक इनपुट (जैसे, प्लेटफ़ॉर्म की उपयोगकर्ता की सदस्यता को प्रमाणित करने वाला डेटा) और निजी इनपुट (जैसे, उपयोगकर्ता का विवरण) का उपयोग करके ZK-प्रमाण उत्पन्न हो जाने के बाद, उपयोगकर्ता सेवा तक पहुंचने की आवश्यकता होने पर अपनी पहचान प्रमाणित करने के लिए इसे आसानी से प्रस्तुत कर सकता है। यह उपयोगकर्ताओं के लिए अनुभव में सुधार करता है और संगठनों को भारी मात्रा में उपयोगकर्ता जानकारी संग्रहीत करने की आवश्यकता से मुक्त करता है।
सत्यापन योग्य गणना (Verifiable computation)
सत्यापन योग्य गणना ब्लॉकचेन डिज़ाइन में सुधार के लिए शून्य-ज्ञान तकनीक का एक और अनुप्रयोग है। सत्यापन योग्य कंप्यूटिंग हमें सत्यापन योग्य परिणामों को बनाए रखते हुए किसी अन्य इकाई को गणना आउटसोर्स करने की अनुमति देती है। इकाई एक प्रमाण के साथ परिणाम प्रस्तुत करती है जो यह सत्यापित करता है कि प्रोग्राम सही ढंग से निष्पादित किया गया था।
सुरक्षा को कम किए बिना ब्लॉकचेन पर प्रसंस्करण गति में सुधार के लिए सत्यापन योग्य गणना महत्वपूर्ण है। इसे समझने के लिए इथेरियम को स्केल करने के प्रस्तावित समाधानों में अंतर जानने की आवश्यकता है।
ऑनचेन स्केलिंग समाधान, जैसे कि शार्डिंग, को ब्लॉकचेन की बेस लेयर के व्यापक संशोधन की आवश्यकता होती है। हालाँकि, यह दृष्टिकोण अत्यधिक जटिल है और कार्यान्वयन में त्रुटियाँ इथेरियम के सुरक्षा मॉडल को कमजोर कर सकती हैं।
ऑफचेन स्केलिंग समाधानों को मुख्य इथेरियम प्रोटोकॉल को फिर से डिज़ाइन करने की आवश्यकता नहीं है। इसके बजाय वे इथेरियम की बेस लेयर पर थ्रूपुट में सुधार करने के लिए एक आउटसोर्स गणना मॉडल पर भरोसा करते हैं।
व्यवहार में यह कैसे काम करता है, यहाँ बताया गया है:
-
हर लेन-देन को संसाधित करने के बजाय, इथेरियम निष्पादन को एक अलग चेन पर ऑफलोड करता है।
-
लेन-देन को संसाधित करने के बाद, दूसरी चेन इथेरियम की स्थिति पर लागू होने वाले परिणाम लौटाती है।
यहाँ लाभ यह है कि इथेरियम को कोई निष्पादन नहीं करना पड़ता है और केवल आउटसोर्स की गई गणना के परिणामों को अपनी स्थिति पर लागू करने की आवश्यकता होती है। यह नेटवर्क की भीड़ को कम करता है और लेन-देन की गति में भी सुधार करता है (ऑफचेन प्रोटोकॉल तेज़ निष्पादन के लिए अनुकूलित होते हैं)।
चेन को ऑफचेन लेन-देन को फिर से निष्पादित किए बिना मान्य करने के तरीके की आवश्यकता होती है, अन्यथा ऑफचेन निष्पादन का मूल्य खो जाता है।
यहीं पर सत्यापन योग्य गणना काम आती है। जब कोई नोड इथेरियम के बाहर लेन-देन निष्पादित करता है, तो वह ऑफचेन निष्पादन की शुद्धता साबित करने के लिए एक शून्य-ज्ञान प्रमाण प्रस्तुत करता है। यह प्रमाण (जिसे कहा जाता है) गारंटी देता है कि एक लेन-देन वैध है, जिससे इथेरियम किसी के विवाद करने की प्रतीक्षा किए बिना परिणाम को अपनी स्थिति पर लागू कर सकता है।
शून्य-ज्ञान रोलअप्स और वैलिडियम (validiums) दो ऑफचेन स्केलिंग समाधान हैं जो सुरक्षित स्केलेबिलिटी प्रदान करने के लिए वैधता प्रमाण का उपयोग करते हैं। ये प्रोटोकॉल ऑफचेन हजारों लेन-देन निष्पादित करते हैं और इथेरियम पर सत्यापन के लिए प्रमाण प्रस्तुत करते हैं। प्रमाण सत्यापित होने के बाद उन परिणामों को तुरंत लागू किया जा सकता है, जिससे इथेरियम बेस लेयर पर गणना बढ़ाए बिना अधिक लेन-देन संसाधित कर सकता है।
लेयर 2 (l2) स्केलिंग से परे, शून्य-ज्ञान प्रमाण स्वयं इथेरियम लेयर 1 (l1) ब्लॉक निष्पादन को भी सत्यापित कर सकते हैं। L1 सत्यापन के लिए zkEVM सत्यापकों को सभी लेन-देन को फिर से निष्पादित करने के बजाय एक प्रमाण की जांच करके ब्लॉक को सत्यापित करने की अनुमति देगा - जिससे सत्यापक हार्डवेयर आवश्यकताओं को बढ़ाए बिना उच्च गैस सीमा सक्षम हो सकेगी।
ऑनचेन वोटिंग में रिश्वतखोरी और मिलीभगत को कम करना
ब्लॉकचेन वोटिंग योजनाओं में कई अनुकूल विशेषताएं हैं: वे पूरी तरह से ऑडिट करने योग्य हैं, हमलों के खिलाफ सुरक्षित हैं, सेंसरशिप के प्रतिरोधी हैं, और भौगोलिक बाधाओं से मुक्त हैं। लेकिन ऑनचेन वोटिंग योजनाएं भी मिलीभगत (collusion) की समस्या से अछूती नहीं हैं।
"दूसरों को धोखा देकर, ठगकर और गुमराह करके खुली प्रतिस्पर्धा को सीमित करने के लिए समन्वय" के रूप में परिभाषित, मिलीभगत एक दुर्भावनापूर्ण अभिनेता का रूप ले सकती है जो रिश्वत देकर मतदान को प्रभावित करता है। उदाहरण के लिए, ऐलिस को मतपत्र पर option B के लिए वोट करने के लिए बॉब से रिश्वत मिल सकती है, भले ही वह option A पसंद करती हो।
रिश्वतखोरी और मिलीभगत किसी भी प्रक्रिया की प्रभावशीलता को सीमित करती है जो सिग्नलिंग तंत्र के रूप में मतदान का उपयोग करती है (विशेषकर जहां उपयोगकर्ता यह साबित कर सकते हैं कि उन्होंने कैसे मतदान किया)। इसके महत्वपूर्ण परिणाम हो सकते हैं, खासकर जहां वोट दुर्लभ संसाधनों को आवंटित करने के लिए जिम्मेदार होते हैं।
उदाहरण के लिए, द्विघात वित्तपोषण तंत्र (opens in a new tab) विभिन्न सार्वजनिक वस्तु परियोजनाओं के बीच कुछ विकल्पों के लिए प्राथमिकता को मापने के लिए दान पर निर्भर करते हैं। प्रत्येक दान एक विशिष्ट परियोजना के लिए "वोट" के रूप में गिना जाता है, जिन परियोजनाओं को अधिक वोट मिलते हैं उन्हें मैचिंग पूल से अधिक धन मिलता है।
ऑनचेन वोटिंग का उपयोग करने से द्विघात वित्तपोषण मिलीभगत के प्रति संवेदनशील हो जाता है: ब्लॉकचेन लेन-देन सार्वजनिक होते हैं, इसलिए रिश्वत देने वाले यह देखने के लिए रिश्वत लेने वाले की ऑनचेन गतिविधि का निरीक्षण कर सकते हैं कि उन्होंने कैसे "वोट" दिया। इस तरह द्विघात वित्तपोषण समुदाय की एकत्रित प्राथमिकताओं के आधार पर धन आवंटित करने का एक प्रभावी साधन नहीं रह जाता है।
सौभाग्य से, MACI (Minimum Anti-Collusion Infrastructure) जैसे नए समाधान ऑनचेन वोटिंग (जैसे, द्विघात वित्तपोषण तंत्र) को रिश्वतखोरी और मिलीभगत के प्रतिरोधी बनाने के लिए शून्य-ज्ञान प्रमाण का उपयोग कर रहे हैं। MACI स्मार्ट अनुबंधों और स्क्रिप्ट्स का एक सेट है जो एक केंद्रीय प्रशासक (जिसे "समन्वयक" कहा जाता है) को प्रत्येक व्यक्ति ने कैसे मतदान किया, इस पर विवरण प्रकट किए बिना वोटों को एकत्र करने और परिणामों की गणना करने की अनुमति देता है। फिर भी, यह सत्यापित करना अभी भी संभव है कि वोटों की सही ढंग से गणना की गई थी, या यह पुष्टि करना कि किसी विशेष व्यक्ति ने मतदान के दौर में भाग लिया था।
MACI शून्य-ज्ञान प्रमाण के साथ कैसे काम करता है?
शुरुआत में, समन्वयक इथेरियम पर MACI अनुबंध तैनात करता है, जिसके बाद उपयोगकर्ता मतदान के लिए साइन अप कर सकते हैं (स्मार्ट अनुबंध में अपनी सार्वजनिक कुंजी दर्ज करके)। उपयोगकर्ता स्मार्ट अनुबंध को अपनी सार्वजनिक कुंजी के साथ एन्क्रिप्ट किए गए संदेश भेजकर वोट डालते हैं (एक वैध वोट को अन्य मानदंडों के साथ उपयोगकर्ता की पहचान से जुड़ी सबसे हालिया सार्वजनिक कुंजी के साथ हस्ताक्षरित किया जाना चाहिए)। बाद में, मतदान अवधि समाप्त होने के बाद समन्वयक सभी संदेशों को संसाधित करता है, वोटों की गणना करता है, और ऑनचेन परिणामों को सत्यापित करता है।
MACI में, समन्वयक के लिए वोटों को गलत तरीके से संसाधित करना और परिणामों की गणना करना असंभव बनाकर गणना की शुद्धता सुनिश्चित करने के लिए शून्य-ज्ञान प्रमाण का उपयोग किया जाता है। यह समन्वयक को ज़ीके-स्नार्क प्रमाण उत्पन्न करने की आवश्यकता के द्वारा प्राप्त किया जाता है जो यह सत्यापित करता है कि a) सभी संदेशों को सही ढंग से संसाधित किया गया था b) अंतिम परिणाम सभी वैध वोटों के योग से मेल खाता है।
इस प्रकार, प्रति उपयोगकर्ता वोटों का विवरण साझा किए बिना (जैसा कि आमतौर पर होता है), MACI गणना प्रक्रिया के दौरान गणना किए गए परिणामों की अखंडता की गारंटी देता है। यह सुविधा बुनियादी मिलीभगत योजनाओं की प्रभावशीलता को कम करने में उपयोगी है। हम बॉब द्वारा ऐलिस को एक विकल्प के लिए वोट करने के लिए रिश्वत देने के पिछले उदाहरण का उपयोग करके इस संभावना का पता लगा सकते हैं:
- ऐलिस एक स्मार्ट अनुबंध को अपनी सार्वजनिक कुंजी भेजकर मतदान करने के लिए पंजीकरण करती है।
- ऐलिस बॉब से रिश्वत के बदले
option Bके लिए वोट करने के लिए सहमत होती है। - ऐलिस
option Bके लिए वोट करती है। - ऐलिस अपनी पहचान से जुड़ी सार्वजनिक कुंजी को बदलने के लिए गुप्त रूप से एक एन्क्रिप्टेड लेन-देन भेजती है।
- ऐलिस नई सार्वजनिक कुंजी का उपयोग करके
option Aके लिए मतदान करते हुए स्मार्ट अनुबंध को एक और (एन्क्रिप्टेड) संदेश भेजती है। - ऐलिस बॉब को एक लेन-देन दिखाती है जो दर्शाता है कि उसने
option Bके लिए वोट किया था (जो अमान्य है क्योंकि सार्वजनिक कुंजी अब सिस्टम में ऐलिस की पहचान से जुड़ी नहीं है) - संदेशों को संसाधित करते समय, समन्वयक
option Bके लिए ऐलिस के वोट को छोड़ देता है और केवलoption Aके लिए वोट गिनता है। इसलिए, ऐलिस के साथ मिलीभगत करने और ऑनचेन वोट में हेरफेर करने का बॉब का प्रयास विफल हो जाता है।
MACI का उपयोग करने के लिए समन्वयक पर भरोसा करने की आवश्यकता होती है कि वह रिश्वत देने वालों के साथ मिलीभगत न करे या स्वयं मतदाताओं को रिश्वत देने का प्रयास न करे। समन्वयक उपयोगकर्ता संदेशों को डिक्रिप्ट कर सकता है (प्रमाण बनाने के लिए आवश्यक), ताकि वे सटीक रूप से सत्यापित कर सकें कि प्रत्येक व्यक्ति ने कैसे मतदान किया।
लेकिन ऐसे मामलों में जहां समन्वयक ईमानदार रहता है, MACI ऑनचेन वोटिंग की पवित्रता की गारंटी देने के लिए एक शक्तिशाली उपकरण का प्रतिनिधित्व करता है। यह द्विघात वित्तपोषण अनुप्रयोगों (जैसे, clr.fund (opens in a new tab)) के बीच इसकी लोकप्रियता की व्याख्या करता है जो प्रत्येक व्यक्ति के मतदान विकल्पों की अखंडता पर बहुत अधिक निर्भर करते हैं।
MACI के बारे में अधिक जानें (opens in a new tab)।
शून्य-ज्ञान प्रमाण कैसे काम करते हैं?
एक शून्य-ज्ञान प्रमाण आपको कथन की सामग्री को साझा किए बिना या यह बताए बिना कि आपने सच्चाई की खोज कैसे की, किसी कथन की सच्चाई साबित करने की अनुमति देता है। इसे संभव बनाने के लिए, शून्य-ज्ञान प्रोटोकॉल उन एल्गोरिदम पर निर्भर करते हैं जो कुछ डेटा को इनपुट के रूप में लेते हैं और आउटपुट के रूप में 'सही' या 'गलत' लौटाते हैं।
एक शून्य-ज्ञान प्रोटोकॉल को निम्नलिखित मानदंडों को पूरा करना चाहिए:
-
पूर्णता (Completeness): यदि इनपुट मान्य है, तो शून्य-ज्ञान प्रोटोकॉल हमेशा 'सही' लौटाता है। इसलिए, यदि अंतर्निहित कथन सत्य है, और प्रमाणक और सत्यापनकर्ता ईमानदारी से कार्य करते हैं, तो प्रमाण स्वीकार किया जा सकता है।
-
सुदृढ़ता (Soundness): यदि इनपुट अमान्य है, तो शून्य-ज्ञान प्रोटोकॉल को 'सही' लौटाने के लिए मूर्ख बनाना सैद्धांतिक रूप से असंभव है। इसलिए, एक झूठ बोलने वाला प्रमाणक एक ईमानदार सत्यापनकर्ता को यह विश्वास दिलाने के लिए धोखा नहीं दे सकता है कि एक अमान्य कथन मान्य है (संभावना के एक छोटे से मार्जिन को छोड़कर)।
-
शून्य-ज्ञान (Zero-knowledge): सत्यापनकर्ता किसी कथन की वैधता या असत्यता से परे उसके बारे में कुछ नहीं सीखता है (उन्हें कथन का "शून्य ज्ञान" होता है)। यह आवश्यकता सत्यापनकर्ता को प्रमाण से मूल इनपुट (कथन की सामग्री) प्राप्त करने से भी रोकती है।
मूल रूप में, एक शून्य-ज्ञान प्रमाण तीन तत्वों से बना होता है: साक्षी (witness), चुनौती (challenge), और प्रतिक्रिया (response)।
-
साक्षी: शून्य-ज्ञान प्रमाण के साथ, प्रमाणक कुछ छिपी हुई जानकारी का ज्ञान साबित करना चाहता है। गुप्त जानकारी प्रमाण की "साक्षी" है, और साक्षी के बारे में प्रमाणक का माना गया ज्ञान प्रश्नों का एक सेट स्थापित करता है जिसका उत्तर केवल उस पक्ष द्वारा दिया जा सकता है जिसे जानकारी का ज्ञान हो। इस प्रकार, प्रमाणक यादृच्छिक रूप से एक प्रश्न चुनकर, उत्तर की गणना करके और उसे सत्यापनकर्ता को भेजकर प्रमाणन प्रक्रिया शुरू करता है।
-
चुनौती: सत्यापनकर्ता यादृच्छिक रूप से सेट से एक और प्रश्न चुनता है और प्रमाणक को उसका उत्तर देने के लिए कहता है।
-
प्रतिक्रिया: प्रमाणक प्रश्न स्वीकार करता है, उत्तर की गणना करता है, और इसे सत्यापनकर्ता को लौटाता है। प्रमाणक की प्रतिक्रिया सत्यापनकर्ता को यह जांचने की अनुमति देती है कि क्या वास्तव में पहले वाले की साक्षी तक पहुंच है। यह सुनिश्चित करने के लिए कि प्रमाणक आँख बंद करके अनुमान नहीं लगा रहा है और संयोग से सही उत्तर प्राप्त कर रहा है, सत्यापनकर्ता पूछने के लिए और प्रश्न चुनता है। इस बातचीत को कई बार दोहराने से, प्रमाणक द्वारा साक्षी के ज्ञान का दिखावा करने की संभावना काफी कम हो जाती है जब तक कि सत्यापनकर्ता संतुष्ट न हो जाए।
उपरोक्त एक 'इंटरैक्टिव शून्य-ज्ञान प्रमाण' की संरचना का वर्णन करता है। शुरुआती शून्य-ज्ञान प्रोटोकॉल इंटरैक्टिव प्रमाणन का उपयोग करते थे, जहां किसी कथन की वैधता को सत्यापित करने के लिए प्रमाणकों और सत्यापनकर्ताओं के बीच आगे-पीछे संचार की आवश्यकता होती थी।
एक अच्छा उदाहरण जो यह दर्शाता है कि इंटरैक्टिव प्रमाण कैसे काम करते हैं, वह जीन-जैक्स क्विस्क्वाटर की प्रसिद्ध अली बाबा गुफा की कहानी (opens in a new tab) है। कहानी में, पैगी (प्रमाणक) विक्टर (सत्यापनकर्ता) को यह साबित करना चाहती है कि वह वाक्यांश को प्रकट किए बिना एक जादुई दरवाजा खोलने के लिए गुप्त वाक्यांश जानती है।
गैर-इंटरैक्टिव शून्य-ज्ञान प्रमाण
हालांकि क्रांतिकारी, इंटरैक्टिव प्रमाणन की सीमित उपयोगिता थी क्योंकि इसके लिए दोनों पक्षों को उपलब्ध होने और बार-बार बातचीत करने की आवश्यकता थी। भले ही एक सत्यापनकर्ता एक प्रमाणक की ईमानदारी के प्रति आश्वस्त हो, प्रमाण स्वतंत्र सत्यापन के लिए अनुपलब्ध होगा (एक नए प्रमाण की गणना के लिए प्रमाणक और सत्यापनकर्ता के बीच संदेशों के एक नए सेट की आवश्यकता होती है)।
इस समस्या को हल करने के लिए, मैनुअल ब्लम, पॉल फेल्डमैन और सिल्वियो मिकाली ने पहले गैर-इंटरैक्टिव शून्य-ज्ञान प्रमाण (opens in a new tab) का सुझाव दिया जहां प्रमाणक और सत्यापनकर्ता के पास एक साझा कुंजी होती है। यह प्रमाणक को स्वयं जानकारी प्रदान किए बिना कुछ जानकारी (यानी, साक्षी) के अपने ज्ञान को प्रदर्शित करने की अनुमति देता है।
इंटरैक्टिव प्रमाणों के विपरीत, गैर-इंटरैक्टिव प्रमाणों में प्रतिभागियों (प्रमाणक और सत्यापनकर्ता) के बीच संचार के केवल एक दौर की आवश्यकता होती है। प्रमाणक शून्य-ज्ञान प्रमाण की गणना करने के लिए एक विशेष एल्गोरिदम को गुप्त जानकारी पास करता है। यह प्रमाण सत्यापनकर्ता को भेजा जाता है, जो जांचता है कि प्रमाणक किसी अन्य एल्गोरिदम का उपयोग करके गुप्त जानकारी जानता है।
गैर-इंटरैक्टिव प्रमाणन प्रमाणक और सत्यापनकर्ता के बीच संचार को कम करता है, जिससे ZK-प्रमाण अधिक कुशल हो जाते हैं। इसके अलावा, एक बार प्रमाण उत्पन्न हो जाने के बाद, यह किसी और के लिए (साझा कुंजी और सत्यापन एल्गोरिदम तक पहुंच के साथ) सत्यापित करने के लिए उपलब्ध होता है।
गैर-इंटरैक्टिव प्रमाणों ने शून्य-ज्ञान तकनीक के लिए एक सफलता का प्रतिनिधित्व किया और आज उपयोग की जाने वाली प्रमाणन प्रणालियों के विकास को प्रेरित किया। हम नीचे इन प्रमाण प्रकारों पर चर्चा करते हैं:
शून्य-ज्ञान प्रमाण के प्रकार
ज़ीके-स्नार्क (ZK-SNARKs)
ज़ीके-स्नार्क (ZK-SNARK) Zero-Knowledge Succinct Non-Interactive Argument of Knowledge का संक्षिप्त रूप है। ज़ीके-स्नार्क प्रोटोकॉल में निम्नलिखित गुण हैं:
-
शून्य-ज्ञान (Zero-knowledge): एक सत्यापनकर्ता कथन के बारे में कुछ और जाने बिना किसी कथन की अखंडता को मान्य कर सकता है। सत्यापनकर्ता को कथन का एकमात्र ज्ञान यह है कि यह सत्य है या गलत।
-
संक्षिप्त (Succinct): शून्य-ज्ञान प्रमाण साक्षी से छोटा होता है और इसे जल्दी से सत्यापित किया जा सकता है।
-
गैर-इंटरैक्टिव (Non-interactive): प्रमाण 'गैर-इंटरैक्टिव' है क्योंकि प्रमाणक और सत्यापनकर्ता केवल एक बार बातचीत करते हैं, इंटरैक्टिव प्रमाणों के विपरीत जिन्हें संचार के कई दौर की आवश्यकता होती है।
-
तर्क (Argument): प्रमाण 'सुदृढ़ता' आवश्यकता को पूरा करता है, इसलिए धोखाधड़ी की संभावना बहुत कम है।
-
ज्ञान का (Of Knowledge): गुप्त जानकारी (साक्षी) तक पहुंच के बिना शून्य-ज्ञान प्रमाण का निर्माण नहीं किया जा सकता है। एक प्रमाणक जिसके पास साक्षी नहीं है, उसके लिए एक वैध शून्य-ज्ञान प्रमाण की गणना करना मुश्किल है, यदि असंभव नहीं है।
पहले उल्लिखित 'साझा कुंजी' सार्वजनिक मापदंडों को संदर्भित करती है जिन्हें प्रमाणक और सत्यापनकर्ता प्रमाण उत्पन्न करने और सत्यापित करने में उपयोग करने के लिए सहमत होते हैं। सार्वजनिक मापदंडों (सामूहिक रूप से कॉमन रेफरेंस स्ट्रिंग (CRS) के रूप में जाना जाता है) को उत्पन्न करना प्रोटोकॉल की सुरक्षा में इसके महत्व के कारण एक संवेदनशील ऑपरेशन है। यदि CRS उत्पन्न करने में उपयोग की जाने वाली एन्ट्रोपी (यादृच्छिकता) किसी बेईमान प्रमाणक के हाथों में पड़ जाती है, तो वे झूठे प्रमाणों की गणना कर सकते हैं।
मल्टी-पार्टी कंप्यूटेशन (MPC) (opens in a new tab) सार्वजनिक मापदंडों को उत्पन्न करने में जोखिम को कम करने का एक तरीका है। कई पक्ष एक विश्वसनीय सेटअप समारोह (opens in a new tab) में भाग लेते हैं, जहां प्रत्येक व्यक्ति CRS उत्पन्न करने के लिए कुछ यादृच्छिक मानों का योगदान देता है। जब तक एक ईमानदार पक्ष एन्ट्रोपी के अपने हिस्से को नष्ट कर देता है, तब तक ज़ीके-स्नार्क प्रोटोकॉल कम्प्यूटेशनल सुदृढ़ता बरकरार रखता है।
विश्वसनीय सेटअप के लिए उपयोगकर्ताओं को पैरामीटर-जनरेशन में प्रतिभागियों पर भरोसा करने की आवश्यकता होती है। हालाँकि, ज़ेडके-स्टार्क के विकास ने ऐसे प्रमाणन प्रोटोकॉल को सक्षम किया है जो गैर-विश्वसनीय सेटअप के साथ काम करते हैं।
ज़ेडके-स्टार्क (ZK-STARKs)
ज़ेडके-स्टार्क (ZK-STARK) Zero-Knowledge Scalable Transparent Argument of Knowledge का संक्षिप्त रूप है। ज़ेडके-स्टार्क ज़ीके-स्नार्क के समान हैं, सिवाय इसके कि वे हैं:
-
स्केलेबल (Scalable): जब साक्षी का आकार बड़ा होता है तो ज़ेडके-स्टार्क प्रमाण उत्पन्न करने और सत्यापित करने में ज़ीके-स्नार्क की तुलना में तेज़ होता है। STARK प्रमाणों के साथ, साक्षी के बढ़ने पर प्रमाणक और सत्यापन का समय केवल थोड़ा बढ़ता है (SNARK प्रमाणक और सत्यापनकर्ता का समय साक्षी के आकार के साथ रैखिक रूप से बढ़ता है)।
-
पारदर्शी (Transparent): ज़ेडके-स्टार्क एक विश्वसनीय सेटअप के बजाय प्रमाणन और सत्यापन के लिए सार्वजनिक मापदंडों को उत्पन्न करने के लिए सार्वजनिक रूप से सत्यापन योग्य यादृच्छिकता पर निर्भर करता है। इस प्रकार, वे ज़ीके-स्नार्क की तुलना में अधिक पारदर्शी हैं।
ज़ेडके-स्टार्क ज़ीके-स्नार्क की तुलना में बड़े प्रमाण उत्पन्न करते हैं जिसका अर्थ है कि उनके पास आम तौर पर उच्च सत्यापन ओवरहेड होते हैं। हालाँकि, ऐसे मामले हैं (जैसे बड़े डेटासेट साबित करना) जहाँ ज़ेडके-स्टार्क ज़ीके-स्नार्क की तुलना में अधिक लागत प्रभावी हो सकते हैं।
शून्य-ज्ञान प्रमाण का उपयोग करने की कमियां
हार्डवेयर लागत
शून्य-ज्ञान प्रमाण उत्पन्न करने में बहुत जटिल गणनाएँ शामिल होती हैं जो विशेष मशीनों पर सबसे अच्छी तरह से की जाती हैं। चूंकि ये मशीनें महंगी हैं, इसलिए ये अक्सर नियमित व्यक्तियों की पहुंच से बाहर होती हैं। इसके अतिरिक्त, जो एप्लिकेशन शून्य-ज्ञान तकनीक का उपयोग करना चाहते हैं, उन्हें हार्डवेयर लागतों को ध्यान में रखना चाहिए - जिससे अंतिम उपयोगकर्ताओं के लिए लागत बढ़ सकती है।
प्रमाण सत्यापन लागत
प्रमाणों को सत्यापित करने के लिए भी जटिल गणना की आवश्यकता होती है और अनुप्रयोगों में शून्य-ज्ञान तकनीक को लागू करने की लागत बढ़ जाती है। यह लागत गणना साबित करने के संदर्भ में विशेष रूप से प्रासंगिक है। उदाहरण के लिए, शून्य-ज्ञान रोलअप्स इथेरियम पर एक एकल ज़ीके-स्नार्क प्रमाण को सत्यापित करने के लिए ~ 500,000 गैस का भुगतान करते हैं, जिसमें ज़ेडके-स्टार्क को और भी अधिक शुल्क की आवश्यकता होती है।
विश्वास मान्यताएँ
ज़ीके-स्नार्क में, कॉमन रेफरेंस स्ट्रिंग (सार्वजनिक पैरामीटर) एक बार उत्पन्न होता है और उन पक्षों के लिए पुन: उपयोग के लिए उपलब्ध होता है जो शून्य-ज्ञान प्रोटोकॉल में भाग लेना चाहते हैं। सार्वजनिक पैरामीटर एक विश्वसनीय सेटअप समारोह के माध्यम से बनाए जाते हैं, जहां प्रतिभागियों को ईमानदार माना जाता है।
लेकिन उपयोगकर्ताओं के लिए प्रतिभागियों की ईमानदारी का आकलन करने का वास्तव में कोई तरीका नहीं है और उपयोगकर्ताओं को डेवलपर्स की बात माननी पड़ती है। ज़ेडके-स्टार्क विश्वास मान्यताओं से मुक्त हैं क्योंकि स्ट्रिंग उत्पन्न करने में उपयोग की जाने वाली यादृच्छिकता सार्वजनिक रूप से सत्यापन योग्य है। इस बीच, शोधकर्ता प्रमाणन तंत्र की सुरक्षा बढ़ाने के लिए ज़ीके-स्नार्क के लिए गैर-विश्वसनीय सेटअप पर काम कर रहे हैं।
क्वांटम कंप्यूटिंग खतरे
ज़ीके-स्नार्क एन्क्रिप्शन के लिए दीर्घवृत्तीय वक्र क्रिप्टोग्राफी का उपयोग करता है। जबकि दीर्घवृत्तीय वक्र असतत लघुगणक समस्या को अभी के लिए कठिन माना जाता है, क्वांटम कंप्यूटर का विकास भविष्य में इस सुरक्षा मॉडल को तोड़ सकता है।
ज़ेडके-स्टार्क को क्वांटम कंप्यूटिंग के खतरे से प्रतिरक्षित माना जाता है, क्योंकि यह अपनी सुरक्षा के लिए केवल टकराव-प्रतिरोधी हैश फ़ंक्शंस पर निर्भर करता है। दीर्घवृत्तीय वक्र क्रिप्टोग्राफी में उपयोग किए जाने वाले सार्वजनिक-निजी कुंजी युग्मों के विपरीत, क्वांटम कंप्यूटिंग एल्गोरिदम के लिए टकराव-प्रतिरोधी हैशिंग को तोड़ना अधिक कठिन है।
आगे की पढ़ाई
- शून्य-ज्ञान प्रमाण के उपयोग के मामलों का अवलोकन (opens in a new tab) — Privacy and Scaling Explorations Team
- SNARKs बनाम STARKS बनाम Recursive SNARKs (opens in a new tab) — Alchemy Overviews
- एक शून्य-ज्ञान प्रमाण: ब्लॉकचेन पर गोपनीयता में सुधार (opens in a new tab) — Dmitry Lavrenov
- zk-SNARKs — एक यथार्थवादी शून्य-ज्ञान उदाहरण और डीप डाइव (opens in a new tab) — Adam Luciano
- ZK-STARKs — क्वांटम कंप्यूटर के खिलाफ भी सत्यापन योग्य विश्वास बनाएं (opens in a new tab) — Adam Luciano
- zk-SNARKs कैसे संभव हैं, इसका एक अनुमानित परिचय (opens in a new tab) — Vitalik Buterin
- शून्य-ज्ञान प्रमाण (ZKPs) स्व-संप्रभु पहचान के लिए गेम चेंजर क्यों हैं (opens in a new tab) — Franklin Ohaegbulam
- EIP-7503 समझाया गया: ZK प्रमाण के साथ इथेरियम पर निजी हस्तांतरण सक्षम करना (opens in a new tab) — Emmanuel Awosika
- ZK कार्ड गेम: ZK बुनियादी बातों और वास्तविक जीवन के उपयोग के मामलों को सीखने के लिए गेम (opens in a new tab) - ZK-Cards
पेज का अंतिम अपडेट: 6 जून 2026