एथेरियम सबसे लोकप्रिय क्रिप्टोकरेंसी में से एक का प्रवर्तक है – और फिर भी यह उससे कहीं अधिक है. एल्गोरिदम के लिए धन्यवाद, क्रिप्टो मुद्रा को पूरी तरह से स्वायत्त रूप से प्रबंधित किया जा सकता है. लेकिन “स्मार्ट कॉन्ट्रैक्ट” कैसे काम करते हैं और हम इस रास्ते पर कहां हैं ?
एथेरियम में स्मार्ट कॉन्ट्रैक्ट कैसे काम करते हैं ?
एथेरियम में स्मार्ट अनुबंधों के सिद्धांत को समझने के लिए, प्रोग्रामिंग भाषाओं की दुनिया में एक छोटा भ्रमण करना सबसे पहले आवश्यक है. सामान्य प्रोग्रामिंग भाषाओं को अनिवार्य रूप से दो समूहों में विभाजित किया गया है: व्याख्या की गई भाषाएँ और संकलित भाषाएँ. पहले समूह में, प्रोग्राम उच्च-स्तरीय भाषा में लिखे जाते हैं, जिन्हें बाद में एक दुभाषिया द्वारा निष्पादित किया जाता है. दो लोकप्रिय उदाहरण पायथन और जावास्क्रिप्ट हैं. व्याख्या की गई भाषाएँ कई एप्लिकेशन फ़ील्ड (जैसे वेब) में आम हैं क्योंकि वे आपको तुरंत शुरू कर देती हैं. वे बहुत सार्वभौमिक भी हैं और अतिरिक्त टूलींग की आवश्यकता के बिना विभिन्न प्लेटफार्मों पर उपयोग किया जा सकता है.
इसके विपरीत, संकलित भाषाएँ हैं, जिनके लिए एक कंपाइलर पहले प्रोग्राम टेक्स्ट को दूसरी भाषा में परिवर्तित करता है – अक्सर बाइनरी मशीन कोड. यह बाइनरी कोड प्लेटफ़ॉर्म पर निर्भर है और सीधे प्रोसेसर पर निष्पादित होता है. कंपाइलर प्रोसेसर इंस्ट्रक्शन सेट के लिए कस्टम कोड तैयार कर सकता है (और करना भी चाहिए), उदाहरण के लिए एआरएम या इंटेल संगत सीपीयू के लिए. इस प्रकार के प्रसिद्ध प्रतिनिधि सी और रस्ट हैं.
हालाँकि, वास्तविकता, हमेशा की तरह, इन सरल श्रेणियों से कहीं अधिक जटिल है. पिछले कुछ समय से जावा जैसे संकर रूप मौजूद हैं. दरअसल, जावा कंपाइलर जावा कोड को सीधे “वास्तविक” मशीन कोड में अनुवाद नहीं करता है, बल्कि एक विशेष मध्यवर्ती प्रारूप में अनुवाद करता है. यह मध्यवर्ती प्रारूप, बदले में, प्रोसेसर के कंक्रीट आर्किटेक्चर पर एक दुभाषिया – जावा वर्चुअल मशीन – द्वारा निष्पादित किया जाता है.
एथेरियम स्मार्ट कॉन्ट्रैक्ट भी इसी तरह काम करते हैं. सभी नोड्स जो लेनदेन को मान्य करते हैं और एथेरियम में नई मुद्रा का खनन करते हैं, उनमें एथेरियम वर्चुअल मशीन (ईवीएम) का एक उदाहरण होता है. येलो पेपर, एथेरियम की तकनीकी विशिष्टता, विस्तार से परिभाषित करती है कि कौन से निर्देश ईवीएम का समर्थन करते हैं – और उन्हें कैसे निष्पादित किया जाना चाहिए.
यह एक मालिकाना विकास है जिसमें कई विशिष्टताएं हैंः :
बाहरी दुनिया के साथ बातचीत संभव नहीं है: सभी एल्गोरिथम निर्णय ब्लॉकचेन और उसके लेनदेन के परिणामस्वरूप होने चाहिए.
अंकगणित २५६-बिट मानों पर आधारित है ताकि बड़े पतों और राशियों में हेरफेर करना आसान हो सके.
प्रदर्शन को बढ़ाने के लिए हैश फ़ंक्शंस जैसे विशेष ऑपरेशन अंतर्निहित हैं.
सभी निर्देशों को एक लागत (ईंधन) फ़ंक्शन सौंपा गया है, जो लगभग आवश्यक निष्पादन समय और आवश्यक मेमोरी की मात्रा से मेल खाता है. मीटरिंग शब्द का प्रयोग आमतौर पर अंग्रेजी में किया जाता है.
ईवीएम पर प्रोग्रामिंग
जावा पारिस्थितिकी तंत्र की तरह, कई प्रोग्रामिंग भाषाएं हैं जिनके लिए ईवीएम कंपाइलर उपलब्ध हैं. सबसे आम भाषा सॉलिडिटी है, जो सतही तौर पर (वाक्यविन्यास की दृष्टि से) जावास्क्रिप्ट की याद दिलाती है. 2020 के अंत में, एथेरियम के दस्तावेज़ में दो अतिरिक्त भाषाओं को सूचीबद्ध किया गया है: वाइपर, जो पायथन पर आधारित है, और यूल प्लस, एक पूरी तरह से स्वतंत्र विकास.
इन सभी भाषाओं में क्या आम है, यह है कि वे डोमेन विशिष्ट हैं, क्योंकि, बहुमुखी भाषाओं के विपरीत, वे विशेष विशेषताओं के साथ एक आला पर कब्जा करते हैं और विशेष रूप से, एक विशेष निष्पादन इंजन: ईवीएम बेशक, ये डोमेन-विशिष्ट भाषाएं (डीएसएल) मूल रूप से आवेदन जटिलता को कम करने के लिए एक अच्छा विचार है.
लेकिन ईवीएम के मामले में इसका कोई मतलब नहीं दिखता. आखिरकार, यह – ब्लॉकचेन के बाहर की दुनिया के साथ बातचीत की संभावनाओं की कमी के बावजूद – मनमाना एल्गोरिदम चला सकता है, इसलिए यह ट्यूरिंग तरीके से (इसे सीधे शब्दों में कहें) पूरा हो गया है.
मौजूदा भाषा और निष्पादन वातावरण का उपयोग क्यों न करें ?
यदि आवश्यक हो, तो सुविधाओं को हटाना होगा, लेकिन हम लंबे अनुभव, अधिक स्थिर उपकरणों और – इससे भी महत्वपूर्ण बात – प्रोग्रामर के व्यापक आधार पर भरोसा कर सकते हैं. वास्तव में, यह सामान्य ज्ञान है कि आज, एक प्रोग्रामिंग भाषा की लोकप्रियता न केवल इस तथ्य से निर्धारित होती है कि इसे विशेष रूप से संक्षिप्त, प्रकार-सुरक्षित तरीके या गतिशील तरीके से प्रोग्राम किया जा सकता है, बल्कि उस आसानी से भी निर्धारित किया जा सकता है जिसके साथ कोई भी पहुंच सकता है। कई मौजूदा पुस्तकालय और पैकेज. इस युगांतरकारी बदलाव का उदाहरण विशेष रूप से जावास्क्रिप्ट द्वारा दिया गया है, जिसकी अक्सर इसके अपरिष्कृत शब्दार्थ के लिए आलोचना की जाती है, लेकिन इसे मिलियनवें एनपीएम पैकेज के बाद से सबसे लोकप्रिय प्रोग्रामिंग भाषा माना जाना चाहिए.
वेबअसेंबली, एक सार्वभौमिक मध्यवर्ती भाषा
एथेरियम विनिर्देश के पीछे के लोग इस निष्कर्ष पर पहुंचे हैं कि सार्वभौमिक भाषा के पक्ष में कस्टम विकास को छोड़कर कुछ समस्याओं को हल किया जा सकता है. यह कितना सुविधाजनक है कि बड़े कुत्ते जावास्क्रिप्ट का विकल्प स्थापित करने के लिए वेब पर विकास चल रहा है: वेबअसेंबली (डब्ल्यूएएसएम). यह एक सार्वभौमिक मध्यवर्ती भाषा और बाइनरी प्रारूप दोनों है, जो दुभाषियों के लिए एक विनिर्देश के साथ संयुक्त है. जैसा कि नाम से पता चलता है, यह खुला मानक मूल रूप से वेब के लिए डिज़ाइन किया गया था. इस बीच, आवेदन के अन्य क्षेत्रों (जैसे स्मार्टफोन एप्लिकेशन) की जांच की गई है.
WASM का विकास Microsoft, Google और Apple जैसे उद्योग दिग्गजों द्वारा संचालित है. भाषा की विशेषता यह है कि इसे पोर्टेबिलिटी के लिए शुरू से ही डिज़ाइन किया गया था. यह इस तथ्य से पहचाना जा सकता है कि कई मौजूदा प्रोग्रामिंग भाषाएं जैसे रस्ट, सी++ या गो पहले से ही वेब असेंबली के लिए संकलित कर सकती हैं.