ماشین مجازی اتریوم (EVM) چیست و چگونه کار می کند؟
ماشین مجازی اتریوم (Ethereum Virtual Machine / EVM) یکی از اصلیترین اجزا در بلاک چین اتریوم است و در قالب یک کامپیوتر غیرمتمرکز، جهت اجرای قراردادهای هوشمند و اپلیکیشنهای غیرمتمرکز مورد استفاده قرار میگیرد. از این رو آگاهی در مورد نحوه عملکرد و ویژگیهای ماشین مجازی اتریوم، برای افراد علاقهمند و توسعهدهندگان در این حوزه و همچنین فناوری بلاک چین و دیفای (DeFi) رمزرازها اهمیت زیادی دارد.
پادکست مقاله ماشین مجازی اتریوم
مطالعه بیشتر: بلاک چین چیست؟
البته که ماشین مجازی اتریوم یا EVM، فقط مختص بلاک چین اتریوم نبوده و شبکههای بسیار دیگری از جمله پالیگان، آوالانچ، آربیتروم و . . . نیز از این فناوری استفاده میکنند. ماشین مجازی اتریوم در واقع قلب اکوسیستم قراردادهای هوشمند در صنعت رمزارزها را تشکیل میدهد و بهعنوان یکی از عناصر اصلی در این زمینه، بهشکل یک موتور اجرایی ویژه اپلیکیشنهای غیرمتمرکز و قراردادهای هوشمند عمل میکند.
به این ترتیب، در این مقاله از صرافی ارز دیجیتال او ام پی فینکس تصمیم گرفتیم که به بررسی ماشین مجازی اتریوم، نحوه عملکرد و ویژگیهای مثبت و منفی آن بپردازیم. اما در ابتدا بهتر است با مفهوم ماشین مجازی آشنا شویم.
منظور از ماشین مجازی چیست؟
ماشین مجازی (Virtual Machine) که به اختصار به آن “VM” هم میگویند، تفاوت چندانی با یک سیستم کامپیوتری فیزیکی مانند لپتاپ، گوشی موبایل هوشمند یا یک سرور ندارد. ماشین مجازی دارای پردازنده مرکزی (CPU)، حافظه و فضای ذخیرهسازی بوده و در صورت نیاز، به شبکه اینترنت هم متصل میشود. ماشینهای مجازی عموماً در قالب کامپیوترهای مجازی یا نرمافزارهای کامپیوتری، درون یک سرور و تنها بهشکل کد و برنامه هستند و این در حالی است که یک کامپیوتر فیزیکی عادی، دارای قطعات و سختافزارهای مختلف و قابل لمس است.
در دنیای ماشینهای مجازی، مجازیسازی (Virtualization) به فرآیند ساخت یک نسخه مجازیِ مبتنی بر نرمافزار از یک سیستم کامپیوتری گفته میشود که از یک کامپیوتر فیزیکی بهعنوان هاست (Host) خود مقداری نیروی پردازش، حافظه و فضای ذخیرهسازی میگیرد. کامپیوتر تأمینکننده این موارد یا هاست یک ماشین مجازی میتواند کامپیوتر خانگی شما، سرور از راه دور یا یک سرور ابری باشد.
ماشین مجازی شبیه به یک فایل کامپیوتری عادی بوده که بهتنهایی تمام عملیات و قابلیتهای یک کامپیوتر فیزیکی و واقعی را دارد و میتواند در یک پنجره جدا، بهعنوان یک محیط کامپیوتری مجزا فعالیت کند و حتی سیستم عاملی متفاوت داشته باشد. ماشین مجازی که در کامپیوتر هاست خود راهاندازی شده، از تمامی بخشهای آن جدا بوده که یعنی، نرمافزاری که در ماشین مجازی اجرا شده در عملکرد سیستم هاست خود تداخلی ایجاد نمیکند. برای یک ماشین مجازی، میتوان کاربردهای زیر را تعریف کرد:
- ساخت و پیادهسازی اپلیکیشن در سرورهای ابری
- استفاده از یک سیستم عامل جدید و متفاوت
- پیادهسازی یک محیط کار و نرمافزاری جدید که فرآیند تست و آزمون و خطاهای توسعهدهندگان در سناریوهای مختلف را تسهیل میکند
- پشتیبانگیری از سیستم عامل فعلی
- دسترسی به دادههای ویروسیشده یا اجرای نسخه قدیمیتر از یک نرمافزار یا سیستم عامل
- اجرای نرمافزارهایی که در سیستم عامل فعلی قابلیت راهاندازی ندارند
ماشینهای مجازی این مزیت را دارند که کاملاً مجزا از یکدیگر و ماشین هاست خود، با نرمافزار، اپلیکیشنها و سیستم عامل ویژه خود فعالیت کنند. در این زمینه، نرمافزاری تحت عنوان هایپروایزر (Hypervisor) وجود دارد که وظیفه آن مدیریت ماشینهای مجازی است و به شما اجازه داده تا سیستم عاملهای مختلف را بهصورت همزمان در چندین ماشین مجازی اجرا کنید. یعنی مثلاً میتوانید ماشینهای مجازی مختص سیستم عامل لینوکس را در ویندوز اجرا کنید یا یک نسخه قدیمیتر از ویندوز فعلی خود را بهصورت همزمان با آن داشته باشید.
ماشین مجازی اتریوم (EVM) چیست و چگونه کار می کند؟
بلاک چین اتریوم که توسط خالق اصلی آن ویتالیک بوترین (Vitalik Buterin) در سال ۲۰۱۳ معرفی شد، موفقیت خارقالعاده خود در زمینه تبدیلشدن به برترین بلاک چین دنیا ویژه اپلیکیشنهای غیرمتمرکز (DApps) را مدیون ماشین مجازی اتریوم (Ethereum Virtual Machine / EVM) است.
ماشین مجازی اتریوم یا به اختصار “EVM” توسط گوین وود (Gavin Wood)، توسعهدهنده وقت اتریوم و خالق پروژههای پولکادات (Polkadot) و کوزاما (Kusama)، طراحی شده است. ماشین مجازی اتریوم بهزبان “++C” نوشته شده و با استفاده از کامپایلر “LLVM” راهاندازی شده است و در قالب یک ماشین حالت (State Machine) ویژه عمل کرده که بهطور مداوم در حال فعالیت است و عملیات و فرآیندهای غیرقابل تغییر آن، وضعیت هر بلوک در بلاک چین اتریوم را مشخص میکند.
ماشین مجازی اتریوم نهتنها عملکرد نودهای بلاک چین اتریوم را مدیریت و کنترل کرده، بلکه مقررات ویژه تغییر حالت یا وضعیت (State) در هر بلوک به بلوک دیگر را تعریف میکند. این قابلیت در واقع باعث شده بتوان قرارداد هوشمند اتریوم را در این بلاک چین اجرا کرد.
EVM در تعریف فنی، یک موتور کامپیوتری مجازی تورینگ کامل (Turing-Complete) بوده که درون شبکهای متشکل از قراردادهای هوشمند تعبیه شده است. ماشین مجازی اتریوم در این شبکه، بهشکل یک پردازنده سراسری و غیرمتمرکز عمل کرده که قراردادهای هوشمند و اپلیکیشنهای غیرمتمرکز را در بلاک چین مربوطه اجرا میکند. این ماشین مجازی، ساختار داده استک (Stack) و ۲۵۶ بیتی داشته و ویژه عملیات رمزنگاری نظیر هشینگ (Hashing) و محاسبات منحنی بیضوی (Elliptic curve) بهینهسازی شده که برای تأمین امنیت تراکنشها ضروری هستند.
مطالعه بیشتر: اپلیکیشن غیرمتمرکز یا DApp چیست؟
ماشین مجازی اتریوم، قراردادهای هوشمند نوشتهشده با زبان برنامه نویسی سالیدیتی (Solidity) و وایپر (Vyper) را خوانده و آنها را به بایتکد (Bytecode) تبدیل میکند. هنگامی که یک تراکنش در یک قرارداد هوشمند اجرا میشود، EVM دادههای تراکنش از جمله کارمزد گس (Gas Fee) مورد نیاز را بارگزاری میکند. در صورتی که کارمزد گس شبکه با انجام فرآیندهای مختلف کاهش پیدا کند و اصطلاحاً تخلیه شود، تراکنش مربوطه متوقف شده و نامعتبر در نظر گرفته میشود. البته که کارمزد مربوطه در ازای فعالیت انجامشده توسط نود، به آن پرداخت میشود.
قراردادهای هوشمند در ماشین مجازی اتریوم، میتوانند با یکدیگر ارتباط برقرار کنند. هر فراخوان توسط یک قرارداد هوشمند، نسخهای دیگر از EVM با دادههای مورد نیاز از تراکنش اصلی را بارگزاری میکند. تخلیه گس شبکه حین انجام این عملیات، منجر به بازگشت وضعیت بلوک به قبل از انجام تراکنش میشود. مراحل انجام تراکنش در قرادادهای هوشمند در ماشین مجازی اتریوم را میتوان به این شکل تعریف کرد:
- تراکنشها جهت پردازش و ثبت در بلوک باهم رقابت میکنند و زمانی که انتخاب شدند، به ماشین مجازی اتریوم هدایت میشوند. (بخشی از این رقابت، بر اساس میزان کامزدهای پرداختی کاربر و اولویتبندی نودها بر اساس کارمزدها صورت میگیرد.)
- ماشین مجازی اتریوم بهترتیب این کدهای عملیاتی (Opcodes) را اجرا میکند.
- پس از پردازش تراکنشها، ماشین مجازی اتریوم به پایگاه داده وضعیت جهانی یا سراسری شبکه (Global State) وارد شده تا تغییرات مربوطه را اعمال و ثبت کند. در این پایگاه داده، اطلاعات تمامی حسابها و موجودی آنها در بلاک چین مربوطه ذخیره شدهاند.
به این ترتیب، EVM یک ماشین حالت داشته که بهطور ذاتی طی فرآیند پردازش تراکنشها، دائماً در حال نوسان و تغییر است و یک حالت یا وضعیت سراسری داشته که اطلاعات مربوط به حسابهای مختلف در بلاک چین اتریوم یا دیگر شبکهها را ذخیره میکند. تمامی این فعالیتها، توسط کدهای نوشتهشده در این ماشین مجازی مدیریت میشوند که خود از زمان راهاندازی در شبکه اتریوم در سال ۲۰۱۵ تا کنون، چندین مرتبه دستخوش تغییرات و بهروزرسانی شده و به نسخههای مختلف در شبکههای مختلف تبدیل شدهاند.
در واقع میتوان گفت ماشین مجازی اتریوم، مسئول برقراری یک تصویر و اصول کلی میان هزاران نود در بلاک چین اتریوم است و همچنین با اجرای کدهای مربوطه، نتایجی پایدار و مشخص را به شبکه و نودها تحویل داده و جزئیات دادهها را برای آنها یا کاربرها فاش نمیکند.
در نهایت باید گفت با اینکه ماشین مجازی اتریوم یکی از اصلیترین اجزای این بلاک چین بهشمار میآید، فعالیتهای آن تنها به این شبکه محدود نشده و انحصار آن در اختیار اتریوم نیست؛ بسیاری از بلاک چینهای دیگر مثل پالیگان (Polygon)، آوالانچ (Avalanche)، آربیتروم (Arbitrum)، آپتیمیزم (Optimism)، بیانبی (BNB) و . . . از EVM استفاده میکنند.
علت هم اینجا است که ماشین مجازی اتریوم محیطی را ویژه اجرای قراردادهای هوشمند ایجاد کرده که توسعهدهندگان از طریق آن، میتوانند اپلیکیشنهایی را طراحی کنند که در شبکههای مختلف قابل اجرا هستند. این ویژگی تعاملپذیری، باعث شده EVM به اصلیترین گزینه در این زمینه تبدیل شود و به پذیرش گسترده در دنیا برسد.
ویژگیهای ماشین مجازی اتریوم (EVM)
در این بخش به بررسی اصلیترین قابلیتها و ویژگیهای ماشین مجازی اتریوم (EVM) میپردازیم:
تمرکززدایی: ماهیت غیرمتمرکز ماشین مجازی اتریوم، باعث شده پلتفرمهای ویژه قراردادهای هوشمند نظیر اتریوم و بیانبی، بتوانند عملکرد پایداد و قدرتمند خود را حفظ کنند و اجازه کنترل و مدیریت را به یک نهاد تنها ندهند. این ویژگی از طریق اعتبارسنجیهای جمعی و اجرای چندین کد مختلف توسط نودهای این شبکهها محقق شده است. تمرکززدایی در EVM باعث شده محیطی بدون نیاز به عامل اعتماد بهوجود آید که در آن، تراکنشها بهصورت شفاف و غیرقابل تغییر پردازش و ثبت میشوند.
تورینگ کامل: یکی از ویژگیهای منحصربهفرد ماشین مجازی اتریوم، تورینگ کاملبودن این سیستم است؛ به این معنی که EVM از لحاظ تئوری، قادر به اجرای هرگونه دستور و محاسبات است و در صورتی که منابع کافی به آن داده شود، یک محیط بدون حد و مرز ویژه توسعه اپلیکیشن و نرمافراز را بهوجود میآورد.
ماشین مجازی اتریوم جهت مدیریت و استفاده بهینه از این منابع محاسباتی و جلوگیری از استفاده نابهجا از آنها در شبکه، یک سیستم ویژه گس را پیادهسازی کرده است. این سیستم میزان نیروی محاسباتی مورد نیاز برای انجام یک تراکنش و اجرای قرارداد هوشمند مربوطه را، در قالب یک عدد اندازهگیری میکند و آن را به کاربر و نود شبکه نمایش میدهد. از این رو، پایداری در شبکه برقرار شده و هککردن، تقلب یا حمله به آن، هزینهبردار و بیفایده خواهد بود.
در رابطه با مزایای ماشین مجازی اتریوم، باید گفت که شبکه اتریوم امروزه به اصلیترین پلتفرم قراردادهای هوشمند تبدیل شده که هماکنون جامعه بسیار گستردهای از توسعهدهندگان را در اختیار دارد. سازگاری با ماشین مجازی اتریوم، باعث شده توسعهدهندگان بتوانند قراردادهای هوشمند و اپلیکیشنهای غیرمتمرکز اتریومی را بدون نیاز به تغییرات اساسی، در بلاک چین مد نظر خود پیادهسازی و اجرا کنند.
در نتیجه اصلیترین مزیت این ویژگی، تعاملپذیری میان شبکههای بلاک چین مختلف است و ماشین مجازی اتریوم، توانسته ارتباطی بینقص و روان میان این بلاک چین و سایر شبکهها برقرار کند. این یعنی که تراکنشهای بینشبکهای، انتقال ارز و اطلاعات و اشتراکگذاری دادهها میان بلاک چینها امکانپذیر شده و چنین شبکه بههم پیوستهای، قابلیتها و سطح عملکرد پلتفرمهای غیرمتمرکز را ارتقا داده است.
بهعلاوه، شبکههایی که از ماشین مجازی اتریوم پشتیبانی میکنند، محیطی یکپارچه و مشابه با ابزارها و زبانهای برنامهنویسی اتریومی برای توسعهدهندگان ایجاد کرده که از این طریق میتوانند اپلیکیشنهای خود را راحتتر طراحی کنند و به نوآوری بپردازند. این وجه تشابه باعث شده منحنی یادگیری و موانع موجود برای فعالیت در یک پلتفرم کوچک شوند و سطح پذیرش و توسعه در پلتفرمها و شبکههای مختلف ارتقا پیدا کنند.
ماشین مجازی اتریوم چه معایبی دارد؟
علیرغم تمام مزایا و ویژگیهای ماشین مجازی اتریوم (EVM)، این فناوری معایب و محدودیتهایی را نیز دارد که بهویژه در صورتی که توسعهدهندگان و کارآفرینان قصد فعالیت در بلاک چین اتریوم را دارند، باید در مورد آنها آگاهی داشته باشند. شاید مهمترین مسئله در این زمینه، کارمزدهای سنگین تراکنشها یا کارمزدهای گس هنگام اجرای یک قرارداد هوشمند در شبکه اتریوم باشد.
اندازه این کارمزدها که در قالب ارز دیجیتال اتر (ETH) پرداخت میشوند، بر اساس میزان پیچیدگی قرارداد هوشمند مربوطه و تراکم شبکه هنگام اجرای آن محاسبه شده و امکان تغییر آن برای کاربر، توسعهدهنده و یا کارآفرین مربوطه وجود ندارد. بهعلاوه، از جایی که سالیدیتی اصلیترین زبان برنامهنویسی در ماشین مجازی اتریوم است، توسعهدهندگان باید دانش کافی از این زبان و همچنین تخصص فنی لازم را برای ساخت یک قرارداد هوشمند کارآمد در شبکه اتریوم را داشته باشند.
مطالعه بیشتر: قرارداد هوشمند چیست؟
داشتن چنین دانش و تخصصی، به این دلیل حائز اهمیت است که محاسبات بیشتر در هر قرارداد هوشمند، منجر به بالارفتن کارمزد گس اجرای آن میشود و در نهایت، این مسئله در مسیر موفقیت پروژه مربوطه تاثیر میگذارد. در صورتی که توسعهدهندگان با زبان برنامهنویسی متفاوتی قرارداد هوشمند خود را طراحی کنند، باید مراقب تکرار دستورها و کدها باشند، چرا که EVM در هر صورت آنها را کامپایل میکند.
با وجود اینکه قابلیت ارتقا و بهروزرسانی قراردادهای هوشمند وجود دارد، توسعهدهنده در قرارداد خود مجبور به استفاده از قرادادهای هوشمند واسطه جهت اجرای آن در ماشین مجازی اتریوم میشود که این مسئله ریسکهای امنیتی ویژه خود را نیز دارد.
آینده برای ماشین مجازی اتریوم چگونه است؟
صرف نظر از انقلابآفرینی ماشین مجازی اتریوم در اکوسیستم بلاک چینها، این فناوری توسط چندین پروژه بلاک چینی دیگر جهت خواندن و اجرای کدها بهبود و ارتقا یافته است.
با توجه به اینکه تعاملپذیری به یکی از حیاتیترین ویژگیهای پروژههای امروزی تبدیل شده، بسیاری از بلاک چینهای جدید سازگار با ماشین مجازی اتریوم، طوری طراحی شدهاند که کارمزدهای کمتر و سرعت پردازش بالاتری نسبت به پروتکل اتریوم داشته باشند. از این رو، این بلاک چینها امروزه میتوانند بهراحتی با کاربران در شبکه اتریوم ارتباط برقرار کنند و فرآیند انتقال داراییها به شبکه خودشان را از طریق پلهای بلاک چینی تسهیل کنند.
پروتکل اتریوم هم موفق شد ارتقای مرج اتریوم (Ethereum Merge) را در سال ۲۰۲۲ تکمیل کند و مرحله بعدی برای این بلاک چین، حرکت از EVM به وباسمبلی اتریوم (Ethereum WebAssembly) است. پروتکل eWASM طراحی ماژولار (Modular) داشته و وابسته به هیچ پلتفرمی نیست و از آن بهعنوان تحول بعدی در پروتکل اتریوم یاد میشود.
همچنین، به سایر بلاک چینها این انگیزه را داده تا از این محیط جهت اجرای قراردادهای هوشمند خود استفاده کنند. البته تنها گذر زمان نشان خواهد داد که پروتکل eWASM، میتواند جایگاه ماشین مجازی اتریوم را بهعنوان برترین و معتبرترین مکانیزم ویژه قراردادهای هوشمند بگیرد یا خیر!
در این مقاله از صرافی او ام پی فینکس، به بررسی فناوری ماشین مجازی اتریوم (EVM) و ویژگیها و نحوه عملکرد آن پرداختیم. در صورتی که پیرامون موارد فوق سوال، پیشنهاد و یا انتقادی دارید، خواهشمندیم با ثبت نظر خود با ما در ارتباط باشید.
سوالات پرتکرار از مقاله ماشین مجازی اتریوم
-
EVM چیست؟
EVM کوچکشده عبارت ماشین مجازی اتریوم (Ethereum Virual Machine) بوده که محیطی ویژه اجرای قراردادهای هوشمند در این شبکه و سایر بلاکچینهای سازگار با آن است.
-
EVM Wallet چیست؟
EVM Wallet به تمامی کیف پولهای ارز دیجیتال سازگار با ماشین مجازی اتریوم گفته میشود.
-
ساخت کیف پول EVM چگونه است؟
شما میتوانید با نصب کیف پولهای سازگار با ماشین مجازی اتریوم، یک کیف پول EVM را ساخته باشید.