مرکزی مواد پر جائیں
Change page

ایتھیریم ورچوئل مشین (EVM)

صفحہ کی آخری اپ ڈیٹ: 25 فروری، 2026

ایتھیریم ورچوئل مشین (EVM) ایک ڈی سینٹرلائزڈ ورچوئل ماحول ہے جو تمام Ethereum نوڈس پر کوڈ کو مستقل اور محفوظ طریقے سے چلاتا ہے۔ نوڈس اسمارٹ کانٹریکٹس کو چلانے کے لیے EVM کو چلاتے ہیں، آپریشنز کے لیے درکار کمپیوٹیشنل کوشش کی پیمائش کرنے کے لیے "گیس" کا استعمال کرتے ہیں، جس سے وسائل کی موثر تقسیم اور نیٹ ورک کی سیکیورٹی کو یقینی بنایا جاتا ہے۔

بنیادی شرائط

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) جیسی بلاک چینز کو بیان کرنے کے لیے استعمال کی جاتی ہے، جو کرپٹوگرافی کے بنیادی ٹولز کا استعمال کرتے ہوئے ایک ڈی سینٹرلائزڈ کرنسی کو فعال کرتی ہیں۔ لیجر سرگرمی کا ایک ریکارڈ برقرار رکھتا ہے جسے ان اصولوں کے مجموعے پر عمل کرنا چاہیے جو یہ کنٹرول کرتے ہیں کہ کوئی لیجر میں ترمیم کرنے کے لیے کیا کر سکتا ہے اور کیا نہیں کر سکتا۔ مثال کے طور پر، ایک بٹ کوائن ایڈریس اس سے زیادہ بٹ کوائن خرچ نہیں کر سکتا جتنا اس نے پہلے وصول کیا ہو۔ یہ اصول بٹ کوائن اور بہت سی دوسری بلاک چینز پر تمام ٹرانزیکشنز کی بنیاد ہیں۔

اگرچہ ایتھیریم کی اپنی مقامی کرپٹو کرنسی (ایتھر) ہے جو تقریباً بالکل انہی بدیہی اصولوں کی پیروی کرتی ہے، لیکن یہ ایک بہت زیادہ طاقتور فنکشن کو بھی فعال کرتی ہے: اسمارٹ کانٹریکٹس۔ اس زیادہ پیچیدہ خصوصیت کے لیے، ایک زیادہ نفیس تشبیہ کی ضرورت ہے۔ ڈسٹری بیوٹڈ لیجر کے بجائے، ایتھیریم ایک ڈسٹری بیوٹڈ اسٹیٹ مشین (state machine) (opens in a new tab) ہے۔ ایتھیریم کی اسٹیٹ ایک بڑا ڈیٹا اسٹرکچر ہے جو نہ صرف تمام اکاؤنٹس اور بیلنس کو رکھتا ہے، بلکہ ایک مشین اسٹیٹ بھی رکھتا ہے، جو پہلے سے طے شدہ اصولوں کے مطابق ایک بلاک سے دوسرے بلاک میں تبدیل ہو سکتا ہے، اور جو صوابدیدی مشین کوڈ کو چلا سکتا ہے۔ ایک بلاک سے دوسرے بلاک میں اسٹیٹ کو تبدیل کرنے کے مخصوص اصول EVM کے ذریعے بیان کیے گئے ہیں۔

EVM کی ساخت کو ظاہر کرنے والا ایک خاکہ خاکہ Ethereum EVM illustrated (opens in a new tab) سے اخذ کیا گیا ہے

ایتھیریم اسٹیٹ ٹرانزیشن فنکشن

EVM ایک ریاضیاتی فنکشن کی طرح برتاؤ کرتا ہے: ایک ان پٹ دیے جانے پر، یہ ایک حتمی آؤٹ پٹ تیار کرتا ہے۔ اس لیے ایتھیریم کو باقاعدہ طور پر ایک اسٹیٹ ٹرانزیشن فنکشن کے طور پر بیان کرنا کافی مددگار ہے:

1Y(S, T)= S'

ایک پرانی درست اسٹیٹ (S) اور درست ٹرانزیکشنز کے ایک نئے سیٹ (T) کو دیکھتے ہوئے، ایتھیریم اسٹیٹ ٹرانزیشن فنکشن Y(S, T) ایک نئی درست آؤٹ پٹ اسٹیٹ S' تیار کرتا ہے۔

اسٹیٹ

ایتھیریم کے تناظر میں، اسٹیٹ ایک بہت بڑا ڈیٹا اسٹرکچر ہے جسے ترمیم شدہ مرکل پیٹریشیا ٹرائی (modified Merkle Patricia Trie) کہا جاتا ہے، جو تمام اکاؤنٹس کو ہیشز کے ذریعے منسلک رکھتا ہے اور اسے بلاک چین پر محفوظ کردہ ایک واحد روٹ ہیش تک کم کیا جا سکتا ہے۔

ٹرانزیکشنز

ٹرانزیکشنز اکاؤنٹس کی جانب سے کرپٹوگرافک طور پر سائن کی گئی ہدایات ہیں۔ ٹرانزیکشنز کی دو اقسام ہیں: وہ جن کے نتیجے میں میسج کالز ہوتی ہیں اور وہ جن کے نتیجے میں کانٹریکٹ کی تخلیق ہوتی ہے۔

کانٹریکٹ کی تخلیق کے نتیجے میں ایک نیا کانٹریکٹ اکاؤنٹ بنتا ہے جس میں مرتب شدہ (compiled) اسمارٹ کانٹریکٹ بائٹ کوڈ ہوتا ہے۔ جب بھی کوئی دوسرا اکاؤنٹ اس کانٹریکٹ پر میسج کال کرتا ہے، تو یہ اپنا بائٹ کوڈ چلاتا ہے۔

EVM ہدایات

EVM ایک اسٹیک مشین (stack machine) (opens in a new tab) کے طور پر کام کرتا ہے جس کی گہرائی 1024 آئٹمز ہے۔ ہر آئٹم ایک 256-بٹ ورڈ ہے، جسے 256-بٹ کرپٹوگرافی (جیسے Keccak-256 ہیشز یا secp256k1 سگنیچرز) کے ساتھ استعمال میں آسانی کے لیے منتخب کیا گیا تھا۔

عمل درآمد کے دوران، EVM ایک عارضی میموری (ورڈ-ایڈریسڈ بائٹ اری کے طور پر) برقرار رکھتا ہے، جو ٹرانزیکشنز کے درمیان برقرار نہیں رہتی ہے۔

عارضی اسٹوریج (Transient storage)

عارضی اسٹوریج ایک فی-ٹرانزیکشن کی-ویلیو (key-value) اسٹور ہے جس تک TSTORE اور TLOAD اوپ کوڈز (opcodes) کے ذریعے رسائی حاصل کی جاتی ہے۔ یہ ایک ہی ٹرانزیکشن کے دوران تمام اندرونی کالز میں برقرار رہتا ہے لیکن ٹرانزیکشن کے اختتام پر صاف ہو جاتا ہے۔ میموری کے برعکس، عارضی اسٹوریج کو ایگزیکیوشن فریم کے بجائے EVM اسٹیٹ کے حصے کے طور پر ماڈل کیا گیا ہے، پھر بھی یہ گلوبل اسٹیٹ میں کمٹ (commit) نہیں ہوتا ہے۔ عارضی اسٹوریج ایک ٹرانزیکشن کے دوران اندرونی کالز میں گیس کے لحاظ سے موثر عارضی اسٹیٹ شیئرنگ کو فعال کرتا ہے۔

اسٹوریج

کانٹریکٹس میں ایک مرکل پیٹریشیا اسٹوریج ٹرائی (ورڈ-ایڈریس ایبل ورڈ اری کے طور پر) ہوتا ہے، جو متعلقہ اکاؤنٹ سے وابستہ ہوتا ہے اور گلوبل اسٹیٹ کا حصہ ہوتا ہے۔ یہ مستقل اسٹوریج عارضی اسٹوریج سے مختلف ہے، جو صرف ایک ٹرانزیکشن کے دورانیے کے لیے دستیاب ہوتا ہے اور اکاؤنٹ کے مستقل اسٹوریج ٹرائی کا حصہ نہیں بنتا۔

اوپ کوڈز (Opcodes)

مرتب شدہ اسمارٹ کانٹریکٹ بائٹ کوڈ متعدد EVM اوپ کوڈز (opcodes) کے طور پر چلتا ہے، جو معیاری اسٹیک آپریشنز جیسے XOR، AND، ADD، SUB وغیرہ انجام دیتے ہیں۔ EVM متعدد بلاک چین سے مخصوص اسٹیک آپریشنز بھی نافذ کرتا ہے، جیسے ADDRESS، BALANCE، BLOCKHASH وغیرہ۔ اوپ کوڈ سیٹ میں TSTORE اور TLOAD بھی شامل ہیں، جو عارضی اسٹوریج تک رسائی فراہم کرتے ہیں۔

ایک خاکہ جو دکھاتا ہے کہ EVM آپریشنز کے لیے گیس کی کہاں ضرورت ہوتی ہے خاکے Ethereum EVM illustrated (opens in a new tab) سے اخذ کیے گئے ہیں

EVM کی عمل داریاں (Implementations)

EVM کی تمام عمل داریوں (implementations) کو ایتھیریم ییلو پیپر (Ethereum Yellowpaper) میں بیان کردہ تصریحات (specification) پر عمل کرنا چاہیے۔

ایتھیریم کی دس سالہ تاریخ میں، EVM میں کئی ترامیم کی گئی ہیں، اور مختلف پروگرامنگ زبانوں میں EVM کی کئی عمل داریاں موجود ہیں۔

ایتھیریم ایگزیکیوشن کلائنٹس میں ایک EVM عمل داری شامل ہے۔ مزید برآں، متعدد اسٹینڈ الون (standalone) عمل داریاں موجود ہیں، بشمول:

مزید مطالعہ

ٹیوٹوریلز: ایتھیریم ورچوئل مشین (EVM) / ایتھیریم پر اوپ کوڈز

کیا یہ مضمون مددگار تھا؟