
श्रृंखला: Zcash from First Principles . लेख 0 . आधार पाठकवर्ग: पूर्णतः नए पाठक। कोई cryptography नहीं, कोई blockchain पृष्ठभूमि नहीं, और गणित का कोई पूर्वज्ञान अपेक्षित नहीं। आप क्या समझकर जाएंगे: एक सही मानसिक मॉडल कि Zcash किसने किसे भुगतान किया, और कितना किया यह कैसे छिपाता है, जबकि फिर भी पूरी दुनिया को यह सत्यापित करने देता है कि न तो कोई पैसा गढ़ा गया और न ही एक ही पैसा दो बार खर्च किया गया।
इस श्रृंखला का हर अगला लेख उस मशीन के एक हिस्से पर ज़ूम करेगा जिससे आप अभी मिलने वाले हैं। इसलिए अगर यहाँ कोई शब्द थोड़ा धुंधला या मोटे तौर पर समझाया हुआ लगे, तो अच्छी बात है। इसका मतलब है कि हम बाद में उस पर लौटेंगे और उसे ठीक से समझेंगे।
कल्पना कीजिए कि आपकी बैंक स्टेटमेंट शहर के चौक में एक दीवार पर टांगी हो। हमेशा के लिए। कोई भी (आपका मकान-मालिक, आपका नियोक्ता, कोई अजनबी, भविष्य का नियोक्ता, कोई सरकार) हर किराए का भुगतान, हर मेडिकल बिल, हर दान, हर कॉफ़ी, और यह भी कि आपने किसे पैसे भेजे और किसने आपको भेजे—सब कुछ पढ़ सकता हो।
यह कोई काल्पनिक डिस्टोपियन स्थिति नहीं है। लगभग यही तरीका Bitcoin में काम करता है।
Bitcoin को अक्सर "anonymous" कहा जाता है, लेकिन वह वैसा नहीं है। वह pseudonymous है: ledger पर आपका नाम नहीं होता, लेकिन हर transaction, राशि, और addresses के बीच हर कड़ी सार्वजनिक और स्थायी होती है। "chain analysis" का पूरा क्षेत्र इसी पतले से pseudonym को हटाकर addresses को वास्तविक लोगों से जोड़ने के लिए मौजूद है। जैसे ही आपके किसी एक address का संबंध आपसे जुड़ जाता है, आपका पूरा वित्तीय इतिहास खुलने लगता है।
Zcash को एक दिखने में सरल लेकिन वास्तव में कठिन प्रश्न का उत्तर देने के लिए बनाया गया था:
क्या हम ऐसा पैसा बना सकते हैं जो पूरी तरह निजी हो—भेजने वाले, पाने वाले, और राशि—तीनों को छिपाए, और फिर भी किसी को भी यह सत्यापित करने दे कि नियमों का पालन हुआ है?
ये दोनों लक्ष्य एक-दूसरे के विरुद्ध जाते हैं। एक सार्वजनिक ledger सत्यापन योग्य इसलिए होता है क्योंकि हर कोई उसे देख सकता है। गोपनीयता का अर्थ है कि कोई उसे देख न सके। तो फिर जनता किसी ऐसी चीज़ को कैसे सत्यापित करे जिसे देखने की अनुमति ही न हो?
यही विरोधाभास सुलझाना इस पूरी श्रृंखला की कहानी है। आइए शुरू करें।
सबसे पहले एक आम गलतफ़हमी दूर कर लें: Zcash "private coin" नहीं है। यह एक ऐसा coin है जो privacy को एक विकल्प के रूप में देता है। इसकी शुरुआत वास्तव में Bitcoin के एक fork के रूप में हुई थी, और यह एक ही blockchain पर दो समानांतर प्रणालियाँ लेकर चलता है।
| पारदर्शी दुनिया | Shielded दुनिया | |
|---|---|---|
| गोपनीयता | सार्वजनिक, बिल्कुल Bitcoin जैसी | निजी |
| Addresses किससे शुरू होते हैं | t... | z... या u... |
| भेजने वाला / पाने वाला / राशि | सभी को दिखाई देती है | सभी से छिपी रहती है |
| आधारभूत तकनीक | Bitcoin-शैली का सार्वजनिक ledger | Cryptographic commitments + zero-knowledge proofs |
पैसा इन दोनों के बीच आ-जा भी सकता है: फंड्स को Shielded दुनिया में ले जाना shielding कहलाता है, और उन्हें वापस बाहर लाना deshielding।
पारदर्शी दुनिया वह है जिसे आप "Bitcoin जैसा, जिसे आप मोटे तौर पर पहले से समझते हैं" कह सकते हैं। Shielded दुनिया ही वह हिस्सा है जिसमें सारी सुंदर cryptography है, और इस श्रृंखला का ध्यान केवल उसी पर है।

यह वह एकमात्र मानसिक चित्र है जिसे आपको इस पूरे लेख में साथ लेकर चलना है। हम इसी पर बार-बार लौटेंगे।
एक बहुत बड़े सार्वजनिक सूचना-पट्ट की कल्पना कीजिए जिसे पृथ्वी पर हर कोई हर समय देख सकता है।
पैसा प्राप्त करना मतलब कोई उस बोर्ड पर एक सीलबंद, अपारदर्शी लिफ़ाफ़ा टांग देता है। उस लिफ़ाफ़े के भीतर कितना पैसा है और एक रहस्य जिसे केवल प्राप्तकर्ता पढ़ सकता है—दोनों होते हैं, क्योंकि वह लिफ़ाफ़ा उसी प्राप्तकर्ता की व्यक्तिगत key से लॉक होता है। पूरी दुनिया देखती है कि एक लिफ़ाफ़ा प्रकट हुआ। लेकिन मालिक के अलावा कोई नहीं देख सकता कि उसके अंदर क्या है।
यह बोर्ड केवल बढ़ता ही जाता है। लिफ़ाफ़े कभी हटाए या मिटाए नहीं जाते। नए लिफ़ाफ़े हमेशा ऊपर जुड़ते जाते हैं।
पैसा खर्च करना मतलब एक परदे के पीछे जाना, यह साबित करना कि "मैं इस बोर्ड पर मौजूद unspent लिफ़ाफ़ों में से एक का मालिक हूँ, और मुझे इसे खोलने का अधिकार है", फिर सार्वजनिक "spent" डिब्बे में एक अनूठा void token डालना, और जिस व्यक्ति को आप भुगतान कर रहे हैं उसके लिए नए लिफ़ाफ़े टांग देना।
यह छोटा-सा अनुष्ठान (एक void token टांगना, नए लिफ़ाफ़े टांगना, और यह सब परदे के पीछे से करना) ही एक Zcash भुगतान है। बाकी सब विवरण है।
अब इन वस्तुओं के असली नाम जानते हैं।
ये पाँच शब्द Shielded Zcash की पूरी शब्दावली हैं। इन्हें किसी glossary की तरह नहीं, बल्कि एक कहानी की तरह सीखिए—तभी ये याद रहेंगे।
| कहानी में | Zcash का वास्तविक शब्द | यह वास्तव में क्या है |
|---|---|---|
| लिफ़ाफ़े के अंदर की चीज़ें (राशि + मालिक + एक रहस्य) | Note | निजी "coin": मूल्य का एक हिस्सा जो किसी का है |
| बोर्ड पर टंगा सीलबंद, अपारदर्शी लिफ़ाफ़ा | Note commitment | एक cryptographic seal जो यह सिद्ध करती है कि एक लिफ़ाफ़ा मौजूद है, जबकि उसके अंदर की चीज़ें छिपी रहती हैं |
| स्वयं वह सूचना-पट्ट | Note commitment tree | अब तक बनाए गए हर note का एक append-only रिकॉर्ड |
| "spent" डिब्बे में पड़ा void token | Nullifier | एक अनूठा चिन्ह जिसका मतलब है "यह note अब खर्च किया जा चुका है" |
| "परदे के पीछे" वाली जादूगरी | Zero-knowledge proof | एक proof कि पूरा spend वैध है, बिना उसका कुछ भी प्रकट किए |
अगर आप इस लेख से और कुछ याद न रखें, तो यह तालिका याद रखिए। आगे जो कुछ भी आएगा, वह बस यह समझाने के लिए है कि हर हिस्सा ऐसा क्यों है जैसा वह है।
यही वह भाग है जिसे अधिकांश व्याख्याएँ छोड़ देती हैं, और यही वह भाग है जो "मैंने कुछ शब्द याद कर लिए" और "मैं डिज़ाइन समझता हूँ" के बीच का अंतर तय करता है। इन पाँचों हिस्सों में से हर एक एक खास समस्या हल करने के लिए मौजूद है।
एक साधारण लिफ़ाफ़ा भाप से खोला जा सकता है। एक cryptographic note commitment नहीं। इसे ऐसे सोचिए जैसे यह एक जादुई तरह से सीलबंद, पूरी तरह अपारदर्शी लिफ़ाफ़ा हो, जिसके पास दो महाशक्तियाँ हों:
एक seal एक साथ ये दोनों काम कैसे कर सकती है? यह एक वास्तविक और उत्तर देने योग्य प्रश्न है। यही लेख 3 (commitments) का विषय है। अभी के लिए इस लिफ़ाफ़े को जादुई मानकर आगे बढ़िए।
जब आप कोई note खर्च करते हैं, तो आप उसका nullifier, यानी "void token", प्रकाशित करते हैं। यह token स्वयं note और आपकी secret key—दोनों से गणना किया जाता है। इस विधि से एक साथ तीन गुण मिलते हैं, और तीनों महत्वपूर्ण हैं:
यही तीसरा गुण Zcash privacy का हृदय है, और नीचे इसका अपना अलग अनुभाग है।
सब कुछ एक परदे के पीछे होता है, और बाद में आप दुनिया को जो सौंपते हैं वह एक zero-knowledge proof होता है—एक प्रकार का ऐसा unforgeable certificate जिसे नक़ली नहीं बनाया जा सकता। यह चुपचाप एक साथ इन सारी बातों की पुष्टि करता है:
चमत्कार यह है कि proof इनमें से कोई भी तथ्य प्रकट नहीं करता। न राशि, न addresses, न कौन-सा लिफ़ाफ़ा। यह केवल आपको आश्वस्त करता है कि ऊपर दिया गया हर कथन सत्य है। यह कैसे संभव है, यही लेख 5 (zero-knowledge proofs) का विषय है—श्रृंखला का चरम बिंदु।
एक note जन्म लेता है, वह बोर्ड पर जीता है, और अंततः मरता है—और महत्वपूर्ण बात यह है कि उसका जन्म और उसकी मृत्यु बाहर से देखने वाले किसी भी व्यक्ति को असंबंधित लगते हैं।

आइए देखें कि Alice, Bob को भुगतान करती है, और हर सार्वजनिक तथा निजी चरण को नाम देकर समझते हैं।

उस असमानता पर ध्यान दें जो privacy को संभव बनाती है:
Bob को पता कैसे चलता है कि उसे भुगतान हुआ है? उसका note उसकी key के लिए encrypted होता है। वह लगातार बोर्ड को scan करता रहता है, और केवल उसी के लिफ़ाफ़े उसके लिए खुलते हैं—जैसे किसी खास ताले के सेट में फिट होने वाली एकमात्र चाबी। इसके पीछे की प्रणाली viewing keys है, जो बाद का विषय है।
| भुगतान के बारे में तथ्य | क्या यह जनता को दिखाई देता है? |
|---|---|
| कि कोई Shielded transaction हुआ | हाँ |
| कि उसने सारे नियमों का पालन किया (कोई forgery नहीं, कोई double-spend नहीं) | हाँ (proof के माध्यम से) |
| किसने पैसा भेजा | छिपा हुआ |
| किसने पैसा प्राप्त किया | छिपा हुआ |
| कितनी राशि भेजी गई | छिपी हुई |
| कौन-सा पुराना note खर्च किया गया | छिपा हुआ |
यही अनुभाग 1 में दिए गए विरोधाभास का समाधान है। जनता सामग्री को नहीं, बल्कि नियमों को सत्यापित करती है। सत्यापन और privacy अब एक-दूसरे से नहीं लड़ते, क्योंकि zero-knowledge proof आपको बाद वाले को छुए बिना पहले वाले की जाँच करने देता है।
अगर आप इस एक विचार को समझ लेते हैं, तो आप समझ जाते हैं कि Zcash निजी क्यों है। इसे धीरे-धीरे पढ़िए।
इसलिए कोई बाहरी पर्यवेक्षक लिफ़ाफ़ों की एक धारा को प्रकट होते हुए और void tokens की दूसरी धारा को प्रकट होते हुए तो देखता है, लेकिन उन्हें आपस में मिला नहीं सकता। वह यह नहीं कह सकता कि "आज गिरा यह void token पिछले मार्च में टंगे उस लिफ़ाफ़े से संबंधित है।" यह संबंध केवल note के मालिक के गुप्त ज्ञान के भीतर मौजूद होता है, और zero-knowledge proof यह पुष्टि करता है कि यह संबंध वैध है बिना इसे प्रकट किए।
Bitcoin में chain-analysis firms जिस चीज़ पर निर्भर करती हैं, वह यही कड़ी है—और Zcash जानबूझकर उसे काट देता है।
अपनी समझ की जाँच करें: यदि nullifier केवल note से ही निकाला जाता, उसमें कोई secret key शामिल न होती, तो अनुभाग 5 के तीन गुणों में से कौन-सा टूट जाता, और वह चुपचाप privacy को क्यों नष्ट कर देता? (उत्तर अंत में है।)
यह एक मानसिक मॉडल है, specification नहीं। इसे नए पाठकों के लिए आसान बनाए रखने हेतु हमने कुछ वास्तविक बातों को चुपचाप सरल किया है: Zcash में कई Shielded डिज़ाइन रहे हैं (Sprout, फिर Sapling, अब Orchard); वास्तविक transactions एक साथ कई notes खर्च और बना सकते हैं; "बोर्ड" तकनीकी रूप से एक विशेष प्रकार का tree है, कोई वास्तविक pinboard नहीं; और value balance कुछ अतिरिक्त cryptographic bookkeeping के ज़रिए लागू किया जाता है। इन विवरणों में से कोई भी उस कहानी को नहीं बदलता जो आपने अभी सीखी; वे बस उसे और सटीक बनाते हैं। हम हर लेख में धीरे-धीरे यह सटीकता वापस जोड़ेंगे, और जब भी ऐसा करेंगे, साफ़-साफ़ बताएँगे।
अच्छी शैक्षिक सामग्री भरोसा इस तरह कमाती है कि वह यह भी बताती है कि उसने क्या छोड़ा है। यह अनुभाग उसी वादे का हिस्सा है।
ऊपर जहाँ-जहाँ हमने कहा "हम इस पर वापस आएँगे", वहाँ-वहाँ एक धागा छोड़ा है। यहाँ बताया गया है कि हर धागा कहाँ जाकर बंधेगा:

| इस लेख का खुला प्रश्न | इसका समाधान कहाँ है |
|---|---|
| एक सीलबंद लिफ़ाफ़ा एक साथ छिपाने वाला और जालसाज़ी-रोधी कैसे हो सकता है? | लेख 3: commitments |
| keys और secret recipes आती कहाँ से हैं? | लेख 1 और 2: fields और curves |
| "बोर्ड" वास्तव में है क्या? | लेख 4: Merkle trees |
| आप कुछ बताए बिना उसका proof कैसे दे सकते हैं? | लेख 5: zero-knowledge proofs |
| ये पाँचों हिस्से वास्तविक Zcash में एक साथ कैसे जुड़ते हैं? | लेख 6: Shielded protocol |
अब आपके हाथ में मानचित्र है। श्रृंखला का बाकी हिस्सा उसे भरता है।
| शब्द | सरल अर्थ |
|---|---|
| Note | मूल्य की एक निजी इकाई, Zcash में coin या bill के समकक्ष |
| Note commitment | एक cryptographic seal जो यह सिद्ध करती है कि एक note मौजूद है, बिना उसे प्रकट किए |
| Note commitment tree | सभी note commitments का append-only सार्वजनिक रिकॉर्ड |
| Nullifier | एक अनूठा "spent" संकेतक जो note के उपयोग पर प्रकाशित होता है और double-spend रोकता है |
| Zero-knowledge proof | ऐसा proof कि कोई कथन सत्य है, जबकि उसकी सत्यता के अलावा कुछ भी प्रकट न हो |
| Shielding / deshielding | फंड्स को निजी Shielded दुनिया में ले जाना / उससे बाहर लाना |
| Viewing Key | वह key जो मालिक को उसके लिए भेजे गए notes को पहचानने और पढ़ने देती है |
क्या Zcash हमेशा private होता है?
नहीं। Privacy केवल Shielded दुनिया (z.../u... addresses) पर लागू होती है। पारदर्शी (t...) transactions, Bitcoin की तरह, सार्वजनिक होते हैं।
अगर सब कुछ छिपा है, तो कोई मुफ्त पैसा छापने से क्या रोकता है? Zero-knowledge proof। यह गणितीय रूप से सुनिश्चित करता है कि हर transaction के outputs वास्तविक, unspent inputs से समर्थित हों, और साथ ही राशियाँ गुप्त रहें।
क्या एक ही note को दो बार खर्च किया जा सकता है? नहीं। किसी note को खर्च करने पर उसका nullifier प्रकाशित होता है; दूसरी कोशिश वही nullifier फिर से प्रकाशित करेगी, जो पहले से "spent" bin में मौजूद होगा, इसलिए network उसे अस्वीकार कर देगा।
क्या बाहरी लोग भेजने वाले को पाने वाले से जोड़ सकते हैं? नहीं। Commitment (note का जन्म) और nullifier (note की मृत्यु) को मालिक के secret knowledge के बिना कोई भी आपस में नहीं मिला सकता।
अगर nullifier केवल note से निकाला जाता, और उसमें कोई secret key न होती, तो कोई भी उसे गणना कर सकता था, जिससे गुण #1 टूट जाता (कि केवल मालिक ही spend कर सकता है)। इससे भी बुरा यह होता कि nullifier अब note के बारे में सार्वजनिक जानकारी से सीधे निकाला जा सकता, जिससे पर्यवेक्षकों के लिए nullifier को उसके commitment से जोड़ना संभव हो सकता था, और इस तरह गुण #3 टूट जाता तथा पूरे सिस्टम की privacy चुपचाप खुलने लगती। Secret key ही वह चीज़ है जो void token को एक साथ विशेष रूप से आपका और unlinkable बनाती है।
लेख 1 . Finite fields: वह विचित्र, सुंदर संख्या-प्रणाली जिसमें arithmetic "wrap around" करती है, और यही कारण है कि इस श्रृंखला की हर cryptography उसी में रहती है। हम हमेशा की तरह सहज समझ से शुरू करेंगे—फ़ॉर्मूले तभी आएँगे जब वे उचित रूप से अर्जित हो जाएँ।
यह Zcash from First Principles श्रृंखला का हिस्सा है, ZecHub के लिए। Licensed CC BY-SA 4.0.