اگر برای خواندن این مطلب مشتاق هستید، حتما دوست دارید بدانید، قراردادهای هوشمند و برنامههای غیرمتمرکز چگونه کار میکنند. شبکه اتریوم محبوبترین گزینه برای راهاندازی قراردادهای هوشمند، صرافیها و برنامههای غیرمتمرکز است. امنیت بالا و سرعت پردازش مناسب، اصلیترین دلایل انتخاب این شبکه برای راهاندازی موارد ذکر شده هستند. این ویژگیها با وجود ماشین مجازی اتریوم میسر شدهاند. در این مقاله قصد داریم به معرفی ماشین مجازی اتریوم و نکات مهمی درباره آن بپردازیم.
ماشین مجازی اتریوم (EVM) چیست؟
ماشین مجازی اتریوم، یک پردازشگر برای شبکه اتریوم است که بلاک چین این شبکه را مدیریت میکند و قراردادهای هوشمند نیز به لطف ماشین مجازی قابل اجرا هستند. گرهها برای راهاندازی، به ماشین مجازی اتریوم نیاز دارند. در شبکه اتریوم، گرهها یک نسخه از دادههای تراکنشها را ذخیره میکنند، ماشین مجازی اتریوم از این نسخهها برای بروزرسانی دفتر توزیع کل استفاده میکند.
ماشین مجازی اتریوم در واقع برنامهای است که کدهای برنامهنویسی شده را در بلاک چین اجرا میکند. این کدها، با نام قراردادهای هوشمند شناخته میشوند. ماشین مجازی همچنین بعد از هر بلاک موفق، دوباره وضعیت شبکه اتریوم را بررسی میکند. EVM هیچ کامپیوتر مرکزی، سرور یا ذخیرهسازی ابری ندارد و تمام قدرت پردازشی خود را از نودها میگیرد. با توجه به اجرای کدهای مشابه در نودها کار ساخت نرم افزارها در اتریوم آسانتر خواهد شد.
ویتالیک بوترین، خالق اتریوم، ایده خود را در سال 2013 مطرح کرد، ایده او راه اندازی شبکه اتریوم بود که در قلب آن ماشین مجازی اتریوم قرار دارد. اقای بوترین، بیت تورنت را نخستین برنامه غیرمتمرکز ساخته شده میداند. این برنامه در سال 2001 عرضه شد و هدف آن انتقال دادهها به صورت همتا به همتا بود. کارکرد ماشین مجازی هم شبیه به بیت تورنت است با این تفاوت که از انتقال دادهها فراتر میرود و کاربردهای مفید دیگری نظیر اجرای برنامههای غیرمتمرکز ارائه میکند.
کارکرد ماشین مجازی اتریوم، مانند مغز در بدن انسان است. این ماشین وظیفه اجرای کدها را به عهده دارد و مطمئن خواهد شد که این کدها مورد پذیرش شبکه قرار میگیرند.
ماشین مجازی اتریوم (EVM) چگونه کار میکند؟
ماشین مجازی اتریوم علاوه بر این که بایدها و نبایدهای گرهها را تعیین میکند، قوانین خاصی برای تغییر وضعیت هر بلوک ارائه میدهد و این عملکرد باعث اجرا شدن قراردادهای هوشمند در شبکه اتریوم میشود. EVM به ازای هر ورودی، یک خروجی تولید میکند که این خروجی با تبعیت از یک تابع ریاضی ایجاد میشود.
عملکرد ماشین مجازی اتریوم قطعی است و خروجیهای تولید شده از آن نیز ماهیت قطعی دارند. قطعی بودن به آن معنی است که اگر ورودی یکسانی به ماشین داده شود خروجی هم یکسان خواهد بود. در واقع اگر این روند هزاران بار هم تکرار شود باز هم همیشه خروجی یکسان است. اهمیت این موضوع در اجرای برنامههای غیرمتمرکز به چشم میآید.
در اتریوم حسابهای تحت مالکیت خارجی و حسابهای قراردادی وجود دارد. حسابهای تحت مالکیت خارجی با کلیدهای خصوصی قابل دسترسی هستند. در طرف دیگر، حسابهای قراردادی، در قرارداد هوشمند ذخیره شده و تبدیل به بایتکد میشود. زبان برنامهنویسی ماشین مجازی اتریوم، سالیدیتی (Solidity) است. همه کدهایی که EVM اجرا میکند از جمله قراردادهای هوشمند به این زبان نوشته شدهاند. بعد از تبدیل شدن حسابهای قراردادی به بایت کد، برای این که EVM بتواند آنها را تفسیر کند به کدهای عملیاتی تبدیل میشوند. نهایتا EVM با تفسیر کدها، فرایندهای مختلفی را در شبکه اتریوم انجام میدهد.
مزایا و معایب ماشین مجازی اتریوم (EVM) چیست؟
ماشین مجازی اتریوم، ویژگیهای مثبتی دارد که آن را به گزینهای محبوب برای توسعهدهندگان تبدیل کرده است تا بتوانند طیف گستردهای از قراردادهای هوشمند را با استفاده از آن به اجرا در بیاورند. در کنار این ویژگیهای مثبت، معایبی نیز در این ماشین مجازی وجود دارد که توسعه دهندگان اتریوم در پی رفع آن هستند. در ادامه به بررسی مزایا و معایب ماشین مجازی اتریوم خواهیم پرداخت:
مزایا
- پشتیبانی از بلاک چینهای مختلف
یکی از ویژگیهای ماشین مجازی اتریوم این است که علاوه بر اتریوم، بلاک چینهای دیگر نیز میتوانند از آن برای راهاندازی اکوسیستم خود استفاده کنند. این موضوع مستلزم این است که شبکهها با بایت کد قراردادهای هوشمند سازگار باشند. اولانچ و پالیگان دو مورد از شبکههای بلاک چینی هستند که از EVM برای شبکه خود استفاده میکنند.
- ایزوله بودن
یکی از مزایا و و ویژگیهای مهم ماشین مجازی اتریوم این است که کدهای نوشته شده را به صورت جداگانه اجرا میکند. هر دادهای که وارد ماشین مجازی اتریوم میشود، کوچکترین تاثیری بر دیگر دادههای ذخیره شده ندارد. این دادهها توسط نودها پردازش و ذخیره میشوند. ایزوله بودن ماشین مجازی باعث افزایش سرعت و کارآمدی آن میشود.
- توسعه انعطافپذیر
به لطف انعطافپذیر بودن ماشین مجازی اتریوم، قراردادهای هوشمند پیچیده نیز میتوانند با استفاده از آن به اجرا در بیایند. در حال حاضر طیف گستردهای از تراکنشها در برنامههای غیر متمرکز، صرافیهای غیرمتمرکز، بازیهای بلاک چینی و NFTها با استفاده از این ماشین فعال هستند.
- ایجاد سازگاری بین سیستم عاملهای مختلف
برای این که بلاک چین فعال باشد، کامپیوترهای زیادی در این شبکه مشارکت میکنند. هر کدام از این کامپیوترها دارای یکی از سیستمعاملهای ویندوز، مکاواس و... هستند. متفاوت بودن سیستمعامل کامپیوترها، ساخت برنامهای که در همه آنها به درستی اجرا شود را سخت میکند. با این حال استفاده از ماشین مجازی اتریوم به توسعهدهندگان این امکان را میدهد که بدون نوشتن کدهای جداگانه، برنامهشان را در سیستمعاملهای مختلف به اجرا در بیاورند.
معایب
حتما این کنایه را شنیدهاید که «هر چیزی قیمتی دارد». این کنایه را میتوان یکی از معایب ماشین مجازی اتریوم در نظر گرفت چرا که علی رغم مزایای عالی آن، کارمزد تراکنش بالایی دارد. با توجه به این که مقیاسپذیری ماشین مجازی اتریوم محدود است، تنها میتواند تعداد مشخصی تراکنش در هر ثانیه انجام دهد. در نتیجه وقتی شبکه شلوغ باشد، کارمزد تراکنشها بسیار بالا میرود تا جایی که از آن با عنوان «جنگ کارمزد» یاد میکنند.
با توجه به محبوبیتی که اتریوم دارد، راهاندازی قراردادهای هوشمند و برنامههای غیرمتمرکز حجیم برای توسعهدهندگان گران خواهد بود. برای کاهش هزینهها، توسعهدهندگان دست به حذف کدهای تکراری و عملکردهای غیر ضروری میزنند تا سرعت و کارایی قرارداد هوشمند خود را بهینه کنند.
یکی دیگر از ایراداتی که برخی به ماشین مجازی اتریوم وارد میکنند، این است که بعد از قرار دادن و اجرای یک قرارداد هوشمند در آن، دیگر راهی برای ویرایش قرارداد هوشمند وجود ندارد. در این صورت اگر یک باگ یا آسیبپذیری در قرارداد وجود داشته باشد تنها راه حل، راهاندازی دوباره قرارداد است که میتواند به ایجاد هزینههای اضافی منجر شود.
هدف از ایجاد ماشین مجازی اتریوم (EVM) چیست؟
هدف اصلی ایجاد ماشین مجازی اتریوم، محاسبه حالت شبکه و تبدیل کدهای مختلف قرارداد هوشمند به بایتکد است. بعد از تبدیل کدها به بایتکد، ماشین مجازی آنها را اجرا میکند.
ماشین مجازی اتریوم این امکان را بوجود میآورد که نودها فارغ از موقعیت مکانی بتوانند در شبکه مشارکت کنند. همه برنامههایی که در شبکه اتریوم فعال هستند به ماشین مجازی اتریوم نیاز دارند تا بتوانند بدون قطعی به کار خود ادامه دهند. به لطف ماشین مجازی اتریوم، قراردادهای هوشمند قابل اجرا هستند و توسعهدهندگان از سراسر جهان میتوانند با استفاده از زبانهای برنامهنویسی مختلف این قراردادها را طراحی کنند.
آیا EVM یک دفتر کل توزیع شده است یا ماشین تشریفاتی؟
اولین وظیفه ماشین مجازی اتریوم، تعیین وضعیت بلاکها در شبکه اتریوم است. این ماشین مجازی، از یک دفتر کل توزیع شده برای نگهداری پایگاه دادهها استفاده میکند. در نتیجه این استفاده، انجام تراکنشها بهبود پیدا میکند. ماشین مجازی اتریوم دو لایه دارد، اولین لایه دفتر کل توزیع شده و دومین لایه دارای ویژگیهای قرارداد هوشمند است. به این لایه دوم اصطلاحا «ماشین حالت توزیع شده» میگویند.
با استفاده از ارز بومی اتریوم که Ether نام دارد، قوانین بصری دقیقی برای فعال بودن بلاک چین آن وضع شده است. در عین حال این ماشین مجازی عملکرد قراردادهای هوشمند را نیز تضمین میکند. به همین خاطر اصطلاح ماشین حالت توزیع شده برای اتریوم مناسب است.
سخن پایانی
کارشناسان، آینده ماشین مجازی اتریوم را درخشان میدانند، اما این رشد تنها در صورتی به وقوع میپیوندد که توسعهدهندگان در پی برطرف کردن ایرادات این ماشین مجازی باشند و ویژگیهای مثبت آن را تقویت کنند. یکی از گامهای مثبت در جهت تقویت ماشین مجازی اتریوم، بروزرسانی EOF بود که در سال 2023 انجام شد. این بروزرسانی قرار است شیوه کار ماشین مجازی اتریوم را بهبود ببخشد و فرصت اجرای سریعتر و ارزانتر قراردادهای هوشمند را فراهم کند.