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

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

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

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

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

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

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

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

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

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

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

آینده EVM ها

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

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

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