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


EVM که ستون فقرات بلاک چین اتریوم را تشکیل می دهد، یک محیط زمان اجرا را برای توسعه دهندگان برای ساخت DApps و سایر برنامه ها فراهم می کند.

اتر (ETH)، دومین ارز دیجیتال بزرگ از نظر ارزش بازار، به دلیل توکن ETH بومی خود در بین سرمایه گذاران ارزهای دیجیتال محبوب است. همانطور که گفته شد، زبان برنامه نویسی بومی Solidity و ماشین مجازی اتریوم (EVM) در تحسینی که از جامعه توسعه دهندگان دریافت می کند، چشمگیر است. در واقع، بلاک چین اتریوم به دلیل انعطاف‌پذیری، تنوع گسترده ابزارهای توسعه‌دهنده در دسترس و پایگاه کاربری بزرگ پلتفرم، به جذب توسعه‌دهندگان برنامه‌های غیرمتمرکز (DApp) ادامه می‌دهد.

EVM که هسته معماری بلاک چین را تشکیل می‌دهد، برنامه‌ای است که کد برنامه یا قراردادهای هوشمند را اجرا می‌کند و یک محیط زمان اجرا برای آن‌ها فراهم می‌کند که در بالای شبکه اتریوم اجرا می‌شوند. علاوه بر این، EVM کامل تورینگ است و بنابراین می‌تواند هر برنامه‌ای را که با هر زبان برنامه‌نویسی کدگذاری شده اجرا کند، به توسعه‌دهندگان این امکان را می‌دهد تا به راحتی قراردادهای هوشمند سفارشی و DApps را برای فضای در حال رشد Web3 ایجاد کنند.

علاوه بر این توابع مهم، EVM به تمام گره‌های شبکه دسترسی دارد، اجرای قراردادهای هوشمند را مدیریت می‌کند و به طور موثر تمام تراکنش‌ها را روی بلاک چین اتریوم اجرا می‌کند و آن را به یکی از قدرتمندترین ماشین‌های مجازی موجود تبدیل می‌کند.

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

شبکه اتریوم که توسط برنامه نویس Vitalik Buterin در سال 2013 طراحی شد، موفقیت چشمگیر خود را به عنوان بلاک چین انتخابی برای توسعه دهندگان DApp مدیون ماشین مجازی اتریوم (EVM) است که توسط گاوین وود در دوران تصدی او در اتریوم طراحی شده بود. EVM که به زبان C++ و با استفاده از کامپایلر پروژه LLVM نوشته شده است، یک ماشین حالت ویژه است که فرآیندهای دائمی در حال اجرا و تغییرناپذیر آن، وضعیت هر بلوک را در بلاک چین اتریوم تعیین می کند.

EVM نه تنها مدیریت می‌کند که گره‌ها چه کارهایی را می‌توانند یا نمی‌توانند با دفتر کل توزیع شده که توسط بلاک چین اتریوم نگهداری می‌شود انجام دهند، بلکه قوانین خاصی را برای تغییر حالت از بلوکی به بلوک دیگر تعریف می‌کند. عملکرد دوم چیزی است که عملکرد قرارداد هوشمند را که اتریوم به آن شناخته شده است را قادر می سازد.

برای درک آنچه که یک ماشین مجازی اتریوم انجام می دهد، لازم است به هر یک از عملکردهای متفاوتی که در حفظ عملکرد روان شبکه اتریوم انجام می دهد نگاه کنید. EVM برای هر ورودی که دریافت می کند، خروجی ای تولید می کند که ماهیت قطعی دارد و به سادگی از یک تابع ریاضی پیروی می کند.

EVM که مانند یک ماشین پشته ای کار می کند که گذرا را به یک پشته کششی و از پشته فشار می دهد، دارای عمق 1024 عنصر است که هر یک کلمه 256 بیتی است. همچنین یک حافظه موقت در قالب یک آرایه بایت که بین دو تراکنش در بلاک چین اتریوم تغییر می کند، نگهداری می کند. کدهای قرارداد هوشمند کامپایل شده توسط EVM در قالب مجموعه ای از 140 کد عملیاتی استاندارد اجرا می شوند، در حالی که سایر عملیات پشته مخصوص بلاک چین نیز توسط آن پیاده سازی می شوند.

نمودار یک ماشین مجازی اتریوم

بنابراین، EVM دارای یک حالت ماشینی است که ذاتاً در طول پردازش هر تراکنش ناپایدار است و یک وضعیت جهانی یا جهانی حاوی اطلاعات مربوط به حساب‌های مختلف موجود در بلاک چین اتریوم است. همه اقدامات توسط کد EVM کنترل می شوند، که از زمان راه اندازی شبکه اتریوم در سال 2015 چندین بار تکرار شده است، که منجر به وجود پیاده سازی های مختلف 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 و اکوسیستم قرارداد هوشمند اتریوم مناسب می‌کند. کتابخانه ای از کدهای استاندارد را برای توسعه دهندگان اضافه کنید، تعداد فزاینده ای از بلاک چین های لایه 2 سازگار با EVM و تا حد امکان موارد استفاده EVM ممکن است، و به راحتی می توانید متوجه شوید که چرا EVM پلتفرم انتخابی است. برای توسعه وب 3

معایب ماشین مجازی اتریوم (EVM)

علیرغم مزایای بسیاری که EVM ارائه می دهد، برخی از معایب وجود دارد که باید توسط توسعه دهندگان و کارآفرینان ایجاد شده بر روی اتریوم در نظر گرفته شود. مهمترین آنها هزینه های بالای تراکنش یا هزینه های گاز مرتبط با اجرای یک قرارداد هوشمند در شبکه اتریوم است.

این هزینه‌ها، که بر حسب اتریوم پرداخت می‌شوند، بسته به پیچیدگی قرارداد و ازدحام شبکه در زمان اجرا متفاوت است، و توسعه‌دهندگان و کارآفرینان را موظف می‌کند که خدمات خود را بر اساس آن قیمت‌گذاری کنند. علاوه بر این، از آنجایی که Solidity ترجیح داده شده ترین زبان برای کدنویسی در EVM است، این بدان معناست که توسعه دهندگان باید تجربه کافی در مورد آن و برخی تخصص های فنی برای ایجاد قراردادهای هوشمند کارآمد با استفاده از آن داشته باشند.

مورد دوم مهم است زیرا هر گونه نیاز محاسباتی اضافی منجر به هزینه های گاز بیشتر می شود و در نهایت به موفقیت پروژه لطمه می زند. اگر توسعه‌دهندگان کدنویسی را با استفاده از زبان‌های دیگر انتخاب می‌کنند، باید در حل مشکلات تکراری ذاتی کد دقت کنند، زیرا EVM به هر حال به کامپایل آن‌ها ادامه می‌دهد. در حالی که ارتقای قراردادهای هوشمند در مراحل بعدی امکان پذیر است، اما خطرات امنیتی مرتبط با ایجاد یک قرارداد هوشمند واسطه را به همراه دارد که به آدرس قرارداد هوشمند اصلی اشاره می کند.

آینده EVM ها

علیرغم تغییرات انقلابی که EVM در اکوسیستم بلاک چین به ارمغان آورده است، این فناوری خواندن و اجرای کد توسط تعدادی از پروژه های بلاک چین در حال توسعه است.

از آنجایی که قابلیت همکاری زنجیره‌ای متقابل یکی از دغدغه‌های اصلی توسعه‌دهندگان است، بیشتر بلاک‌چین‌های سازگار با EVM پشتیبانی می‌شوند و نسبت به اکثر پروتکل‌های اتریوم، دریچه گاز کمتر و سرعت تراکنش بالاتری ارائه می‌دهند. در نتیجه، این بلاک چین ها اکنون می توانند به طور یکپارچه با کاربران اتریوم تعامل داشته باشند و با استفاده از پل های بلاک چین، انتقال وجه به شبکه های مربوطه را تسهیل کنند.

با این حال، با تکمیل موفقیت آمیز پروتکل اتریوم در سپتامبر 2022، هدف بعدی انتقال از EVM به Ethereum WebAssembly (eWASM) است. eWASM که به گونه ای بسیار ماژولار و مستقل از پلتفرم طراحی شده است، به عنوان تغییر دهنده بعدی بازی برای پروتکل اتریوم معرفی می شود و می تواند سایر بلاک چین ها را برای استفاده از این محیط زمان اجرا برای قراردادهای هوشمند نیز ترغیب کند. با این حال، اینکه آیا eWASM ها جایگزین EVM به عنوان قابل اعتمادترین مکانیسم برای قراردادهای هوشمند خواهند شد یا خیر، سوالی است که تنها زمان به آن پاسخ خواهد داد.


نویسنده: Murtuza Merchant

اشتراک گذاری و حمایت

تصویر امیر کرمی

امیر کرمی

کارشناس تولید محتوا و علاقه مند به ارز دیجیتال و دنیای فناوری 😉

دیدگاهتان را بنویسید