ماشین مجازی اتریوم (EVM) که ستون فقرات بلاکچین اتریوم را تشکیل میدهد، محیط امنی بهمنظور ساخت DApps و سایر برنامهها برای توسعهدهندگان فراهم میکند.
اتریوم، دومین رمزارز بزرگ دنیا ازنظر ارزش بازار، چندین سال است که در بین سرمایهگذاران ارزهای دیجیتال بسیار محبوب است. دراینمیان، زبان برنامهنویسی بومی سالیدیتی (Solidity) و ماشین مجازی اتریوم (EVM) نیز در تشویق جامعه توسعهدهندگان بیتأثیر نبوده است.
درواقع، بلاکچین اتریوم بهدلیل انعطافپذیری و گستره وسیع ابزارهای توسعهدهنده موجود و پایگاه کاربری عظیم، به جذب توسعهدهندگان برنامههای غیرمتمرکز (DApp) ادامه میدهد.
EVM که هسته معماری بلاکچین را تشکیل میدهد، برنامهای است که کد برنامه یا قراردادهای هوشمند خود را اجرا و محیط امنی در زمان اجرا در بستر شبکه اتریوم برای آنها فراهم میکند.
علاوهبراین، EVM میتواند هر برنامهای را اجرا کند که با هر زبان برنامهنویسی کدگذاری شده است؛ درنتیجه، به توسعهدهندگان اجازه میدهد تا بهراحتی قراردادهای هوشمند سفارشی و DAppها را برای فضای درحالرشد Web3 ایجاد کنند.
شایان ذکر است EVM به تمام گرههای شبکه نیز دسترسی دارد و اجرای قراردادهای هوشمند و تمام تراکنشهای روی بلاکچین اتریوم را مدیریت و آن را به یکی از ماشینهای مجازی قدرتمند موجود تبدیل میکند.
در این مطلب از بلاگ تترلند، توضیح میدهیم که ماشین مجازی اتریوم (EVM) چیست و چگونه کار میکند. برای کسب اطلاعات بیشتر دربارهی EVM با ما همراه باشید.
آشنایی با ماشین مجازی اتریوم (EVM)
در سال ۲۰۱۳، ویتالیک بوترین (Vitalik Buterin)، برنامهنویس مشهور، شبکه اتریوم را رونمایی کرد. این شبکه موفقیت کمنظیرش را بهعنوان بلاکچین محبوب برای توسعهدهندگان DApp مدیون ماشین مجازی اتریوم (EVM) است که گاوین وود (Gavin Wood) در زمان تصدیاش در اتریوم آن را طراحی کرد.
اتریوم به زبان برنامهنویسی C++ نوشته شده و با استفاده از کامپایلر پروژه LLVM، اییویام ماشین حالت ویژهای است که بهطورمداوم کار میکند و عملیات تغییرناپذیر آن وضعیت هر بلوک را در بلاکچین اتریوم تعیین میکند. EVM قوانین خاص تغییر حالت از بلوک به بلوک را نیز تعریف میکند.
برای درک آنچه ماشین مجازی اتریوم انجام میدهد، باید به هریک از عملکردهای متفاوتی نگاه کرد که برای اطمینان از عملکرد روان شبکه اتریوم انجام میدهد. EVM برای هر ورودیای که دریافت میکند، خروجیای تولید میکند که ماهیت قطعی دارد و از تابع ریاضی به سادهترین معنی پیروی میکند.
عملکرد ماشين مجازی اتریوم
EVM کدهای قرارداد هوشمند را در قالب مجموعهای از ۱۴۰ کد عملیات استاندارد اجرا میکند؛ درحالیکه سایر عملیاتهای مخصوص بلاکچین نیز با آن پیادهسازی میشوند. بنابراین، EVM از حالتی ماشینی بهره میبرد که طبیعتاً در طول پردازش هر تراکنش ناپایدار است.
علاوهبراین، EVM حاوی اطلاعات مربوط به حسابهای مختلف نگهداریشده در بلاکچین اتریوم است. همه اقدامات را کد EVM کنترل میکند. از زمان راهاندازی شبکه اتریوم در سال ۲۰۱۵، بهخودیخود چندینبار تکرار و درحالحاضر به پیادهسازیهای مختلف در حال استفاده EVM منجر شده است.
درواقع، ماشین مجازی اتریوم مسئول حفظ سطحی از انتزاع بین هزاران گره اتریوم و کد اجراکننده است. همچنین، بهعنوان تابعی عمل میکند که نتایج ثابتی را به مشتریها یا گرهها بدون فاشکردن جزئیات نهچندان زیاد ارائه میکند.
هدف ماشین مجازی اتریوم (EVM) چیست؟
ماشین مجازی اتریوم با اطمینان تمام برنامههای در حال اجرا در شبکه اتریوم را بدون گزارش قطعی در مقیاس دقیقی تأمین میکند. EVM برای توسعهدهندگان بهعنوان برنامهای فراگیر عمل میکند که برنامههای اجرایی کوچکتری را اجرا میکند و در اتریوم بهعنوان قراردادهای هوشمند شناخته میشوند.
این در حالی است که آزادی کدنویسی این قراردادهای هوشمند را در انواع زبانهای برنامهنویسی ازجمله Solidity ،Vyper ،Python و Yul فراهم میکند.
باتوجهبه این انعطافپذیری EVM، بلاکچین اتریوم هزاران DApp را در فضای مالی غیرمتمرکز (DeFi) و توکن غیرقابلمعاوضه (NFT) ایجاد کرده است. هریک از این DAppها و قراردادهای هوشمندی که از آنها ساخته شدهاند، به بایت کدی تبدیل میشوند که با EVM تغذیه و بین تمام گرههای شبکه اتریوم توزیع میشوند.
هنگامیکه قرارداد هوشمندی مستقر میشود، EVM مسئول برقراری ارتباط با تمام گرهها و اِعمال تغییرات حالت درصورت رسیدن به توافق است.
رویهمرفته، میتوان گفت که ماشین مجازی اتریوم در داخل هر گره اتریوم قرار میگیرد تا قراردادهای هوشمند را با استفاده از بایت کد بهجای زبان برنامهنویسی پایه اجرا کند؛ بنابراین، کامپیوتر میزبان فیزیکی را از کد ماشینی جدا میکند که اتریوم روی آن اجرا میشود.
مزایای ماشین مجازی اتریوم (EVM)
باتوجهبه نحوه عملکرد ماشین مجازی اتریوم، توسعهدهندگان میتوانند کد را بدون نگرانی بابت تأثیر آن بر بقیه شبکه در هریک از کامپیوترهای گره اجرا کنند. علاوهبراین، آنان میتوانند قراردادهای هوشمند پیچیده را در محیطهای محاسباتی مختلف با الگوریتم اجماع توزیعشده اجرا کنند.
این موضوع تضمین میکند که خرابی یک گره تأثیر منفی بر اجرای DApp یا قرارداد هوشمند نمیگذارد؛ زیرا کد EVM در تمام گرهها یکسان باقی میماند.
همچنین، ازآنجاکه دادههای حساب در سطح جهانی در EVM نگهداری میشوند، توسعهدهندگان آن را برای نوشتن کد قرارداد هوشمند سفارشی و ایجاد DAppهای متمایز که میتوانند به این مجموعه داده جهانی دسترسی داشته باشند و خروجیهای مطمئن تولید کنند، عالی میدانند.
نتیجه همان چیزی است که EVM بهویژه بلاکچین اتریوم را بهطورکلی برای گسترش پایدار DApps و اکوسیستم قرارداد هوشمند اتریوم مناسب میکند. پس بهراحتی میتوان فهمید که چرا EVM پلتفرم ترجیحی برای توسعه وب ۳ است.
معایب ماشین مجازی اتریوم (EVM)
EVM با وجود مزایای بسیارش، معایبی نیز دارد که توسعهدهندگان و کارآفرینان باید آن را مدنظر قرار دهند. مهمترینِ این معایب هزینههای بسیار زیاد تراکنش یا هزینههای گَس (Gas fee) مربوط به اجرای قرارداد هوشمند در شبکه اتریوم است.
این هزینهها که در اتریوم پرداخت میشوند، بسته به پیچیدگی قرارداد و ازدحام شبکه در زمان اجرا متفاوت و برای توسعهدهندگان و کارآفرینان ضروری است که خدمات خود را براساس آن قیمتگذاری کنند.
افزونبراین، زبان برنامهنویسی Solidity محبوبترین زبان برای کدنویسی در ماشین مجازی اتریوم است. پس توسعهدهندگان برای کار با آن باید تجربه کافی و برای ایجاد قراردادهای هوشمند کارآمد با استفاده از آن دانش فنی لازم را داشته باشند.
مسئله دوم مهم است؛ زیرا هرگونه نیاز محاسباتی اضافی به هزینههای گَس بیشتر منجر میشود. اگر توسعهدهندگان کدنویسی با استفاده از زبانهای دیگر را انتخاب کنند، باید در حل هرگونه تکرار ذاتی در کد دقت کنند.
جمعبندی
قابلیت متقابل زنجیرهای مهمترین جنبه برای توسعهدهندگان است. ازاینرو، بسیاری از بلاکچینهای سازگار با ماشین مجازی اتریوم بهکار گرفته شدهاند و اکثر آنها هزینه گَس کمتر و سرعت تراکنشهای سریعتری از پروتکل اتریوم ارائه میدهند.
درنتیجه، این بلاکچینها اکنون میتوانند بهطوریکپارچه با کاربران اتریوم تعامل برقرار و با استفاده از پلهای بلاکچین، انتقال وجه به شبکههای خود را تسهیل کنند.