எத்தேரியம் விர்ச்சுவல் மெஷின் (EVM)
பக்கம் கடைசியாகப் புதுப்பிக்கப்பட்டது: 25 பிப்ரவரி, 2026
எத்தேரியம் விர்ச்சுவல் மெஷின் (EVM) என்பது அனைத்து Ethereum நோடுகளிலும் குறியீட்டை நிலையாகவும் பாதுகாப்பாகவும் செயல்படுத்தும் ஒரு பரவலாக்கப்பட்ட மெய்நிகர் சூழலாகும். ஸ்மார்ட் ஒப்பந்தங்களைச் செயல்படுத்த நோடுகள் EVM-ஐ இயக்குகின்றன, செயல்பாடுகளுக்கு தேவைப்படும் கணக்கீட்டு முயற்சியை அளவிட "gas"-ஐப் பயன்படுத்துகின்றன, இதன் மூலம் திறமையான வள ஒதுக்கீடு மற்றும் நெட்வொர்க் பாதுகாப்பை உறுதி செய்கின்றன.
முன்நிபந்தனைகள்
EVM-ஐப் புரிந்துகொள்ள கணினி அறிவியலில் உள்ள பொதுவான சொற்களான bytes (opens in a new tab), memory (opens in a new tab) மற்றும் stack (opens in a new tab) போன்றவற்றுடன் சில அடிப்படை பரிச்சயம் அவசியம். hash functions (opens in a new tab) மற்றும் Merkle tree (opens in a new tab) போன்ற கிரிப்டோகிராஃபி/பிளாக்செயின் கருத்துகளுடன் வசதியாக இருப்பதும் உதவியாக இருக்கும்.
லெட்ஜரிலிருந்து ஸ்டேட் மெஷினுக்கு
'பகிர்ந்தளிக்கப்பட்ட லெட்ஜர்' (distributed ledger) என்ற ஒப்புமை பெரும்பாலும் Bitcoin போன்ற பிளாக்செயின்களை விவரிக்கப் பயன்படுத்தப்படுகிறது, இது கிரிப்டோகிராஃபியின் அடிப்படை கருவிகளைப் பயன்படுத்தி பரவலாக்கப்பட்ட நாணயத்தை செயல்படுத்துகிறது. லெட்ஜரை மாற்றியமைக்க ஒருவர் என்ன செய்ய முடியும் மற்றும் என்ன செய்ய முடியாது என்பதை நிர்வகிக்கும் விதிகளின் தொகுப்பைக் கடைப்பிடிக்க வேண்டிய செயல்பாட்டின் பதிவை லெட்ஜர் பராமரிக்கிறது. எடுத்துக்காட்டாக, ஒரு Bitcoin முகவரி முன்பு பெற்றதை விட அதிகமான Bitcoin-ஐ செலவிட முடியாது. இந்த விதிகள் Bitcoin மற்றும் பல பிளாக்செயின்களில் உள்ள அனைத்து பரிவர்த்தனைகளுக்கும் அடிப்படையாக அமைகின்றன.
Ethereum-க்கு அதன் சொந்த நேட்டிவ் கிரிப்டோகரன்சி (ether) இருந்தாலும், அது கிட்டத்தட்ட அதே உள்ளுணர்வு விதிகளைப் பின்பற்றுகிறது, இது மிகவும் சக்திவாய்ந்த செயல்பாட்டையும் செயல்படுத்துகிறது: ஸ்மார்ட் ஒப்பந்தங்கள். இந்த மிகவும் சிக்கலான அம்சத்திற்கு, மிகவும் நுட்பமான ஒப்புமை தேவைப்படுகிறது. பகிர்ந்தளிக்கப்பட்ட லெட்ஜருக்குப் பதிலாக, Ethereum என்பது ஒரு பகிர்ந்தளிக்கப்பட்ட ஸ்டேட் மெஷின் (opens in a new tab) (state machine) ஆகும். Ethereum-இன் நிலை (state) என்பது ஒரு பெரிய தரவு கட்டமைப்பாகும், இது அனைத்து கணக்குகள் மற்றும் நிலுவைகளை மட்டுமல்லாமல், ஒரு இயந்திர நிலையையும் (machine state) கொண்டுள்ளது, இது முன் வரையறுக்கப்பட்ட விதிகளின்படி பிளாக்கிற்கு பிளாக் மாறலாம், மேலும் இது தன்னிச்சையான இயந்திரக் குறியீட்டை இயக்க முடியும். பிளாக்கிற்கு பிளாக் நிலையை மாற்றுவதற்கான குறிப்பிட்ட விதிகள் EVM-ஆல் வரையறுக்கப்படுகின்றன.
Ethereum EVM illustrated (opens in a new tab)-லிருந்து தழுவப்பட்ட வரைபடம்
எத்தேரியம் நிலை மாற்றச் செயல்பாடு
EVM ஒரு கணிதச் செயல்பாட்டைப் போலவே செயல்படுகிறது: ஒரு உள்ளீடு கொடுக்கப்பட்டால், அது ஒரு உறுதியான வெளியீட்டை உருவாக்குகிறது. எனவே Ethereum-ஐ ஒரு நிலை மாற்றச் செயல்பாடு (state transition function) கொண்டிருப்பதாக முறையாக விவரிப்பது மிகவும் உதவியாக இருக்கும்:
1Y(S, T)= S'பழைய செல்லுபடியாகும் நிலை (S) மற்றும் புதிய செல்லுபடியாகும் பரிவர்த்தனைகளின் தொகுப்பு (T) கொடுக்கப்பட்டால், Ethereum நிலை மாற்றச் செயல்பாடு Y(S, T) ஒரு புதிய செல்லுபடியாகும் வெளியீட்டு நிலையை S' உருவாக்குகிறது.
நிலை (State)
Ethereum-இன் சூழலில், நிலை என்பது மாற்றியமைக்கப்பட்ட Merkle Patricia Trie எனப்படும் ஒரு பெரிய தரவு கட்டமைப்பாகும், இது அனைத்து கணக்குகளையும் ஹாஷ்களால் இணைத்து, பிளாக்செயினில் சேமிக்கப்பட்டுள்ள ஒற்றை ரூட் ஹாஷாகக் குறைக்கக்கூடியதாக வைத்திருக்கிறது.
பரிவர்த்தனைகள்
பரிவர்த்தனைகள் என்பவை கணக்குகளிலிருந்து கிரிப்டோகிராஃபிக் முறையில் கையொப்பமிடப்பட்ட வழிமுறைகளாகும். இரண்டு வகையான பரிவர்த்தனைகள் உள்ளன: செய்தி அழைப்புகளை (message calls) விளைவிப்பவை மற்றும் ஒப்பந்த உருவாக்கத்தை (contract creation) விளைவிப்பவை.
ஒப்பந்த உருவாக்கம் என்பது தொகுக்கப்பட்ட ஸ்மார்ட் ஒப்பந்த பைட்கோட்டைக் கொண்ட புதிய ஒப்பந்தக் கணக்கை உருவாக்குகிறது. மற்றொரு கணக்கு அந்த ஒப்பந்தத்திற்கு செய்தி அழைப்பை மேற்கொள்ளும் போதெல்லாம், அது அதன் பைட்கோட்டை இயக்குகிறது.
EVM வழிமுறைகள்
EVM 1024 உருப்படிகள் ஆழம் கொண்ட ஒரு ஸ்டாக் மெஷினாக (opens in a new tab) செயல்படுகிறது. ஒவ்வொரு உருப்படியும் 256-பிட் சொல்லாகும், இது 256-பிட் கிரிப்டோகிராஃபியுடன் (Keccak-256 ஹாஷ்கள் அல்லது secp256k1 கையொப்பங்கள் போன்றவை) பயன்படுத்துவதை எளிதாக்குவதற்காகத் தேர்ந்தெடுக்கப்பட்டது.
செயல்பாட்டின் போது, EVM ஒரு தற்காலிக நினைவகத்தை (சொல்-முகவரியிடப்பட்ட பைட் வரிசையாக) பராமரிக்கிறது, இது பரிவர்த்தனைகளுக்கு இடையில் நிலைத்திருக்காது.
தற்காலிக சேமிப்பு (Transient storage)
தற்காலிக சேமிப்பு என்பது TSTORE மற்றும் TLOAD ஆப்கோடுகள் மூலம் அணுகப்படும் ஒரு பரிவர்த்தனைக்கான விசை-மதிப்பு (key-value) சேமிப்பகமாகும். இது ஒரே பரிவர்த்தனையின் போது அனைத்து உள் அழைப்புகளிலும் நிலைத்திருக்கும், ஆனால் பரிவர்த்தனையின் முடிவில் அழிக்கப்படும். நினைவகத்தைப் போலல்லாமல், தற்காலிக சேமிப்பு எக்ஸிகியூஷன் ஃபிரேமுக்கு பதிலாக EVM நிலையின் ஒரு பகுதியாக வடிவமைக்கப்பட்டுள்ளது, இருப்பினும் இது உலகளாவிய நிலையில் (global state) கமிட் செய்யப்படுவதில்லை. தற்காலிக சேமிப்பு ஒரு பரிவர்த்தனையின் போது உள் அழைப்புகளில் கேஸ்-திறனுள்ள தற்காலிக நிலை பகிர்வை செயல்படுத்துகிறது.
சேமிப்பு (Storage)
ஒப்பந்தங்கள் ஒரு Merkle Patricia சேமிப்பு ட்ரையைக் (சொல்-முகவரியிடக்கூடிய சொல் வரிசையாக) கொண்டுள்ளன, இது குறிப்பிட்ட கணக்குடன் தொடர்புடையது மற்றும் உலகளாவிய நிலையின் ஒரு பகுதியாகும். இந்த நிரந்தர சேமிப்பு தற்காலிக சேமிப்பிலிருந்து வேறுபடுகிறது, இது ஒரு பரிவர்த்தனையின் காலத்திற்கு மட்டுமே கிடைக்கும் மற்றும் கணக்கின் நிரந்தர சேமிப்பு ட்ரையின் ஒரு பகுதியாக அமையாது.
ஆப்கோடுகள் (Opcodes)
தொகுக்கப்பட்ட ஸ்மார்ட் ஒப்பந்த பைட்கோடு பல EVM ஆப்கோடுகளாக செயல்படுகிறது, அவை XOR, AND, ADD, SUB போன்ற நிலையான ஸ்டாக் செயல்பாடுகளைச் செய்கின்றன. EVM ADDRESS, BALANCE, BLOCKHASH போன்ற பல பிளாக்செயின்-குறிப்பிட்ட ஸ்டாக் செயல்பாடுகளையும் செயல்படுத்துகிறது. ஆப்கோடு தொகுப்பில் TSTORE மற்றும் TLOAD ஆகியவையும் அடங்கும், அவை தற்காலிக சேமிப்பிற்கான அணுகலை வழங்குகின்றன.
Ethereum EVM illustrated (opens in a new tab)-லிருந்து தழுவப்பட்ட வரைபடங்கள்
EVM செயலாக்கங்கள்
EVM-இன் அனைத்து செயலாக்கங்களும் Ethereum Yellowpaper-இல் விவரிக்கப்பட்டுள்ள விவரக்குறிப்பைக் கடைப்பிடிக்க வேண்டும்.
Ethereum-இன் பத்து வருட வரலாற்றில், EVM பல திருத்தங்களுக்கு உட்பட்டுள்ளது, மேலும் பல்வேறு நிரலாக்க மொழிகளில் EVM-இன் பல செயலாக்கங்கள் உள்ளன.
Ethereum எக்ஸிகியூஷன் கிளையண்டுகள் ஒரு 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
மேலும் படிக்க
- Ethereum Yellowpaper (opens in a new tab)
- Jellopaper aka KEVM: Semantics of EVM in K (opens in a new tab)
- The Beigepaper (opens in a new tab)
- Ethereum Virtual Machine Opcodes (opens in a new tab)
- Ethereum Virtual Machine Opcodes Interactive Reference (opens in a new tab)
- Solidity ஆவணத்தில் ஒரு சிறிய அறிமுகம் (opens in a new tab)
- Mastering Ethereum - The Ethereum Virtual Machine (opens in a new tab)
தொடர்புடைய தலைப்புகள்
பயிற்சிகள்: எத்தேரியம் விர்ச்சுவல் மெஷின் (EVM) / எத்தேரியத்தில் ஆப்கோடுகள்
- Yellow Paper-இன் EVM விவரக்குறிப்புகளைப் புரிந்துகொள்வது – Ethereum Yellow Paper-இலிருந்து முறையான EVM விவரக்குறிப்பின் வழிகாட்டப்பட்ட ஒத்திகை.
- ஒரு ஒப்பந்தத்தை ரிவர்ஸ் இன்ஜினியரிங் செய்தல் – EVM ஆப்கோடுகளைப் பயன்படுத்தி தொகுக்கப்பட்ட ஸ்மார்ட் ஒப்பந்தத்தை எவ்வாறு ரிவர்ஸ் இன்ஜினியரிங் செய்வது.