zkApp बनाने से पहले आपको क्या सीखना चाहिए

What You Should Learn Before Building a zkApp

Mina Protocol
MinaIndia
5 min readSep 23, 2022

--

*This is a translated version of the original document by Mina protocol.

zkApps बनाने में काफी सरल हैं लेकिन यह तीन मूलभूत चीजें हैं जिन्हें आपको पहले सीखना चाहिए।

Web3 में निजी और स्केलेबल स्मार्ट अनुबंधों की लहर चल रही है, और मीना प्रोटोकॉल, अपने निरंतर आकार के संक्षिप्त ब्लॉकचेन और लिखने में आसान शून्य ज्ञान ऐप, zkApps के साथ, इस परिवर्तन में अग्रणी है। मीना अंततः ZK को web3 डेवलपर के हाथों में zkApps सौंप रही है, जो शून्य ज्ञान विकेन्द्रीकृत अनुप्रयोगों संक्षिप्त रूप है।

यद्यपि zkApps बनाना अपेक्षाकृत सरल है, निर्माण शुरू करने से पहले आपको तीन मूलभूत बातें समझनी चाहिए।

1. TypeScript Syntax

एक सहज डेवलपर अनुभव सुनिश्चित करने के लिए, zkApps टाइपस्क्रिप्ट में लिखे गए हैं। टाइपस्क्रिप्ट जावास्क्रिप्ट का एक सुपरसेट है जो टाइप सेफ्टी जोड़ता है, जिसका अर्थ है की कंपाइल समय पर टाइप शुद्धता की जाँच की जाती है। टाइपस्क्रिप्ट में स्मार्ट कॉन्ट्रैक्ट लिखने का एक अन्य लाभ परिचित डेवलपर अनुभव और टाइपस्क्रिप्ट टूलिंग है, जैसे की npm, Prettier, Jest, ESLint, VScode के साथ IntelliSense कोड ऑटो-पूर्णता, और बहुत कुछ।

zkApps और अन्य शून्य ज्ञान स्मार्ट अनुबंध लिखने के बीच मुख्य अंतर यह है की अन्य लोग कस्टम प्रोग्रामिंग भाषाओं का उपयोग करते हैं, जिससे बिल्डरों को कुछ नया सीखने की आवश्यकता होती है।

अधिकांश डेवलपर्स पहले से ही टाइपस्क्रिप्ट जानते हैं, zkApps निर्माण शुरू करने का सबसे आसान तरीका होगा। हालाँकि, यदि आप टाइपस्क्रिप्ट से परिचित नहीं हैं, तो यहाँ या यहाँ टाइपस्क्रिप्ट में लिखने का तरीका सीखने के लिए कई मौजूदा संसाधन हैं। आप आधिकारिक टाइपस्क्रिप्ट दस्तावेज़ यहाँ पा सकते हैं।

अगर आप टाइपस्क्रिप्ट सिंटैक्स को जानते हैं, आप जल्दी से आरंभ करने के लिए तैयार होंगे। टाइपस्क्रिप्ट स्थापित करना अनावश्यक है क्योंकि मीना zkApp CLI में स्थानीय रूप से टाइपस्क्रिप्ट शामिल है।

2. zkApps कैसे काम करते है

zkApps शून्य ज्ञान प्रमाण का उपयोग करते हैं, विशेष रूप से zk-SNARKs। वे ऑफ-चेन कंप्यूटेशंस और ऑफ-चेन स्टेट मॉडल का उपयोग करते हैं, जिससे निजी निष्पादन और एक लचीला राज्य मॉडल की अनुमति मिलती है ताकि उपयोगकर्ता अपने राज्यों को निजी या सार्वजनिक सेट करना चुन सकें। अन्य ब्लॉकचेन के विपरीत जो डीएपी निष्पादन चलाने के लिए परिवर्तनीय गैस-शुल्क के साथ श्रृंखला पर गणना चलाते हैं, zkApps कम फ्लैट शुल्क के लिए असीमित ऑफ-चेन गणना और ऑन-चेन सत्यापन प्रदान करते हैं। SnarkyJS, zkApps लिखने के लिए टाइपस्क्रिप्ट लाइब्रेरी, डेटा को ऑफ-चेन स्टोर करने के लिए एक मर्कल ट्री का उपयोग करता है और zkOracles, जो रोडमैप पर एक विशेषता है, ऑफ-चेन स्टोरेज में भी मदद करेगा।

यह समझने के लिए की zkApps कैसे काम करता है, कुछ अवधारणाएँ हैं जिन्हें आपको सामान्य रूप से शून्य ज्ञान स्मार्ट अनुबंधों के बारे में समझना होगा। एक प्रोवर फ़ंक्शन और एक सत्यापनकर्ता फ़ंक्शन हैं।

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

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

मीना का ऑफ-चेन निष्पादन उपयोगकर्ताओं को अपने डेटा को उपयोगकर्ता की हिरासत में रखने की अनुमति देता है और केवल दुनिया के साथ गणना का प्रमाण साझा करता है। इस बारे में और जानें की zkApps यहाँ कैसे काम करता है

3. सर्किट्स और SnarkyJS कैसे काम करते हैं

अंत में, आपको स्मार्ट कॉन्ट्रैक्ट विकसित करने और ZK स्मार्ट कॉन्ट्रैक्ट्स के बीच अंतर जानने की जरूरत है। ZK स्मार्ट कॉन्ट्रैक्ट्स में, एक सर्किट नामक फ़ंक्शन के अंदर कंप्यूटेशंस पर एक शून्य ज्ञान प्रमाण उत्पन्न होता है।

zk-SNARK सर्किट को समझने के लिए, उदाहरण के तौर पर बूलियन सर्किट के बारे में सोचें। बूलियन सर्किट में, एक गेट बूलियन ऑपरेशंस (AND, OR, XOR, NOR) में से एक का प्रतिनिधित्व करता है। इनपुट वे चर हैं जिन पर बूलियन संचालन लागू होते हैं, और आउटपुट इन चरों पर बूलियन संचालन के परिणाम होते हैं।

एक अंकगणितीय सर्किट में, गेट अंकगणितीय संचालन (जोड़, घटाना, गुणा, भाग) का प्रतिनिधित्व करता है, जहां इनपुट चर होते हैं, और आउटपुट इनपुट पर अंकगणितीय ऑपरेशन का परिणाम होते हैं।

SnarkyJS मीना प्रोटोकॉल के लिए zkApps लिखने के लिए एक पुस्तकालय है, और यह डेवलपर्स से कई zk-SNARK जटिलताओं को छुपाता है तथा मीना पर निर्माण का एक सीधा तरीका प्रदान करता है। zkApp लिखने का अनुभव नियमित टाइपस्क्रिप्ट प्रोग्राम लिखने के समान है। SnarkysJS सर्किट इनपुट के लिए अपने स्वयं के दावे के साथ बूलियन और आर्थमेटिक सर्किट के समान काम करते हैं ताकि आप राज्य अपडेट को बाधित करने के लिए पैरामीटर सेट कर सकें। अंतर केवल इतना है कि SnarkyJS अपने जावास्क्रिप्ट समकक्षों के बजाय अंतर्निहित डेटा प्रकारों और विधियों का उपयोग करता है। SnarkyJS डॉक्स में और जानें।

अगला कदम

एक बार जब आप इन चीजों से परिचित हो जायेंगे, तो आप मीना पर zkApps लिखना शुरू करने के लिए तैयार हैं। यहां कुछ सुझाव दिए गए हैं की आप कैसे शुरुआत कर सकते हैं।

  1. zkApp CLI यहाँ से इनस्टॉल करें।
  2. इस ट्यूटोरियल का उपयोग करके एक उदाहरण zkApp को कोड करना सीखें।

3. अंकतालिका पर अंक अर्जित करते हुए चरण-दर-चरण चुनौतियों के साथ एक zkApp बनाएं (वर्तमान में एक सॉफ्ट लॉन्च, प्रतीक्षा सूची के लिये आवेदन करें, अधिक प्रतिभागियों को भविष्य में भर्ती किया जाएगा)।

यहां zkApps लिखने, परीक्षण करने और परिनियोजित करने के तरीके के बारे में और भी कई संसाधन हैं, लेकिन इन चरणों से आपको शुरुआत मिलनी चाहिए।

यदि आपके कोई प्रश्न हैं, तो कृपया डिस्कॉर्ड पर #zkapp-Developers चैनल पर जाएं।

यदि आप और भी गहराई में जानना चाहते है, तो ZK डेवलपर मीटअप ग्लोबल टूर और एक त्रैमासिक सामुदायिक अनुदान निधि के उपयोग के लिए तैयार मीना पारिस्थितिकी तंत्र दुनिया भर में सक्रिय है!

मीना प्रोटोकॉल के बारे में

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

--

--

Mina Protocol
MinaIndia

The world’s lightest blockchain, powered by participants.