मुख्य सामग्री पर जाएं
Change page

स्मार्ट अनुबंधों का परिचय

स्मार्ट अनुबंध क्या है?

"स्मार्ट अनुबंध" केवल एक प्रोग्राम है जो इथेरियम ब्लॉकचेन पर चलता है। यह कोड (इसके फ़ंक्शन) और डेटा (इसकी स्थिति) का एक संग्रह है जो इथेरियम ब्लॉकचेन पर एक विशिष्ट पते पर रहता है।

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

पूर्वापेक्षाएँ

यदि आप अभी शुरुआत कर रहे हैं या कम तकनीकी परिचय की तलाश में हैं, तो हम अपने स्मार्ट अनुबंधों के परिचय की अनुशंसा करते हैं।

स्मार्ट अनुबंधों की दुनिया में कूदने से पहले सुनिश्चित करें कि आपने खातों, लेन-देन और इथेरियम वर्चुअल मशीन के बारे में पढ़ लिया है।

एक डिजिटल वेंडिंग मशीन

शायद स्मार्ट अनुबंध के लिए सबसे अच्छा रूपक एक वेंडिंग मशीन है, जैसा कि निक ज़ाबो (opens in a new tab) द्वारा वर्णित किया गया है। सही इनपुट के साथ, एक निश्चित आउटपुट की गारंटी होती है।

वेंडिंग मशीन से स्नैक प्राप्त करने के लिए:

पैसे + स्नैक का चयन = स्नैक का वितरण

यह लॉजिक वेंडिंग मशीन में प्रोग्राम किया गया है।

एक स्मार्ट अनुबंध में, वेंडिंग मशीन की तरह, लॉजिक प्रोग्राम किया गया होता है। यहाँ एक सरल उदाहरण दिया गया है कि यह वेंडिंग मशीन कैसी दिखेगी यदि यह Solidity में लिखा गया एक स्मार्ट अनुबंध हो:

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

अनुमति-रहित

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

इथेरियम में स्मार्ट अनुबंध लिखने के लिए डेवलपर-अनुकूल भाषाएँ हैं:

  • Solidity
  • Vyper

भाषाओं के बारे में अधिक जानकारी

हालाँकि, उन्हें तैनात किए जाने से पहले संकलित किया जाना चाहिए ताकि इथेरियम की वर्चुअल मशीन अनुबंध की व्याख्या कर सके और उसे संग्रहीत कर सके। संकलन के बारे में अधिक जानकारी

संयोजकता

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

स्मार्ट अनुबंध संयोजकता के बारे में अधिक जानें।

सीमाएँ

अकेले स्मार्ट अनुबंध "वास्तविक दुनिया" की घटनाओं के बारे में जानकारी प्राप्त नहीं कर सकते क्योंकि वे ऑफचेन स्रोतों से डेटा प्राप्त नहीं कर सकते हैं। इसका मतलब है कि वे वास्तविक दुनिया की घटनाओं पर प्रतिक्रिया नहीं दे सकते। यह जानबूझकर ऐसा डिज़ाइन किया गया है। बाहरी जानकारी पर निर्भर रहने से सर्वसम्मति खतरे में पड़ सकती है, जो सुरक्षा और विकेंद्रीकरण के लिए महत्वपूर्ण है।

हालाँकि, ब्लॉकचेन एप्लिकेशन के लिए ऑफचेन डेटा का उपयोग करने में सक्षम होना महत्वपूर्ण है। इसका समाधान ओरेकल्स (oracles) हैं जो ऐसे उपकरण हैं जो ऑफचेन डेटा ग्रहण करते हैं और इसे स्मार्ट अनुबंधों के लिए उपलब्ध कराते हैं।

स्मार्ट अनुबंधों की एक और सीमा अधिकतम अनुबंध आकार है। एक स्मार्ट अनुबंध अधिकतम 24KB का हो सकता है अन्यथा इसकी गैस खत्म हो जाएगी। इसे द डायमंड पैटर्न (The Diamond Pattern) (opens in a new tab) का उपयोग करके दूर किया जा सकता है।

मल्टीसिग अनुबंध

मल्टीसिग (मल्टीपल-सिग्नेचर) अनुबंध ऐसे स्मार्ट अनुबंध खाते हैं जिन्हें लेन-देन निष्पादित करने के लिए कई वैध हस्ताक्षरों की आवश्यकता होती है। यह पर्याप्त मात्रा में ईथर या अन्य टोकन रखने वाले अनुबंधों के लिए विफलता के एकल बिंदुओं (single points of failure) से बचने के लिए बहुत उपयोगी है। मल्टीसिग कई पक्षों के बीच अनुबंध निष्पादन और कुंजी प्रबंधन की जिम्मेदारी को भी विभाजित करते हैं और एक निजी कुंजी के नुकसान को रोकते हैं जिससे धन का अपरिवर्तनीय नुकसान हो सकता है। इन कारणों से, मल्टीसिग अनुबंधों का उपयोग सरल DAO शासन के लिए किया जा सकता है। निष्पादित करने के लिए मल्टीसिग को M संभावित स्वीकार्य हस्ताक्षरों में से N हस्ताक्षरों की आवश्यकता होती है (जहाँ N ≤ M, और M > 1)। N = 3, M = 5 और N = 4, M = 7 आमतौर पर उपयोग किए जाते हैं। 4/7 मल्टीसिग के लिए सात संभावित वैध हस्ताक्षरों में से चार की आवश्यकता होती है। इसका मतलब है कि तीन हस्ताक्षर खो जाने पर भी धन प्राप्त किया जा सकता है। इस मामले में, इसका मतलब यह भी है कि अनुबंध को निष्पादित करने के लिए अधिकांश कुंजी-धारकों को सहमत होना चाहिए और हस्ताक्षर करना चाहिए।

स्मार्ट अनुबंध संसाधन

ओपनजेपेलिन अनुबंध - सुरक्षित स्मार्ट अनुबंध विकास के लिए लाइब्रेरी।

आगे की पढ़ाई

ट्यूटोरियल: इथेरियम पर स्मार्ट अनुबंध हस्ताक्षर (EIP-1271)