परफेक्ट बनाम कंप्यूटेशनल ज़ीरो-नॉलेज: इस अंतर का वास्तव में क्या अर्थ है
ज़ीरो-नॉलेज प्रूफ़ तीन प्रकार के होते हैं—परफेक्ट, स्टैटिस्टिकल और कंप्यूटेशनल—और यह अंतर अधिकांश इंजीनियरिंग चर्चाओं की तुलना में कहीं अधिक मायने रखता है। यह पोस्ट सरल भाषा में प्रत्येक प्रकार को समझाती है कि क्यों 2026 में लगभग हर प्रोडक्शन ZK सिस्टम कंप्यूटेशनल है, और इसके क्या फायदे और नुकसान हैं।
- cryptography
- zero-knowledge
- zk-snark
- theory

जब क्रिप्टो क्षेत्र में लोग "ज़ीरो-नॉलेज प्रूफ़" (zero-knowledge proofs) की बात करते हैं, तो उनका मतलब लगभग हमेशा एक विशिष्ट चीज़ से होता है: एक SNARK या STARK जो यह साबित करता है कि कोई संगणना (computation) सही ढंग से की गई थी, वह भी इनपुट को उजागर किए बिना। अधिकांश इंजीनियरिंग चर्चाओं के लिए यह मानसिक मॉडल ठीक है। लेकिन यह एक ऐसे अंतर को छिपा देता है जो उस क्षण महत्वपूर्ण हो जाता है जब आप इस बारे में विचार करने का प्रयास करते हैं कि वास्तव में सुरक्षा किस चीज़ की गारंटी देती है।
ज़ीरो-नॉलेज प्रूफ़ औपचारिक रूप से तीन प्रकार के होते हैं—परफेक्ट (perfect), स्टैटिस्टिकल (statistical), और कंप्यूटेशनल (computational) ज़ीरो-नॉलेज—और वे इस बात में भिन्न होते हैं कि असीमित संसाधन होने पर भी वेरिफायर (सत्यापनकर्ता) क्या सीख सकता है। जो सिस्टम आप डिप्लॉय करते हैं वह लगभग निश्चित रूप से कंप्यूटेशनल है। यह जानना महत्वपूर्ण है कि ऐसा क्यों है, और इससे आपको क्या मिलता है।
एक ज़ीरो-नॉलेज प्रूफ़ का स्वरूप
क्लासिकल सेटअप: एक प्रूवर (सिद्ध करने वाला) एक वेरिफायर (सत्यापनकर्ता) को यह विश्वास दिलाना चाहता है कि कोई कथन सत्य है, और वेरिफायर को इसके अलावा कुछ और पता न चले। यहाँ "सत्य" का अर्थ कुछ ऐसा है जैसे "मैं एक ऐसा x जानता हूँ जिसके लिए H(x) = y" या "मुझे इस ग्राफ में एक रास्ता पता है" या "मैंने इस प्रोग्राम को प्राइवेट इनपुट्स पर सही ढंग से निष्पादित किया है।"
अनौपचारिक रूप से, एक प्रूफ़ सिस्टम ज़ीरो-नॉलेज तब होता है, जब वेरिफायर गुप्त जानकारी के बिना स्वयं प्रूफ़ उत्पन्न कर सकता था। औपचारिक रूप से, इसे एक सिम्युलेटर (simulator) के अस्तित्व द्वारा परिभाषित किया जाता है: एक पॉलिनॉमियल-टाइम (polynomial-time) एल्गोरिथम जो केवल सार्वजनिक कथन (बिना विटनेस/गवाह के) दिए जाने पर एक ऐसा ट्रांसक्रिप्ट उत्पन्न करता है जिसे असली प्रूफ़ ट्रांसक्रिप्ट से अलग नहीं किया जा सकता।
ज़ीरो-नॉलेज के तीनों प्रकार इस बात में भिन्न हैं कि "अलग न किए जा सकने" (looks indistinguishable) का क्या अर्थ है।
परफेक्ट ज़ीरो-नॉलेज (Perfect zero-knowledge)
सिम्युलेटर का आउटपुट असली प्रूफ़ के बिल्कुल समान रूप से वितरित (identically distributed) होता है। ऐसा कोई सांख्यिकीय परीक्षण नहीं है, कोई परीक्षण नहीं है जिसे आप क्वांटम कंप्यूटर के साथ चला सकते हैं, कोई परीक्षण नहीं है जिसे आप 10^100 वर्षों में चला सकते हैं, जो सिम्युलेटर को असली प्रूवर से अलग कर सके। गणितीय रूप से, दोनों वितरण (distributions) समान हैं।
यह गोल्ड स्टैंडर्ड है। यह कहता है: यहां तक कि एक असीमित क्षमता वाला हमलावर (unbounded adversary)—जिसके पास कोई समय सीमा न हो, कोई कंप्यूटेशनल धारणा (computational assumption) न हो—वह भी इस प्रूफ़ से कुछ नहीं सीखता है।
स्टैटिस्टिकल ज़ीरो-नॉलेज (Statistical zero-knowledge)
सिम्युलेटर का आउटपुट असली प्रूफ़ के सांख्यिकीय रूप से करीब (statistically close) होता है। दोनों वितरणों के बीच कुल भिन्नता दूरी (total variation distance) नगण्य होती है। सिद्धांत रूप में, एक असीमित क्षमता वाला हमलावर कुछ सीख सकता है, लेकिन वे जो सीख सकते हैं उसकी मात्रा सुरक्षा पैरामीटर के साथ तेजी से (exponentially) घट जाती है।
सभी व्यावहारिक उद्देश्यों के लिए स्टैटिस्टिकल ZK, परफेक्ट ZK के समान ही अच्छा है। सिम्युलेटर को बस असली वितरण से पूरी तरह मेल खाने की आवश्यकता नहीं होती है; इसे बस इतना करीब होना चाहिए कि कंप्यूटिंग का कोई भी स्तर इस अंतर को बढ़ा न सके।
कंप्यूटेशनल ज़ीरो-नॉलेज (Computational zero-knowledge)
सिम्युलेटर का आउटपुट असली प्रूफ़ से कम्प्यूटेशनली इंडिस्टिंगुइशेबल (computationally indistinguishable) होता है: कोई भी पॉलिनॉमियल-टाइम एल्गोरिथम इन दोनों के बीच अंतर नहीं बता सकता। एक असीमित क्षमता वाला हमलावर—जिसके पास अंतर्निहित हैश फ़ंक्शन को ब्रूट-फोर्स करने या अंतर्निहित कठिन समस्या को हल करने की क्षमता हो—वह निश्चित रूप से इनके बीच अंतर करने में सक्षम हो सकता है, और गुप्त विटनेस का पता लगा सकता है।
औपचारिक अर्थ में यह तीनों में से सबसे कमज़ोर है, और लगभग हर आधुनिक सिस्टम वास्तव में यही प्रदान करता है।
क्यों लगभग हर प्रोडक्शन ZK सिस्टम कंप्यूटेशनल है
इसके पीछे एक प्रमेय (theorem) छिपा है: NP-कम्प्लीट (NP-complete) भाषाओं के लिए, परफेक्ट ज़ीरो-नॉलेज के अस्तित्व की संभावना नहीं है जब तक कि पॉलिनॉमियल पदानुक्रम (polynomial hierarchy) ढह न जाए (Goldreich and Krawczyk, 1996)। दूसरे शब्दों में, यदि आप आर्बिट्रेरी (arbitrary) कथनों को ज़ीरो-नॉलेज में साबित करना चाहते हैं—"मैंने इस प्रोग्राम को सही ढंग से चलाया" जैसे स्पष्ट कथन—तो आप प्रूफ़ को स्वयं अप्रमाणित जटिलता मान्यताओं (unproven complexity assumptions) पर निर्भर किए बिना परफेक्ट ज़ीरो-नॉलेज प्राप्त नहीं कर सकते।
आर्बिट्रेरी NP कथनों के लिए आप जो प्राप्त कर सकते हैं:
- कंप्यूटेशनल ज़ीरो-नॉलेज प्रूफ़, जो तब अस्तित्व में आते हैं जब वन-वे फ़ंक्शन (one-way functions) मौजूद हों। (Goldreich, Micali, Wigderson 1991।)
- कथनों के सीमित वर्गों के लिए स्टैटिस्टिकल ज़ीरो-नॉलेज (जैसे रैंडम सेल्फ-रिड्यूसिबल समस्याएं, ग्राफ आइसोमॉर्फिज्म), लेकिन सामान्य NP के लिए नहीं।
इसलिए जब कोई वास्तविक सिस्टम—Groth16, PLONK, Halo2, STARK, Bulletproofs—यह कहता है कि यह "ज़ीरो-नॉलेज" है, तो इसका मतलब लगभग हमेशा कंप्यूटेशनल ज़ीरो-नॉलेज होता है। प्रूफ़ एक पॉलिनॉमियल-टाइम वेरिफायर को कुछ भी उजागर नहीं करता है, जो कि एलिप्टिक कर्व्स (elliptic curves), हैश फंक्शंस, या अन्य क्रिप्टोग्राफिक प्रिमिटिव्स के बारे में धारणाओं पर सशर्त है।
यदि वे धारणाएं टूट जाती हैं—मान लीजिए, भविष्य का कोई एल्गोरिथम किसी ऐसे कर्व पर डिस्क्रीट लॉग (discrete log) की समस्या को तोड़ देता है जिस पर कोई योजना निर्भर करती है—तो ज़ीरो-नॉलेज तर्क पूर्वव्यापी (retroactively) रूप से कमजोर हो सकता है। वास्तव में क्या संभव हो जाता है यह निर्माण (construction) पर निर्भर करता है: एक हमलावर असली ट्रांसक्रिप्ट्स को नकली (simulated) से अलग करने, प्रूफ़्स को जाली बनाने, या पहले संरक्षित जानकारी निकालने में सक्षम हो सकता है। आपको यह नहीं मान लेना चाहिए कि पुरानी कंप्यूटेशनल-ZK ट्रांसक्रिप्ट्स अपनी अंतर्निहित मान्यताओं के विफल होने के बाद भी वही प्राइवेसी मार्जिन बनाए रखती हैं।
एक व्यावहारिक उदाहरण: कमिटमेंट स्कीम्स (Commitment schemes)
कमिटमेंट स्कीम्स इस अंतर को स्पष्ट बनाती हैं।
एक कमिटमेंट (Commitment) मोटे तौर पर ऐसा है: "मैं एक मूल्य v को एक सीलबंद लिफाफे c में लॉक करता हूं, आपको लिफाफा सौंपता हूं, और बाद में v को प्रकट करता हूं। आप सत्यापित कर सकते हैं कि मैंने मूल मूल्य प्रकट किया है, लेकिन मेरे प्रकट करने से पहले आप v को नहीं देख सकते।"
दो सुरक्षा विशेषताएँ हैं:
- हाइडिंग (Hiding) — लिफाफा
vके बारे में कुछ भी प्रकट नहीं करता है। - बाइंडिंग (Binding) — मैं लिफाफे को उस मूल्य के अलावा किसी अन्य मूल्य के लिए नहीं खोल सकता जिस पर मैंने मूल रूप से कमिट किया था।
आप दोनों को पूरी तरह (perfectly) प्राप्त नहीं कर सकते। एक परफेक्टली हाइडिंग कमिटमेंट कम्प्यूटेशनली बाइंडिंग होता है (पर्याप्त संगणना के साथ, एक हमलावर दूसरी ओपनिंग ढूंढ सकता है)। एक परफेक्टली बाइंडिंग कमिटमेंट कम्प्यूटेशनली हाइडिंग होता है (पर्याप्त संगणना के साथ, एक हमलावर कमिट किए गए मूल्य को निकाल सकता है)।
पेडेरसन कमिटमेंट्स (Pedersen commitments) परफेक्टली हाइडिंग और कम्प्यूटेशनली बाइंडिंग होते हैं—वे असीमित क्षमता वाले हमलावर के सामने भी कमिट किए गए मूल्य के बारे में कुछ भी प्रकट नहीं करते हैं, लेकिन भविष्य में डिस्क्रीट लॉग (discrete log) के टूटने से आप बाइंडिंग में धोखा दे सकते हैं। हैश-आधारित कमिटमेंट्स (c = H(v || r)) कम्प्यूटेशनली हाइडिंग और (जब हैश टकराव-प्रतिरोधी यानी collision-resistant हो) कम्प्यूटेशनली बाइंडिंग होते हैं।
आप कौन सा प्रकार चाहते हैं यह इस बात पर निर्भर करता है कि समय के साथ किस विशेषता को कमज़ोर होने दिया जा सकता है। वोट या बोली की दीर्घकालिक गोपनीयता के लिए, आप आमतौर पर परफेक्ट हाइडिंग चाहते हैं, भले ही बाइंडिंग केवल कंप्यूटेशनल हो—क्योंकि डिस्क्रीट-लॉग धारणा के टूटने से पहले आप बाइंडिंग को फिर से साबित कर सकते हैं, लेकिन आप किसी लीक हुए वोट को पूर्वव्यापी रूप से अनब्लाइंड नहीं कर सकते।
ZK रोलअप और L2 सिस्टम के लिए यह क्यों मायने रखता है
अधिकांश ZK रोलअप्स (ZK rollups) कंप्यूटेशनल ज़ीरो-नॉलेज वाले SNARKs का उपयोग करते हैं। इसके व्यावहारिक निहितार्थ (implications) ये हैं:
- आज, प्रूफ़ किसी भी संभावित हमलावर के सामने कुछ भी उजागर नहीं करते हैं। प्राइवेसी की गारंटी मजबूत है।
- दीर्घकालिक रूप से (Long term), प्रूफ़ वह सब कुछ उजागर कर सकते हैं जिसे अंतर्निहित धारणा (underlying assumption) बचाती है। यदि कोई रोलअप एक ऐसे SNARK का उपयोग करता है जिसकी सुरक्षा BN254 डिस्क्रीट लॉग पर निर्भर करती है, और BN254 को 2050 में तोड़ दिया जाता है, तो उससे पहले प्रकाशित हर प्रूफ़ संभावित रूप से अन-ब्लाइंड (un-blindable) हो सकता है।
- पोस्ट-क्वांटम विचार (Post-quantum considerations) मायने रखते हैं: डिस्क्रीट-लॉग-आधारित SNARKs (मानक पेयरिंग कर्व्स पर Groth16, PLONK) पोस्ट-क्वांटम सुरक्षित नहीं हैं। STARKs, जो केवल हैश टकराव प्रतिरोध (hash collision resistance) पर निर्भर करते हैं, वे सुरक्षित हैं। (StarkWare, वह पेपर जिसने STARK संक्षिप्त नाम स्थापित किया।)
- स्टैटिस्टिकल या परफेक्ट ZK प्रतिबंधित सेटिंग्स में संभव है (जैसे, कुछ बीजीय संबंधों को साबित करना) और कभी-कभी इसका उपयोग तब किया जाता है जब दीर्घकालिक गोपनीयता बजट (long-term privacy budget) स्पष्टता (expressiveness) से अधिक मायने रखता है।
गुमनाम वोटिंग, व्हिसलब्लोअर चैनलों और अन्य प्रणालियों जैसे अनुप्रयोगों के लिए जहां ट्रांसक्रिप्ट्स को दशकों तक संग्रहीत किया जा सकता है, कंप्यूटेशनल और स्टैटिस्टिकल ZK के बीच का चुनाव केवल एक किताबी बात नहीं है। यह कल के हमलावर के खिलाफ टिकने वाली प्राइवेसी और किसी भी हमलावर के खिलाफ टिकने वाली प्राइवेसी के बीच का अंतर है।
एक सरल निर्णय वृक्ष (Decision tree)
यदि आप उत्पादन (production) के लिए एक ZK सिस्टम चुन रहे हैं:
- केवल-वेरिफायर प्राइवेसी, अल्पकालिक डेटा, परफॉरमेंस सबसे अधिक मायने रखता है: एक परखे हुए (battle-tested) SNARK या STARK का कंप्यूटेशनल ZK ठीक है। यह अधिकांश रोलअप, अधिकांश ZK-KYC, और अधिकांश ZK-लॉगिन के लिए लागू होता है।
- दीर्घकालिक गोपनीयता, ऑडिट/कानूनी संवेदनशीलता: एक हैश-आधारित प्रणाली (STARK) या इसके नीचे एक पेडेरसन-शैली कमिटमेंट को प्राथमिकता दें। अपनी धारणाओं (assumptions) का दस्तावेजीकरण करें।
- कम्प्यूटेशनल धारणाओं की परवाह किए बिना सिद्ध करने योग्य गोपनीयता (Provable privacy): आप एक प्रतिबंधित स्टेटमेंट क्लास (restricted statement class) पर परफेक्ट या स्टैटिस्टिकल ZK की तलाश कर रहे हैं। इसके लिए आपको कुछ स्पष्टता या अन्तरक्रियाशीलता (interactivity) छोड़नी पड़ सकती है।
कुछ भी मुफ्त नहीं मिलता (There is no free lunch)। ZK के प्रकारों को दक्षता (efficiency) और एक-दूसरे के खिलाफ व्यापार-बंद (trade-off) करना पड़ता है। सवाल यह है कि आप सचेत रूप से कौन सा ट्रेड-ऑफ़ करते हैं।
Namefi इस बारे में क्या सोचता है
डोमेन ओनरशिप फ्लो में, ZK का सबसे दिलचस्प उपयोग यह साबित करना है कि आप यह बताए बिना कि आप कौन सा नाम रखते हैं, एक नाम के मालिक हैं। ऑन-चेन रजिस्ट्री के खिलाफ स्वामित्व प्रूफ़ (Ownership proofs) बहुत परिपक्व टूलिंग (Groth16, PLONK) के साथ कंप्यूटेशनल ZK बनाए जा सकते हैं, और आज प्रोडक्शन सिस्टम इसी पर चलते हैं। अधिक संवेदनशील कार्यों के लिए—मान लीजिए, यह साबित करना कि कोई डोमेन विश्वसनीय संस्थाओं के एक समूह (set) का है, बिना यह बताए कि कौन सा—प्रतिबंधित कथनों पर स्टैटिस्टिकल या परफेक्ट ZK स्कीम्स प्रासंगिक हो सकती हैं। इस पोस्ट का उद्देश्य इस ट्रेड-ऑफ़ को स्पष्ट करना है: वह चुनें जिसकी आपको वास्तव में आवश्यकता है, और उन धारणाओं (assumptions) को लिख लें जिन्हें आप अपना रहे हैं।
स्रोत और आगे पढ़ने के लिए
- गोल्डरीच, मिकाली, विगडरसन (Goldreich, Micali, Wigderson) — Proofs that yield nothing but their validity (J. ACM 1991).
- गोल्डरीच और क्राव्ज़िक (Goldreich and Krawczyk) — On the composition of zero-knowledge proof systems (1996).
- पेडेरसन (Pedersen) — Non-interactive and information-theoretic secure verifiable secret sharing (1991).
- बेन-सैसन, बेंटोव, होरेश, रयाबज़ेव (Ben-Sasson, Bentov, Horesh, Riabzev) — Scalable, transparent, and post-quantum secure computational integrity (STARK paper, 2018).
- a16z क्रिप्टो (a16z crypto) — Justin Thaler's "Proofs, Arguments, and Zero-Knowledge", प्रामाणिक आधुनिक पाठ्यपुस्तक।