ماشین مجازی اتریوم (EVM) چیست و چگونه کار می کند؟

EVM که ستون فقرات بلاک چین اتریوم را تشکیل می دهد، یک محیط زمان اجرا برای ساخت DApps و سایر برنامه ها در اختیار توسعه دهندگان قرار می دهد.
دومین ارز دیجیتال بزرگ از نظر ارزش بازار، اتر (ETH) به دلیل توکن ETH بومی خود در بین سرمایه گذاران ارزهای دیجیتال محبوب است. با این حال، زبان برنامه نویسی Solidity و ماشین مجازی اتریوم (EVM) خود را مورد تحسین جامعه توسعه دهندگان قرار می دهد. در واقع، بلاک چین اتریوم به دلیل انعطافپذیری، گستره وسیع ابزارهای توسعهدهنده در دسترس و پایگاه کاربری بزرگ پلتفرم، به جذب توسعهدهندگان برنامههای غیرمتمرکز (DApp) ادامه میدهد.
EVM ها که هسته معماری بلاک چین را تشکیل می دهند، برنامه هایی هستند که کد برنامه یا قراردادهای هوشمند را اجرا می کنند و یک محیط زمان اجرا را فراهم می کنند که در شبکه اتریوم اجرا می شود. علاوه بر این، EVM کامل Turing است، به این معنی که میتواند هر برنامهای را که با هر زبان برنامهنویسی کدگذاری شده است اجرا کند، و ایجاد قراردادهای هوشمند سفارشی و DApps برای فضای در حال رشد Web3 را برای توسعهدهندگان آسان میکند.
علاوه بر این ویژگیهای کلیدی، EVM قدرتمندترین موجود در حال حاضر است زیرا به تمام گرههای شبکه دسترسی دارد، اجرای قراردادهای هوشمند را مدیریت میکند و بهطور موثر تمام تراکنشهای موجود در بلاک چین اتریوم. ماشین مجازی را مدیریت میکند.
ماشین مجازی اتریوم (EVM) چیست و چگونه کار می کند؟
شبکه اتریوم که در سال ۲۰۱۳ توسط برنامه نویس Vitalik Buterin طراحی شد، به لطف ماشین مجازی اتریوم (EVM) که توسط گاوین وود در دوران تصدی او در اتریوم طراحی شده بود، به موفقیت خارق العاده ای به عنوان بلاک چین منتخب برای توسعه دهندگان DApp دست یافت. EVM که به زبان C++ و با استفاده از کامپایلر پروژه LLVM نوشته شده است، یک ماشین حالت ویژه است که به طور مداوم اجرا می شود و دارای عملیات تغییرناپذیر است که وضعیت هر بلوک را در بلاک چین اتریوم تعیین می کند.
EVM نه تنها کنترل میکند که گرهها چه کارهایی را میتوانند یا نمیتوانند در دفتر کل توزیع شده که توسط بلاک چین اتریوم نگهداری میشود انجام دهند، بلکه قوانین خاصی را برای تغییر حالت از بلوکی به بلوک دیگر تعریف میکند. عملکرد اخیر چیزی است که عملکرد قرارداد هوشمند را که اتریوم به آن شناخته شده است، فعال می کند.
برای اینکه بفهمیم ماشین مجازی اتریوم چه می کند، باید هر یک از ویژگی های متفاوتی را که ارائه می دهد در نظر بگیریم تا از عملکرد روان شبکه اتریوم اطمینان حاصل کنیم. برای هر ورودی که دریافت میکند، EVMها ذاتاً قطعی هستند و خروجیهایی تولید میکنند که از یک تابع ریاضی به سادهترین معنی پیروی میکنند.
EVM که مانند یک ماشین پشته عمل می کند که مقادیر موقتی را به پشته پایین و از آن فشار می دهد، دارای عمق ۱۰۲۴ مورد است که هر مورد یک کلمه ۲۵۶ بیتی است. همچنین حافظه موقت را در قالب آرایههای بایتی که بین دو تراکنش در بلاک چین اتریوم تغییر میکند، حفظ میکند. کد قرارداد هوشمند کامپایل شده توسط EVM در قالب مجموعه ای از ۱۴۰ اپکد استاندارد اجرا می شود، اما سایر عملیات پشته مخصوص بلاک چین نیز توسط EVM پیاده سازی می شود.
بنابراین EVM در حین پردازش تراکنشها دارای یک وضعیت ماشینی ذاتاً فرار و یک وضعیت جهانی یا جهانی حاوی اطلاعات مربوط به حسابهای مختلف نگهداری شده در بلاک چین اتریوم است. همه اقدامات توسط کد EVM کنترل می شوند که از زمان شروع شبکه اتریوم در سال ۲۰۱۵ چندین بار تکرار شده است و امروزه پیاده سازی های مختلفی از EVM در حال استفاده است.
در واقع، EVM مسئول حفظ سطح انتزاع بین هزاران گره اتریوم و کدهای در حال اجرا است و به عنوان تابعی از ارائه نتایج ثابت بدون افشای جزئیات زیاد به مشتریان و گره ها عمل می کند.
هدف ماشین مجازی اتریوم (EVM) چیست؟
EVM به طور قابلاطمینانی تمام برنامههای در حال اجرا در شبکه اتریوم را بدون هیچ گزارش قطعی قابل توجهی نیرو میدهد. برای توسعه دهندگان، EVM به عنوان یک برنامه چتر عمل می کند که فایل های اجرایی کوچکی را که به عنوان قراردادهای هوشمند شناخته می شوند در اتریوم اجرا می کند و آزادانه این قراردادهای هوشمند را در زبان های برنامه نویسی مختلف مانند Solidity، Vyper، Python و Yul می نویسد. دیگران.
با این انعطافپذیری ارائه شده توسط EVM، بلاک چین اتریوم هزاران DApp را در فضاهای مالی غیرمتمرکز (DeFi) و توکنهای غیرقابل تعویض (NFT) ایجاد کرده است. هر یک از این DAppها و قراردادهای هوشمندی که میسازند به بایت کدی تبدیل میشوند که EVM را تغذیه میکند و در تمام گرههای شبکه اتریوم توزیع میشود. هنگامی که قرارداد هوشمند مستقر شد، EVM مسئول برقراری ارتباط با تمام گرهها و انجام تغییرات حالت در صورت رسیدن به اجماع است.
می توان گفت که EVM در داخل هر گره اتریوم درج می شود و از بایت کد به جای زبان برنامه نویسی پایه برای اجرای قراردادهای هوشمند استفاده می کند و کامپیوتر میزبان فیزیکی را از کد ماشینی که اتریوم روی آن اجرا می شود جدا می کند.
مزایای ماشین مجازی اتریوم (EVM)
نحوه عملکرد EVM به توسعه دهندگان اجازه می دهد تا کد خود را بدون نگرانی در مورد تأثیرگذاری بر بقیه شبکه یا خرابکاری احتمالی داده ها یا فایل های شخصی میزبانی شده در یکی از رایانه های گره اجرا کنند.
علاوه بر این، اجماع توزیع شده می تواند برای اجرای قراردادهای هوشمند پیچیده در محیط های محاسباتی مختلف مورد استفاده قرار گیرد. این تضمین می کند که شکست یک گره بر اجرای DApp یا قرارداد هوشمند تأثیر منفی نخواهد گذاشت. این به این دلیل است که کد EVM در تمام گره ها یکسان باقی می ماند. علاوه بر این، از آنجایی که دادههای حساب در سطح جهانی EVM نگهداری میشوند، توسعهدهندگان به راحتی میتوانند کد قرارداد هوشمند سفارشی را برای ایجاد DAppهای جداگانه بنویسند که میتوانند به این مجموعه داده جهانی دسترسی داشته باشند و خروجی قابل اعتماد تولید کنند.
تقدس حاصله همان چیزی است که EVM و بلاک چین اتریوم را به طور خاص برای گسترش پایدار اکوسیستم اتریوم DApps و قراردادهای هوشمند مناسب میسازد. به این موارد، کتابخانه کدهای استاندارد را برای توسعه دهندگان اضافه کنید، تعداد فزاینده بلاک چین های لایه ۲ سازگار با EVM ها، و تعداد موارد استفاده احتمالی EVM، که EVM را به پلتفرم انتخابی تبدیل می کند، به راحتی قابل درک است. برای توسعه Web3.
معایب ماشین مجازی اتریوم (EVM)
علیرغم مزایای بسیاری که توسط EVM ارائه می شود، اشکالات خاصی وجود دارد که توسعه دهندگان و کارآفرینان که بر روی اتریوم ایجاد می کنند باید در نظر بگیرند. در میان این موارد، کارمزدهای بالای تراکنش یا هزینه های گاز مرتبط با اجرای قراردادهای هوشمند در شبکه اتریوم است.
این هزینههای پرداختی در ETH بسته به پیچیدگی قرارداد و ازدحام شبکه در زمان اجرا متفاوت است، بنابراین ضروری است که توسعهدهندگان و کارآفرینان خدمات خود را بر اساس آن قیمتگذاری کنند. علاوه بر این، از آنجایی که Solidity ترجیحی ترین زبان برای کدنویسی در EVM است، توسعه دهندگان باید تجربه و تخصص فنی کافی برای نوشتن قراردادهای هوشمند کارآمد با استفاده از Solidity داشته باشند.
مورد دوم مهم است زیرا نیازهای محاسباتی اضافی منجر به هزینه های گاز بیشتر می شود و در نهایت برای موفقیت پروژه مضر است. اگر توسعه دهندگان کدنویسی با استفاده از زبان های دیگر را انتخاب می کنند، باید در حل تکرارهای ذاتی در کد خود مراقب باشند. در حالی که امکان ارتقای قرارداد هوشمند در مرحله بعدی وجود دارد، خطرات امنیتی مرتبط با ایجاد یک قرارداد هوشمند میانی که به آدرس قرارداد هوشمند اصلی اشاره می کند، وجود دارد.
آینده EVM ها
علیرغم تغییرات انقلابی که توسط EVM در اکوسیستم بلاک چین ایجاد شد، این فناوری برای خواندن و اجرای کد توسط بسیاری از پروژه های بلاک چین بهبود یافته است.
با توجه به اینکه قابلیت متقابل زنجیره ای مهم ترین جنبه برای توسعه دهندگان است، بسیاری از زیربناهای بلاک چین سازگار با EVM وجود دارد که بیشتر آنها از گاز کمتری استفاده می کنند و سرعت تراکنش های سریع تری نسبت به پروتکل اتریوم دارند. در نتیجه، این بلاکچینها میتوانند با استفاده از پلهای بلاک چین برای تسهیل انتقال وجوه به شبکههای خودشان، بهطور یکپارچه با کاربران اتریوم تعامل داشته باشند.
با این حال، هنگامی که پروتکل اتریوم با موفقیت ادغام خود را در سپتامبر ۲۰۲۲ تکمیل کرد، هدف بعدی ما مهاجرت از EVM به Ethereum WebAssembly (eWASM) خواهد بود. eWASM که به گونه ای بسیار ماژولار و آگنوستیک برای پلتفرم طراحی شده است، به عنوان تغییر دهنده بازی بعدی برای پروتکل اتریوم معرفی می شود و به طور بالقوه سایر بلاک چین ها را تشویق می کند تا از این محیط زمان اجرا برای قراردادهای هوشمند نیز استفاده کنند. طبیعتی وجود دارد. با این حال، اینکه آیا eWASM جایگزین EVM به عنوان قابل اعتمادترین مکانیسم برای قراردادهای هوشمند خواهد شد یا خیر، موضوع زمان است.
نویسنده: Murtuza Merchant