---
title: "ఎథీరియం వర్చువల్ మెషిన్ (⁦EVM⁩)"
description: "ఎథీరియం వర్చువల్ మెషిన్ పరిచయం మరియు ఇది స్థితి, లావాదేవీలు మరియు స్మార్ట్ కాంట్రాక్ట్‌లకు ఎలా సంబంధం కలిగి ఉందో వివరిస్తుంది."
lang: te
---

ఎథీరియం వర్చువల్ మెషిన్ (EVM) అనేది అన్ని [ఎథీరియం](/) నోడ్‌లలో కోడ్‌ను స్థిరంగా మరియు సురక్షితంగా అమలు చేసే ఒక వికేంద్రీకృత వర్చువల్ వాతావరణం. స్మార్ట్ కాంట్రాక్ట్‌లను అమలు చేయడానికి నోడ్‌లు EVMను రన్ చేస్తాయి, [ఆపరేషన్ల](/developers/docs/evm/opcodes/) కోసం అవసరమైన గణన శ్రమను కొలవడానికి "[గ్యాస్](/developers/docs/gas/)"ను ఉపయోగిస్తాయి, తద్వారా సమర్థవంతమైన వనరుల కేటాయింపు మరియు నెట్‌వర్క్ భద్రతను నిర్ధారిస్తాయి.

## ముందస్తు అవసరాలు {#prerequisites}

EVMను అర్థం చేసుకోవడానికి కంప్యూటర్ సైన్స్‌లోని సాధారణ పదజాలం అయిన [బైట్‌లు](https://wikipedia.org/wiki/Byte), [మెమరీ](https://wikipedia.org/wiki/Computer_memory) మరియు [స్టాక్](<https://wikipedia.org/wiki/Stack_(abstract_data_type)>) గురించి కొంత ప్రాథమిక అవగాహన అవసరం. [హాష్ ఫంక్షన్లు](https://wikipedia.org/wiki/Cryptographic_hash_function) మరియు [మెర్కిల్ వృక్షం](https://wikipedia.org/wiki/Merkle_tree) వంటి గూఢలిపి శాస్త్రం/బ్లాక్‌చైన్ భావనలతో పరిచయం ఉండటం కూడా సహాయకరంగా ఉంటుంది.

## లెడ్జర్ నుండి స్థితి యంత్రం వరకు {#from-ledger-to-state-machine}

గూఢలిపి శాస్త్రం యొక్క ప్రాథమిక సాధనాలను ఉపయోగించి వికేంద్రీకృత కరెన్సీని ప్రారంభించే బిట్‌కాయిన్ వంటి బ్లాక్‌చైన్‌లను వివరించడానికి తరచుగా 'డిస్ట్రిబ్యూటెడ్ లెడ్జర్' (పంపిణీ చేయబడిన ఖాతా పుస్తకం) అనే సారూప్యతను ఉపయోగిస్తారు. లెడ్జర్‌ను సవరించడానికి ఎవరైనా ఏమి చేయగలరు మరియు ఏమి చేయలేరు అనే దానిని నియంత్రించే నిబంధనల సమితికి కట్టుబడి ఉండే కార్యాచరణ రికార్డును లెడ్జర్ నిర్వహిస్తుంది. ఉదాహరణకు, ఒక బిట్‌కాయిన్ చిరునామా గతంలో స్వీకరించిన దానికంటే ఎక్కువ బిట్‌కాయిన్‌ను ఖర్చు చేయదు. ఈ నియమాలు బిట్‌కాయిన్ మరియు అనేక ఇతర బ్లాక్‌చైన్‌లలోని అన్ని లావాదేవీలకు ఆధారం.

ఎథీరియం దాదాపుగా అవే సహజమైన నియమాలను అనుసరించే దాని స్వంత స్థానిక క్రిప్టోకరెన్సీ (ఈథర్)ని కలిగి ఉన్నప్పటికీ, ఇది మరింత శక్తివంతమైన విధిని కూడా ప్రారంభిస్తుంది: [స్మార్ట్ కాంట్రాక్ట్‌లు](/developers/docs/smart-contracts/). ఈ మరింత సంక్లిష్టమైన ఫీచర్ కోసం, మరింత అధునాతన సారూప్యత అవసరం. డిస్ట్రిబ్యూటెడ్ లెడ్జర్‌కు బదులుగా, ఎథీరియం అనేది పంపిణీ చేయబడిన [స్థితి యంత్రం (state machine)](https://wikipedia.org/wiki/Finite-state_machine). ఎథీరియం యొక్క స్థితి అనేది ఒక పెద్ద డేటా నిర్మాణం, ఇది అన్ని ఖాతాలు మరియు బ్యాలెన్స్‌లను మాత్రమే కాకుండా, ముందుగా నిర్వచించిన నిబంధనల సమితి ప్రకారం బ్లాక్ నుండి బ్లాక్‌కు మారగల మరియు ఏకపక్ష మెషిన్ కోడ్‌ను అమలు చేయగల _మెషిన్ స్థితి_ని కూడా కలిగి ఉంటుంది. బ్లాక్ నుండి బ్లాక్‌కు స్థితిని మార్చే నిర్దిష్ట నియమాలను EVM నిర్వచిస్తుంది.

![A diagram showing the make up of the EVM](./evm.png)
_[Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf) నుండి స్వీకరించబడిన రేఖాచిత్రం_

## ఎథీరియం స్థితి పరివర్తన ఫంక్షన్ {#the-ethereum-state-transition-function}

EVM ఒక గణిత ఫంక్షన్ వలె ప్రవర్తిస్తుంది: ఇన్‌పుట్ ఇచ్చినప్పుడు, ఇది నిర్ణయాత్మక అవుట్‌పుట్‌ను ఉత్పత్తి చేస్తుంది. అందువల్ల ఎథీరియంను **స్థితి పరివర్తన ఫంక్షన్** కలిగి ఉన్నట్లు మరింత అధికారికంగా వివరించడం చాలా సహాయకారిగా ఉంటుంది:

```
Y(S, T)= S'
```

పాత చెల్లుబాటు అయ్యే స్థితి `(S)` మరియు కొత్త చెల్లుబాటు అయ్యే లావాదేవీల సమితి `(T)` ఇచ్చినప్పుడు, ఎథీరియం స్థితి పరివర్తన ఫంక్షన్ `Y(S, T)` కొత్త చెల్లుబాటు అయ్యే అవుట్‌పుట్ స్థితి `S'`ను ఉత్పత్తి చేస్తుంది.

### స్థితి {#state}

ఎథీరియం సందర్భంలో, స్థితి అనేది [సవరించిన మెర్కిల్ ప్యాట్రిసియా ట్రై](/developers/docs/data-structures-and-encoding/patricia-merkle-trie/) అని పిలువబడే ఒక అపారమైన డేటా నిర్మాణం, ఇది అన్ని [ఖాతాలను](/developers/docs/accounts/) హాష్‌ల ద్వారా లింక్ చేసి ఉంచుతుంది మరియు బ్లాక్‌చైన్‌లో నిల్వ చేయబడిన ఒకే రూట్ హాష్‌కు కుదించబడుతుంది.

### లావాదేవీలు {#transactions}

లావాదేవీలు అనేవి ఖాతాల నుండి గూఢలిపి శాస్త్రపరంగా సంతకం చేయబడిన సూచనలు. లావాదేవీలలో రెండు రకాలు ఉన్నాయి: సందేశ పిలుపులకు దారితీసేవి మరియు కాంట్రాక్ట్ సృష్టికి దారితీసేవి.

కాంట్రాక్ట్ సృష్టి అనేది కంపైల్ చేయబడిన [స్మార్ట్ కాంట్రాక్ట్](/developers/docs/smart-contracts/anatomy/) బైట్‌కోడ్‌ను కలిగి ఉన్న కొత్త కాంట్రాక్ట్ ఖాతా సృష్టికి దారితీస్తుంది. మరొక ఖాతా ఆ కాంట్రాక్ట్‌కు సందేశ పిలుపు చేసినప్పుడల్లా, అది దాని బైట్‌కోడ్‌ను అమలు చేస్తుంది.

## EVM సూచనలు {#evm-instructions}

EVM 1024 అంశాల లోతుతో [స్టాక్ మెషిన్](https://wikipedia.org/wiki/Stack_machine) వలె అమలు చేయబడుతుంది. ప్రతి అంశం 256-బిట్ పదం, ఇది 256-బిట్ గూఢలిపి శాస్త్రంతో (కేకాక్-256 హాష్‌లు లేదా secp256k1 సంతకాలు వంటివి) సులభంగా ఉపయోగించడానికి ఎంచుకోబడింది.

అమలు సమయంలో, EVM ఒక తాత్కాలిక _మెమరీ_ని (వర్డ్-అడ్రెస్డ్ బైట్ అర్రే వలె) నిర్వహిస్తుంది, ఇది లావాదేవీల మధ్య నిలిచి ఉండదు.

### తాత్కాలిక నిల్వ {#transient-storage}

తాత్కాలిక నిల్వ అనేది `TSTORE` మరియు `TLOAD` ఆప్‌కోడ్‌ల ద్వారా యాక్సెస్ చేయబడే ప్రతి-లావాదేవీ కీ-విలువ స్టోర్. ఇది ఒకే లావాదేవీ సమయంలో అన్ని అంతర్గత కాల్‌లలో కొనసాగుతుంది కానీ లావాదేవీ ముగింపులో క్లియర్ చేయబడుతుంది. మెమరీ వలె కాకుండా, తాత్కాలిక నిల్వ అనేది ఎగ్జిక్యూషన్ ఫ్రేమ్‌కు బదులుగా EVM స్థితిలో భాగంగా రూపొందించబడింది, అయినప్పటికీ ఇది గ్లోబల్ స్థితికి కట్టుబడి ఉండదు. తాత్కాలిక నిల్వ లావాదేవీ సమయంలో అంతర్గత కాల్‌లలో గ్యాస్-సమర్థవంతమైన తాత్కాలిక స్థితి భాగస్వామ్యాన్ని అనుమతిస్తుంది.

### నిల్వ {#storage}

కాంట్రాక్ట్‌లు మెర్కిల్ ప్యాట్రిసియా _నిల్వ_ ట్రైని (వర్డ్-అడ్రెస్ చేయగల వర్డ్ అర్రే వలె) కలిగి ఉంటాయి, ఇది సందేహాస్పద ఖాతాతో అనుబంధించబడి ఉంటుంది మరియు గ్లోబల్ స్థితిలో భాగంగా ఉంటుంది. ఈ శాశ్వత నిల్వ తాత్కాలిక నిల్వకు భిన్నంగా ఉంటుంది, ఇది ఒకే లావాదేవీ వ్యవధికి మాత్రమే అందుబాటులో ఉంటుంది మరియు ఖాతా యొక్క శాశ్వత నిల్వ ట్రైలో భాగం కాదు.

### ఆప్‌కోడ్‌లు {#opcodes}

కంపైల్ చేయబడిన స్మార్ట్ కాంట్రాక్ట్ బైట్‌కోడ్ అనేక EVM [ఆప్‌కోడ్‌ల](/developers/docs/evm/opcodes) వలె అమలు చేయబడుతుంది, ఇవి `XOR`, `AND`, `ADD`, `SUB` మొదలైన ప్రామాణిక స్టాక్ ఆపరేషన్‌లను నిర్వహిస్తాయి. EVM `ADDRESS`, `BALANCE`, `BLOCKHASH` మొదలైన అనేక బ్లాక్‌చైన్-నిర్దిష్ట స్టాక్ ఆపరేషన్‌లను కూడా అమలు చేస్తుంది. ఆప్‌కోడ్ సెట్‌లో `TSTORE` మరియు `TLOAD` కూడా ఉన్నాయి, ఇవి తాత్కాలిక నిల్వకు యాక్సెస్‌ను అందిస్తాయి.

![A diagram showing where gas is needed for EVM operations](../gas/gas.png)
_[Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf) నుండి స్వీకరించబడిన రేఖాచిత్రాలు_

## EVM అమలులు {#evm-implementations}

EVM యొక్క అన్ని అమలులు ఎథీరియం ఎల్లో పేపర్‌లో వివరించిన స్పెసిఫికేషన్‌కు కట్టుబడి ఉండాలి.

ఎథీరియం యొక్క పదేళ్ల చరిత్రలో, EVM అనేక పునర్విమర్శలకు గురైంది మరియు వివిధ ప్రోగ్రామింగ్ భాషలలో EVM యొక్క అనేక అమలులు ఉన్నాయి.

[ఎథీరియం ఎగ్జిక్యూషన్ క్లయింట్‌లు](/developers/docs/nodes-and-clients/#execution-clients) EVM అమలును కలిగి ఉంటాయి. అదనంగా, బహుళ స్వతంత్ర అమలులు ఉన్నాయి, వాటిలో:

- [Py-EVM](https://github.com/ethereum/py-evm) - _Python_
- [evmone](https://github.com/ethereum/evmone) - _C++_
- [ethereumjs-vm](https://github.com/ethereumjs/ethereumjs-vm) - _JavaScript_
- [revm](https://github.com/bluealloy/revm) - _Rust_

## మరింత చదవడానికి {#further-reading}

- [ఎథీరియం ఎల్లో పేపర్](https://ethereum.github.io/yellowpaper/paper.pdf)
- [జెల్లోపేపర్ అకా KEVM: Kలో EVM యొక్క సెమాంటిక్స్](https://jellopaper.org/)
- [ది బీజ్‌పేపర్](https://github.com/chronaeon/beigepaper)
- [ఎథీరియం వర్చువల్ మెషిన్ ఆప్‌కోడ్‌లు](https://www.ethervm.io/)
- [ఎథీరియం వర్చువల్ మెషిన్ ఆప్‌కోడ్‌ల ఇంటరాక్టివ్ రిఫరెన్స్](https://www.evm.codes/)
- [Solidity డాక్యుమెంటేషన్‌లో ఒక చిన్న పరిచయం](https://docs.soliditylang.org/en/latest/introduction-to-smart-contracts.html#index-6)
- [మాస్టరింగ్ ఎథీరియం - ఎథీరియం వర్చువల్ మెషిన్](https://github.com/ethereumbook/ethereumbook/blob/openedition/13evm.asciidoc)

## సంబంధిత అంశాలు {#related-topics}

- [గ్యాస్](/developers/docs/gas/)

## ట్యుటోరియల్స్: ఎథీరియం వర్చువల్ మెషిన్ (EVM) / ఎథీరియంపై ఆప్‌కోడ్‌లు {#tutorials}

- [ఎల్లో పేపర్ యొక్క EVM స్పెసిఫికేషన్‌లను అర్థం చేసుకోవడం](/developers/tutorials/yellow-paper-evm/) _– ఎథీరియం ఎల్లో పేపర్ నుండి అధికారిక EVM స్పెక్ యొక్క మార్గదర్శక వివరణ._
- [కాంట్రాక్ట్‌ను రివర్స్ ఇంజనీరింగ్ చేయడం](/developers/tutorials/reverse-engineering-a-contract/) _– EVM ఆప్‌కోడ్‌లను ఉపయోగించి కంపైల్ చేయబడిన స్మార్ట్ కాంట్రాక్ట్‌ను ఎలా రివర్స్-ఇంజనీర్ చేయాలి._

<QuizWidget quizKey="evm" />
