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

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

पेज का अंतिम अपडेट: 25 फ़रवरी 2026

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

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

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

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

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

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

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

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

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

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

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

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

1pragma solidity 0.8.7;
2
3contract VendingMachine {
4
5 // अनुबंध के स्टेट वैरिएबल्स घोषित करें
6 address public owner;
7 mapping (address => uint) public cupcakeBalances;
8
9 // जब 'VendingMachine' अनुबंध डिप्लॉय होता है:
10 // 1. डिप्लॉय करने वाले पते को अनुबंध के मालिक के रूप में सेट करें
11 // 2. डिप्लॉय किए गए स्मार्ट अनुबंध के कपकेक बैलेंस को 100 पर सेट करें
12 constructor() {
13 owner = msg.sender;
14 cupcakeBalances[address(this)] = 100;
15 }
16
17 // मालिक को स्मार्ट अनुबंध के कपकेक बैलेंस को बढ़ाने की अनुमति दें
18 function refill(uint amount) public {
19 require(msg.sender == owner, "केवल मालिक ही फिर से भर सकता है।");
20 cupcakeBalances[address(this)] += amount;
21 }
22
23 // किसी को भी कपकेक खरीदने की अनुमति दें
24 function purchase(uint amount) public payable {
25 require(msg.value >= amount * 1 ether, "आपको प्रति कपकेक कम से कम 1 ETH का भुगतान करना होगा");
26 require(cupcakeBalances[address(this)] >= amount, "इस खरीद को पूरा करने के लिए स्टॉक में पर्याप्त कपकेक नहीं हैं");
27 cupcakeBalances[address(this)] -= amount;
28 cupcakeBalances[msg.sender] += amount;
29 }
30}

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

अनुमति रहित

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

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

  • सॉलिडिटी
  • वाइपर

भाषाओं के बारे में और जानें

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

कम्पोज़ेबिलिटी

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

स्मार्ट अनुबंध कम्पोज़ेबिलिटी के बारे में और जानें।

सीमाएँ

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

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

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

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

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

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

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

आगे की रीडिंग

क्या यह लेख सहायक था?