इथेरियम व्हर्च्युअल मशीन (EVM)
पृष्ठ अखेरचे अद्यतन: २५ फेब्रुवारी, २०२६
इथेरियम व्हर्च्युअल मशीन (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) यांसारख्या क्रिप्टोग्राफी/ब्लॉकचेन संकल्पनांशी परिचित असणे देखील उपयुक्त ठरेल.
लेजरपासून स्टेट मशीनपर्यंत
'वितरित लेजर' हे साधर्म्य अनेकदा Bitcoin सारख्या ब्लॉकचेनचे वर्णन करण्यासाठी वापरले जाते, जे क्रिप्टोग्राफीची मूलभूत साधने वापरून विकेंद्रित चलन सक्षम करतात. लेजर क्रियाकलापांची नोंद ठेवते, ज्याला अशा नियमांच्या संचाचे पालन करणे आवश्यक आहे, जे लेजरमध्ये बदल करण्यासाठी एखादी व्यक्ती काय करू शकते आणि काय करू शकत नाही हे नियंत्रित करतात. उदाहरणार्थ, एक Bitcoin पत्ता त्याला पूर्वी मिळालेल्या Bitcoin पेक्षा जास्त Bitcoin खर्च करू शकत नाही. हे नियम Bitcoin आणि इतर अनेक ब्लॉकचेनवरील सर्व व्यवहारांना आधार देतात.
इथेरियमचे स्वतःचे मूळ क्रिप्टोकरन्सी (इथर) असले तरी, जे जवळजवळ समान अंतर्ज्ञानी नियमांचे पालन करते, ते एक अधिक शक्तिशाली कार्य देखील सक्षम करते: स्मार्ट कॉन्ट्रॅक्ट्स. या अधिक जटिल वैशिष्ट्यासाठी, अधिक अत्याधुनिक साधर्म्याची आवश्यकता आहे. वितरित लेजरऐवजी, इथेरियम एक वितरित स्टेट मशीन (opens in a new tab) आहे. इथेरियमची स्थिती ही एक मोठी डेटा रचना आहे जी केवळ सर्व खाती आणि शिल्लकच नाही, तर एक मशीन स्थिती देखील ठेवते, जी पूर्वनिर्धारित नियमांनुसार ब्लॉक ते ब्लॉक बदलू शकते आणि जी कोणताही मशीन कोड कार्यान्वित करू शकते. ब्लॉक ते ब्लॉक स्थिती बदलण्याचे विशिष्ट नियम EVM द्वारे परिभाषित केले जातात.
इथेरियम EVM सचित्र (opens in a new tab) वरून रुपांतरित आकृती
इथेरियम स्टेट ट्रान्झिशन फंक्शन
EVM गणितीय कार्याप्रमाणे वागते: इनपुट दिल्यावर, ते एक निश्चित आउटपुट तयार करते. त्यामुळे इथेरियमचे अधिक औपचारिकपणे स्टेट ट्रान्झिशन फंक्शन म्हणून वर्णन करणे खूप उपयुक्त आहे:
1Y(S, T)= S'एक जुनी वैध स्थिती (S) आणि वैध व्यवहारांचा नवीन संच (T) दिल्यास, इथेरियम स्टेट ट्रान्झिशन फंक्शन Y(S, T) एक नवीन वैध आउटपुट स्थिती S' तयार करते
स्थिती
इथेरियमच्या संदर्भात, स्थिती ही सुधारित मर्केल पॅट्रिशिया ट्राय नावाची एक प्रचंड डेटा रचना आहे, जी सर्व खाती हॅशद्वारे जोडलेली ठेवते आणि ब्लॉकचेनवर संग्रहित एकाच रूट हॅशमध्ये कमी करता येते.
व्यवहार
व्यवहार हे खात्यांमधून क्रिप्टोग्राफिकली स्वाक्षरी केलेल्या सूचना आहेत. दोन प्रकारचे व्यवहार आहेत: ज्यामुळे मेसेज कॉल्स होतात आणि ज्यामुळे कॉन्ट्रॅक्ट निर्मिती होते.
कॉन्ट्रॅक्ट निर्मितीमुळे एक नवीन कॉन्ट्रॅक्ट खाते तयार होते ज्यामध्ये संकलित स्मार्ट कॉन्ट्रॅक्ट बायटकोड असतो. जेव्हा दुसरे खाते त्या कॉन्ट्रॅक्टला मेसेज कॉल करते, तेव्हा ते त्याचा बायटकोड कार्यान्वित करते.
EVM सूचना
EVM एक स्टॅक मशीन (opens in a new tab) म्हणून कार्यान्वित होते ज्याची खोली 1024 आयटम आहे. प्रत्येक आयटम एक 256-बिट शब्द आहे, जो 256-बिट क्रिप्टोग्राफीसह (जसे की Keccak-256 हॅश किंवा secp256k1 स्वाक्षरी) वापरण्याच्या सुलभतेसाठी निवडला गेला होता.
अंमलबजावणी दरम्यान, EVM एक क्षणिक मेमरी (शब्द-पत्ता असलेल्या बाइट ॲरे म्हणून) ठेवते, जी व्यवहारांमध्ये टिकत नाही.
क्षणिक स्टोरेज
क्षणिक स्टोरेज हे प्रति-व्यवहार की-व्हॅल्यू स्टोअर आहे, जे TSTORE आणि TLOAD ऑपकोड्सद्वारे ऍक्सेस केले जाते. हे त्याच व्यवहारादरम्यान सर्व अंतर्गत कॉल्समध्ये टिकते, पण व्यवहाराच्या शेवटी साफ केले जाते. मेमरीच्या विपरीत, क्षणिक स्टोरेजला एक्झिक्यूशन फ्रेमऐवजी EVM स्थितीचा भाग म्हणून मॉडेल केले आहे, तरीही ते जागतिक स्थितीसाठी वचनबद्ध नाही. क्षणिक स्टोरेज व्यवहारादरम्यान अंतर्गत कॉल्समध्ये गॅस-कार्यक्षम तात्पुरती स्थिती शेअरिंग सक्षम करते.
स्टोरेज
कॉन्ट्रॅक्ट्समध्ये एक मर्केल पॅट्रिशिया स्टोरेज ट्राय (एक शब्द-पत्ता असलेला शब्द ॲरे म्हणून) असतो, जो संबंधित खात्याशी जोडलेला आणि जागतिक स्थितीचा भाग असतो. हे कायमस्वरूपी स्टोरेज क्षणिक स्टोरेजपेक्षा वेगळे आहे, जे फक्त एका व्यवहाराच्या कालावधीसाठी उपलब्ध असते आणि खात्याच्या कायमस्वरूपी स्टोरेज ट्रायचा भाग बनत नाही.
ऑपकोड्स
संकलित स्मार्ट कॉन्ट्रॅक्ट बायटकोड अनेक EVM ऑपकोड्स म्हणून कार्यान्वित होतो, जे XOR, AND, ADD, SUB, इत्यादींसारखी मानक स्टॅक ऑपरेशन्स करतात. EVM ADDRESS, BALANCE, BLOCKHASH, इत्यादींसारखी अनेक ब्लॉकचेन-विशिष्ट स्टॅक ऑपरेशन्स देखील लागू करते. ऑपकोड संचामध्ये TSTORE आणि TLOAD चा देखील समावेश आहे, जे क्षणिक स्टोरेजमध्ये प्रवेश प्रदान करतात.
इथेरियम EVM सचित्र (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)
- Solidity च्या माहितीमधील एक संक्षिप्त परिचय (opens in a new tab)
- मास्टरिंग इथेरियम - इथेरियम व्हर्च्युअल मशीन (opens in a new tab)
संबंधित विषय
ट्युटोरियल्स: Ethereum व्हर्च्युअल मशीन (EVM) / Ethereum वरील ऑपकोड्स
- यलो पेपरच्या EVM स्पेसिफिकेशन्स समजून घेणे -- Ethereum यलो पेपरमधील औपचारिक EVM स्पेसिफिकेशनचे मार्गदर्शित विहंगावलोकन.
- कॉन्ट्रॅक्टचे रिव्हर्स इंजिनियरिंग -- EVM ऑपकोड्स वापरून कंपाइल केलेले स्मार्ट कॉन्ट्रॅक्ट कसे रिव्हर्स-इंजिनियर करायचे.