एथेरियम वर्चुअल मशीन (EVM)
पेज का अंतिम अपडेट: 25 फ़रवरी 2026
एथेरियम वर्चुअल मशीन (EVM) एक विकेन्द्रीकृत आभासी वातावरण है जो सभी एथेरियम नोड्स में लगातार और सुरक्षित रूप से कोड निष्पादित करता है। नोड्स स्मार्ट अनुबंधों को निष्पादित करने के लिए EVM चलाते हैं, और परिचालनों के लिए आवश्यक कम्प्यूटेशनल प्रयास को मापने के लिए "गैस" का उपयोग करते हैं, जिससे कुशल संसाधन आवंटन और नेटवर्क सुरक्षा सुनिश्चित होती है।
पूर्वापेक्षाएं
EVM को समझने के लिए कंप्यूटर विज्ञान में बाइट्स (opens in a new tab), मेमोरी (opens in a new tab), और स्टैक (opens in a new tab) जैसी सामान्य शब्दावली से कुछ बुनियादी परिचित होना आवश्यक है। हैश फ़ंक्शन (opens in a new tab) और मर्कल ट्री (opens in a new tab) जैसी क्रिप्टोग्राफी/ब्लॉकचेन अवधारणाओं के साथ सहज होना भी सहायक होगा।
लेजर से स्टेट मशीन तक
'वितरित लेजर' के सादृश्य का उपयोग अक्सर बिटकॉइन जैसे ब्लॉकचेन का वर्णन करने के लिए किया जाता है, जो क्रिप्टोग्राफी के मूलभूत उपकरणों का उपयोग करके विकेन्द्रीकृत मुद्रा को सक्षम करता है। लेजर गतिविधि का एक रिकॉर्ड रखता है जिसे नियमों के एक सेट का पालन करना चाहिए जो यह नियंत्रित करता है कि कोई व्यक्ति लेजर को संशोधित करने के लिए क्या कर सकता है और क्या नहीं कर सकता है। उदाहरण के लिए, एक बिटकॉइन पता पहले से प्राप्त बिटकॉइन से ज्यादा खर्च नहीं कर सकता। ये नियम बिटकॉइन और कई अन्य ब्लॉकचेन पर सभी लेनदेन को रेखांकित करते हैं।
हालांकि एथेरियम की अपनी मूल क्रिप्टोकरेंसी (ईथर) है जो लगभग उन्हीं सहज नियमों का पालन करती है, यह एक बहुत अधिक शक्तिशाली फ़ंक्शन भी सक्षम करता है: स्मार्ट अनुबंध। इस अधिक जटिल विशेषता के लिए, एक अधिक परिष्कृत सादृश्य की आवश्यकता है। एक वितरित खाता बही के बजाय, एथेरियम एक वितरित स्टेट मशीन (opens in a new tab) है। एथेरियम की स्थिति एक बड़ी डेटा संरचना है जो न केवल सभी खाते और शेष राशि रखती है, बल्कि एक मशीन स्टेट भी, जो नियमों के पूर्व-परिभाषित सेट के अनुसार ब्लॉक से ब्लॉक में बदल सकती है, और जो मनमाना मशीन कोड निष्पादित कर सकती है। स्थिति को ब्लॉक से ब्लॉक में बदलने के विशिष्ट नियमों को EVM द्वारा परिभाषित किया गया है।
आरेख एथेरियम EVM illustrated (opens in a new tab) से अनुकूलित है
एथेरियम स्टेट ट्रांज़िशन फ़ंक्शन
EVM एक गणितीय फंक्शन के रूप में व्यवहार करता है: इनपुट को देखते हुए, यह एक नियतात्मक आउटपुट उत्पन्न करता है। इसलिए एथेरियम को स्टेट ट्रांज़िशन फ़ंक्शन के रूप में अधिक औपचारिक रूप से वर्णित करना काफी सहायक है:
1Y(S, T)= S'एक पुरानी वैध स्टेट (S) और वैध लेन-देन के एक नए सेट (T) को देखते हुए, एथेरियम स्टेट ट्रांज़िशन फ़ंक्शन Y(S, T) एक नई वैध आउटपुट स्टेट S' उत्पन्न करता है।
स्टेट
एथेरियम के संदर्भ में, स्टेट एक विशाल डेटा संरचना है जिसे संशोधित मर्कल पैट्रीशिया ट्राई कहा जाता है, जो सभी खातों को हैश द्वारा लिंक रखती है और जिसे ब्लॉकचेन पर संग्रहीत एकल रूट हैश तक घटाया जा सकता है।
लेनदेन
लेनदेन खातों से क्रिप्टोग्राफ़िक रूप से हस्ताक्षरित निर्देश हैं। लेनदेन दो प्रकार के होते हैं: वे जिनके परिणामस्वरूप संदेश कॉल आती हैं और वे जिनके परिणामस्वरूप अनुबंध निर्माण होता है।
अनुबंध बनाने के परिणामस्वरूप संकलित स्मार्ट अनुबंध बाइटकोड वाला एक नया अनुबंध खाता बनता है। जब भी कोई अन्य खाता उस अनुबंध पर संदेश कॉल करता है, तो वह अपने बाइटकोड को निष्पादित करता है।
EVM निर्देश
EVM 1024 आइटम की गहराई के साथ एक स्टैक मशीन (opens in a new tab) के रूप में निष्पादित होता है। प्रत्येक आइटम एक 256-बिट शब्द है, जिसे 256-बिट क्रिप्टोग्राफी (जैसे Keccak-256 हैश या secp256k1 हस्ताक्षर) के साथ उपयोग में आसानी के लिए चुना गया था।
निष्पादन के दौरान, EVM एक क्षणिक मेमोरी (वर्ड-एड्रेसेड बाइट ऐरे के रूप में) बनाए रखता है, जो लेन-देन के बीच बनी नहीं रहती है।
क्षणिक भंडारण
क्षणिक भंडारण एक प्रति-लेनदेन कुंजी-मान स्टोर है जिसे TSTORE और TLOAD ऑपकोड के माध्यम से एक्सेस किया जाता है। यह एक ही लेन-देन के दौरान सभी आंतरिक कॉलों में बना रहता है लेकिन लेन-देन के अंत में साफ़ हो जाता है। मेमोरी के विपरीत, क्षणिक भंडारण को निष्पादन फ्रेम के बजाय EVM स्टेट के हिस्से के रूप में मॉडल किया गया है, फिर भी यह वैश्विक स्टेट के लिए प्रतिबद्ध नहीं है। क्षणिक भंडारण एक लेन-देन के दौरान आंतरिक कॉलों में गैस-कुशल अस्थायी स्टेट साझा करने में सक्षम बनाता है।
स्टोरेज
अनुबंधों में एक मर्कल पैट्रीशिया स्टोरेज ट्राई (एक वर्ड-एड्रेसेबल वर्ड ऐरे के रूप में) होता है, जो संबंधित खाते से जुड़ा होता है और वैश्विक स्टेट का हिस्सा होता है। यह स्थायी भंडारण क्षणिक भंडारण से भिन्न है, जो केवल एक ही लेन-देन की अवधि के लिए उपलब्ध है और खाते के स्थायी भंडारण ट्राई का हिस्सा नहीं बनता है।
ऑपकोड
संकलित स्मार्ट अनुबंध बाइटकोड कई EVM ऑपकोड के रूप में निष्पादित होता है, जो XOR, AND, ADD, SUB, आदि जैसे मानक स्टैक संचालन करते हैं। EVM कई ब्लॉकचेन-विशिष्ट स्टैक संचालन भी लागू करता है, जैसे ADDRESS, BALANCE, BLOCKHASH, आदि। ऑपकोड सेट में TSTORE और TLOAD भी शामिल हैं, जो क्षणिक भंडारण तक पहुँच प्रदान करते हैं।
आरेख एथेरियम EVM illustrated (opens in a new tab) से अनुकूलित हैं
EVM कार्यान्वयन
EVM के सभी कार्यान्वयन को एथेरियम येलोपेपर में वर्णित विनिर्देश का पालन करना चाहिए।
एथेरियम के दस साल के इतिहास में, EVM में कई संशोधन हुए हैं, और विभिन्न प्रोग्रामिंग भाषाओं में EVM के कई कार्यान्वयन हैं।
एथेरियम निष्पादन क्लाइंट्स में एक EVM कार्यान्वयन शामिल है। इसके अतिरिक्त, कई स्टैंडअलोन कार्यान्वयन हैं, जिनमें शामिल हैं:
- Py-EVM (opens in a new tab) - Python
- evmone (opens in a new tab) - C++
- ethereumjs-vm (opens in a new tab) - JavaScript
- revm (opens in a new tab) - Rust
अतिरिक्त पठन
- एथेरियम यलोपेपर (opens in a new tab)
- जेलोपेपर उर्फ KEVM: K में EVM के शब्दार्थ (opens in a new tab)
- द बेजपेपर (opens in a new tab)
- एथेरियम वर्चुअल मशीन ऑपकोड (opens in a new tab)
- एथेरियम वर्चुअल मशीन ऑपकोड इंटरैक्टिव रेफरेंस (opens in a new tab)
- सॉलिडिटी के डॉक्यूमेंटेशन में एक संक्षिप्त परिचय (opens in a new tab)
- मास्टरिंग एथेरियम - द एथेरियम वर्चुअल मशीन (opens in a new tab)