اگر اخیرا وارد فضای بلاک چین شدهاید، ممکن است با عبارت ماشین مجازی اتریوم (Ethereum Virtual Machine) یا به اختصار EVM برخورد کرده باشید. ممکن است این سوال برایتان پیش بیاید که EVM چیست و چه کاربردهایی دارد؟ خالقان اتریوم از روز اول انتشار پروتکل خود همه چیز را به صورت واضح در اینباره توضیح دادهاند؛ آنها قصد داشتند به یک «کامپیوتر جهانی» یا یک «اینترنت کامپیوتر» تبدیل شوند. اما چگونه میتوان به چنین اهدافی جامه عمل پوشاند؟ بخشی از پاسخ این سوال در بطن مفهوم EVM نهفته است. پیش از اینکه به سراغ مطالعه مفهوم ماشین مجازی اتریوم برویم، لازم است با مفاهیمی همچون ماشینهای مجازی، سیستمهای تورینگ کامل، قراردادهای هوشمند، کارمزد گس و نحوه ذخیرهسازی اطلاعات در شبکه اتریوم آشنا شویم. بنابراین در این مقاله مختصری درباره این مفاهیم توضیح میدهیم و بعد به سراغ این موضوع میرویم که ماشین مجازی اتریوم چیست و چه کاربردهایی در دنیای دیفای دارد.
ماشین مجازی اتریوم دقیقاً چیست و چه کاربردی دارد؟ جایگاه EVM کجاست و اگر نباشد، چه اتفاقی می افتد؟ به زبان ساده، ماشین مجازی اتریوم یک نرم افزار است که برای اولین بار به منظور اجرای قراردادهای هوشمند در شبکهی اتریوم طراحی شد. اما به تدریج شبکههایی که با این ماشین سازگاری دارند، افزایش یافت. EVM مانند یک سیستم عامل برای اتریوم عمل می کند، البته به عنوان یک ماشین مجازی، عملکرد EVM کمی با یک سیستم عامل سنتی مانند ویندوز تفاوت دارد. زیرا ویندوز فقط باید در یک زمان روی یک دستگاه اجرا شود ولی EVM در یک زمان، باید روی هزاران دستگاه اجرا شود. به طور کلی، ماشینهای مجازی (VMs) لایههای انتزاعی سطح بالایی هستند که بر روی یک سیستم عامل بومی ساخته شدهاند تا یک دستگاه فیزیکی را شبیهسازی کنند. این دستگاههای مجازی شرایطی را ایجاد می کنند که یک پلتفرم واحد، روی بسیاری از معماریهای سختافزاری و سیستمعاملهای مختلف اجرا شود. یک شبکه توزیع شده مانند اتریوم که باید از طریق چندین مشتری در ماشینهای مختلف در سراسر جهان قابل دسترسی باشد، نیاز به چنین سیستم عاملی دارد. ماشین مجازی اتریوم به عنوان یک موجودیت واحد در شبکهی هوشمند اتریوم حضور دارد؛ البته یک موجودیت مجازی است که توسط هزاران رایانه متصل به شبکه که یک کلاینت اتریوم را اجرا میکنند، نگهداری می شود. بدون ماشین مجازی اتریوم هیچ یک از قراردادهای هوشمند اجرا نمیشوند و عملاً شبکه اتریوم ناکارآمد خواهد بود. کل پروتکل اتریوم صرفاً به این دلیل ساخته شده که بقای عملکرد مداوم، بی وقفه و تغییرناپذیر این ماشین مجازی را تضمین کند؛ زیرا EVM محیطی است که تمام حسابهای اتریوم و قراردادهای هوشمند در آن قرار دارند. در هر بلوک زنجیرهی اتریوم، فقط یک حالت «تعریف شده» وجود دارد و EVM همان چیزی است که قوانین را برای محاسبهی یک حالت معتبر جدید، از بلوکی به بلوک دیگر تعریف میکند.
پیش از پرداختن به نحوه تولد ماشین مجازی اتریوم، بهتر است کمی با تاریخچه این شبکه آشنا شویم. شبکه اتریوم توسط برنامهنویسی روسی-کانادایی بهنام ویتالیک بوترین (Vitalik Buterin) معرفی شد و هدف آن، گسترش قابلیتهای بیت کوین از طریق فناوری قرارداد هوشمند بود. شایان ذکر است که خود مفهوم اسمارت کانترکت پیشتر در سال 1996 توسط رمزنگار و دانشمند علوم کامپیوتر بهنام نیک زابو (Nick Szabo) معرفی شده بود. با این حال، در آن زمان این مفهوم کمی از زمان خود جلوتر بود و نتوانست به ابزاری مناسب برای پیادهسازیهای عملی تبدیل شود. بنابراین ویتالیک بوترین تصمیم گرفت با ترکیب تکنولوژی بلاک چین و ایده قرارداد هوشمند، تولد شبکهای بهنام اتریوم، رمز ارز اتر و محیط اسمارت کانترکت EVM را رقم بزند. در سال 2014، بنیاد اتریوم به تامین سرمایه پرداخت و توانست چهرههای شناخته شدهای که اکنون از بنیانگذاران آن محسوب میشوند را به خود جذب کند. از سال 2014 تا 2016 نیز مفهومی بهنام DAO یا سازمان خودگردان غیر متمرکز ظهور کرد که نحوه جذب سرمایه گذاریها را تغییر داد. همه اینها، رشد قیمت اتریوم و محبوبیت این بلاک چین برای توسعه برنامههای غیرمتمرکز را بههمراه داشت.
ماشین مجازی اتریوم علاوه بر ویژگیهایی که به آنها اشاره شد، مزایایی را برای توسعهدهندگان و مدیران پروژههای بلاکچینی ارائه میدهد. از جمله:
• بهبود تصمیمگیری: EVM اطلاعات دقیقی از روند پیشرفت را ارائه میدهد که همین موضوع باعث میشود تصمیمگیری برای آینده آگاهانه و با برنامهریزی دقیقتری انجام شود.
• کنترل هزینه: ماشین مجازی اتریوم امکان ردیابی هزینههای مربوطه را میدهد که همین موضوع باعث میشود مدیریت هزینهها راحتتر شود.
• ارائه یک معیار استاندارد: EVM معیاری استاندارد برای مقایسه پروژههای مختلف ارائه میدهد که به همین دلیل میتوان از آن برای شناسایی بهترین روشها استفاده کرد.
EVM البته خالی از مشکل نیست و برخی از معایب این ماشین عبارت است از:
• پیچیدگی: ماشین مجازی اتریوم به حجم قابل توجهی از داده و تجزیه و تحلیل نیاز دارد که همین موضوع میتواند کارآمدی آن را برای پروژههای کوچک زیر سوال ببرد.
• هزینه: این ماشین در موضوع نرمافزار و آموزش نیاز به سرمایهگذاری قابل توجهی برای توسعه دارد. همچنین EVM نیاز به نظارت و بهروزرسانی مستمر دارد.
• انعطافپذیری: ماشین مجازی اتریوم برای پروژههایی که شامل تغییرات پیدرپی میشوند یا سطح بالایی از عدم قطعیت را دارند مناسب نیست.
نتیجه گیری :
ماشین مجازی اتریوم (EVM) یک ماشین تورینگ کامل است که روی شبکه بلاکچین اتریوم به اجرا درمیآید. EVM این امکان را به هر کسی میدهد که بتواند پلتفرمها و اپلیکیشنهای خودش را به صورت غیر متمرکز روی آن اجرا کند. در واقع این ماشین مجازی، یه دستگاه کدنویسیشده است که میتواند قراردادهای هوشمندی را که به زبان Solidity نوشته شدهاند، روی شبکه بلاکچین اجرا کند.