آشنایی جامع با ماشین مجازی اتریوم یا EVM و نحوه کار آن
شاید نتوان تصور فیزیکی درستی از EVM توصیف کرد اما میتوان آن را به یک ابر در آسمان بلاکچین یا یک موج در اقیانوس کریپتو تشبیه کرد که بهعنوان یک موجودیت واحد بوده و توسط هزاران رایانه متصل که یک کلاینت اتریوم را اجرا میکنند، نگهداری میشود. کاربرد EVM در دنیای ارز اتریوم چیست؟ در این فضا، علاوه بر اینکه قراردادها و معاملات تحت اتریوم انجام میشود سعی شده است عملکرد مداوم، بدون وقفه و تغییرناپذیر یک ماشین مجازی نیز برآورده و حفظ شود. در این مقاله میخواهیم به شما بگوییم ماشین مجازی اتریوم چیست؟ یا نگاهی دقیقتر به مفهوم EVM داشته باشیم، بدانیم چارز اتریوم چیست؟ه کاری انجام میدهد و چه مزایا و معایبی دارد؟
آشنایی با شبکهی اتریوم
اگر کمی با دنیای بلاکچین آشنایی داشته باشید، میدانید که بعد از بیت کوین، شبکهی اتریوم، بزرگترین پروژهی این سیستم است که توسط ویتالیک بوترین راهاندازی شد. در واقع باید گفت، اتریوم هم مانند بیت کوین، چیزی فراتر از پول یا یک ارز دیجیتال معمولی برای سرمایهگذاری به حساب میآید. این یک شبکه غیرمتمرکز است که به کاربران اجازه میدهد کارهای مختلفی را روی پلتفرم انجام دهند. در این مرحله بد نیست تفاوت اتر و اتریوم را نیز بدانید.
اتر یا همان ارز دیجیتال اتریوم، یک کریپتو کارنسی مانند سایر رمزارزهای موجود در شبکهی بلاکچین است که برای خرید، فروش یا سرمایهگذاری مورد استفاده قرار میگیرد. در مقابل، یک شبکهی اتریوم هم داریم که متمرکز بر قراردادهای هوشمند بلاکچین بوده و کاربردها و امکانات متعدد دیگری از جمله EVM) Ethereum Virtual Machine) را در خود جای میدهد. بد نیست در این مرحله، یک توضیح کوتاه درباره قراردادهای هوشمند نیز بدهیم.
قرارداد هوشمند یعنی چه؟
در بلاک چین اتریوم، برنامههای اجرایی تحت عنوان قرارداد هوشمند وجود دارند که از مجموعهای از دادهها و کدهایی که در یک آدرس اتریوم وجود دارد، تشکیل میشوند. تمامی این اطلاعات در حسابهای اتریوم نگهداری شده و با برنامهریزی هوشمند، به شبکهی مورد نظر، عبور و مرور دارند. بنابراین، پشت قراردادهای هوشمند، یک کاربر انسانی وجود نداشته و همه چیز بهصورت اتوماتیک اتفاق میافتد.
زمانی که یک قرارداد هوشمند اجرا میشود، یعنی اطلاعات به شبکه وارد میشوند، تراکنشها وظایف مشخص شده خود را اجرا میکنند. بهطور کلی، قراردادهای هوشمند چند ویژگی مشترک دارند که عبارتند از:
- از کد برای اجرای قوانین از پیش تعیین شده استفاده میکنند
- نمیتوان قرارداد هوشمند را پاک کرد
- تراکنشهایی که توسط قرارداد هوشمند انجام شدهاند قابل برگشت نیستند
اینجاست که برای توسعه یک قرارداد هوشمند در بلاک چین اتریوم، باید با اصطلاح ماشین مجازی اتریوم (EVM) آشنا باشید. ماشینهای مجازی، به طور کلی، یک لایه انتزاعی بین کد در حال اجرا و ماشین در حال اجرا ایجاد میکنند که این لایه برای افزایش قابلیت حمل نرم افزار و اطمینان از مجزا بودن بخشهای مختلف برنامه، ایجاد میشود.
ماشین مجازی اتریوم یا EVM یعنی چه؟
در واقع، ماشین مجازی اتریوم محیطی است که تمام حسابها و قرارداد هوشمند اتریوم در آن زندگی کرده و جریان دارند. در این ماشین، هر بلوک در زنجیره، یک حالت برای اتریوم تعریف میکند که EVM قوانین محاسبهی این حالت را از بلوکی به بلوک دیگر، انتقال و تعریف میکند. همانطور که از اسم این ماشین پیداست، یک جز مجازی است، که در هر گره از اتریوم حضور دارد.
از آنجایی که قراردادهای هوشمند معمولا با زبانهای سطح بالا، مثل سالیدیتی یا پایتون نوشته میشوند، برای اینکه بتوان در یک ماشین مجازی آن را اجرا کرد، لازم است کدهای آن به بایت کد تغییر کند. بنابراین، ماشین مجازی اتریوم میتواند بایت کدهای قراردادها را خوانده و اجرا کند. با مرزبندی بین کدها، ماشین مجازی مطمئن میشود که هر لایه از کد، علاوه بر اینکه قابلیت حمل نرمافزار را برای توسعه ایجاد میکرد، برنامهها از میزبان و از یکدیگر جدا شده و تداخلی ایجاد نمیکنند. حالا اگر برایتان سوال شده که بایت کد چیست، اجازه دهید کمی بیشتر توضیح دهیم.
بایت کد چیست؟
برنامهای که از کد منبع، به کد سطح پایین تبدیل شود تا برای یک ماشین قابل فهم و اجرا باشد، بایت کد نامیده میشود. در واقع ماشینهای مجازی از زبانهای سطح بالا سر در نمیآورند و همین امر سبب میشود زمانی که برنامهنویسان قصد توسعه بلاک چین با زبانهای سطح بالا را دارند، برای برقراری ارتباط با ماشین مجازی به مشکل بخورند. اینجاست که بایت کد، نقش یک مفسر را ایفا کرده و کدهای سطح بالا را به کدهای سطح پایین و قابل کامپایل برای ماشین تبدیل میکند.
وقتی پای ماشین مجازی اتریوم به میان میآید، قراردادهای هوشمند این حوزه که با زبان سطح بالا نوشته شده باشند، با بایت کد برای ماشین خوانا شده و روی سختافزارهای مختلف قابل اجرا میشوند.
ماشین مجازی اتریوم چطور کار میکند؟
هدف یک EVM این است که وضعیت کلی اتریوم در هر بلوک از بلاکچین را درک کند. برای این منظور، لایه دوم ماشین مجازی اتر، که با نام ماشین حالت توزیع شده (distributed state machine) شناخته میشود، وضعیت اتریوم از یک پایگاه دادهی عظیم که تمام حسابها و موجودیهای ارز اتریوم در آن وجود دارد، دریافت میکند. حالا این وضعیت دریافت شده که یک حالت ماشین است، میتواند اطلاعات خود را به بلوک جدیدی انتقال یا تغییر دهد و کدهای ماشینی که تحت قوانین خاصی وجود دارند، اجرا شوند. این قوانین خاص، توسط ماشین مجازی اتریوم تعریف شده و نحوه تغییر وضعیت هر بلوک را کنترل میکند.
مزایا و معایب EVM چیست؟
مانند هر چیز دیگری که در اطراف ما مزایا و معایبی را با خود به همراه دارد، EVM نیز شامل لیستی از مزایا و معایب است که در ادامه به آن اشاره میکنیم:
مزایای EVM
- برای اینکه بتوانید برنامههای غیرمتمرکز خود را در این پلتفرم اجرا کنید، هیچ محدودیت امنیتی ندارید.
- به کمک ماشین مجازی اتریوم میتوانید وارد دنیای NFT شده و توکنهای غیرقابل تعویض یا آثار هنری دیجیتالی ایجاد کنید و آنها را بفروشید.
- اطلاعات وضعیت حسابهای اتریوم خود را در زمان فروش یا خرید اتریوم، کنترل شده پیش ببرید.
معایب EVM
- تا اینجا گفتیم شبکهی EVM غیرمتمرکز است، اما باید بگوییم نه کاملا! بخش عمدهای از گرههای اتریوم در سرویسهای وب آمازون که سرورهای ابری متمرکز هستند، قرار دارند. اگر در هر زمانی و به هر دلیلی صاحبان این سرویسها تمایلی به ادامه کار با اتریوم نداشته باشند، گرهها به سادگی از دست رفته یا به شبکه آسیب وارد میشود.
- با اینکه این ماشین مجازی به تخصص فنی نیاز دارد، از آنجایی که دسترسی به آن بدون محدودیت است، حتی کسانی که دانش فنی در این حوزه ندارند هم میتوانند به آن ورود کنند. این یعنی ممکن است برنامههای ناکارآمد زیادی در EVM اجرا شود.
- در مواقع شلوغی شبکه، هزینهی تراکنشها زیاد است که این مساله میتواند یک نقطه ضعف قابل توجه برای کاربران اتریوم باشد. البته این موضوع بیشتر کسانی را درگیر میکند که تراکنشهای کوچک را اجرا میکنند.
EVM چه کاربردی دارد؟
یکی از مهمترین دلایل استفاده از EVM، این است که پروتکل اتریوم برای ایجاد اجماع سیستم نیازمند چنین محیطی خواهد بود. از طرفی، اگر شخصی بخواهد برنامهنویسی مبتنی بر اتریوم را انجام دهد، بدون اینکه آسیبی به شبکهی موجود وارد شود، میتوان کدهای مورد نظر را در اکوسیستم خاصی از ماشین مجازی وارد و تست کرد تا مطمئن شد برنامه به درستی نوشته شده است. همچنین کنترل و مدیریت قراردادهای هوشمند نیز یکی دیگر کاربردهای این ماشین به حساب میآید.
در نهایت باید گفت، اگرچه استفاده از قراردادهای هوشمند برای اتصال با EVM گرانتر از اجرای برنامههای کاربردی در سرورهای سنتی است، همچنان استفاده از ماشین مجازی اتریوم، در جایگاه خوبی قرار دارد. اگر هنوز سوالی در این زمینه دارید، کافیست در بخش نظرات با ما در میان بگذارید.
سوالات متداول
EVM یا ماشین مجازی اتریوم یک محیط برای نگهداری و کنترل قراردادهای هوشمند مبتنی بر اتریوم است که وضعیت دادهها را در بلوکهای بلاکچین شبکهی اتریوم نگهداشته و میتواند تغییر وضعیت را به سایر بلوکها منتقل کند. این ماشین قوانین خاصی را برای تعریف وضعیت هر بلوک تعیین میکند. همچنین EVM با تبدیل کدهای سطح بالا به کدهای سطح پایین، اجرای برنامههایی که توسط برنامهنویسان توسعه داده شده است را برای ماشین امکانپذیر میکند.
از جمله کاربردهای EVM میتوان به کنترل و مدیریت قراردادهای هوشمند و ایجاد محیطی برای تست برنامههای مبتنی بر اتریوم اشاره کرد. به کمک این محیط، برنامهنویسان بدون دغدغه میتوانند کدهای خود را در اکوسیستم مشخص اجرا و تست کنند.
ارز دیجیتال اتریوم، یک کریپتو کارنسی مانند سایر رمزارزهای موجود در شبکهی بلاکچین است در مقابل، شبکهی اتریوم یک شبکهی متمرکز بر قراردادهای هوشمند بلاکچین بوده و کاربردها و امکانات متعدد دیگری از جمله EVM را در خود جای میدهد.