ماشین مجازی اتریوم چیست؟ (EVM)
ماشین مجازی اتریوم یا Ethereum Virtual Machine چیست؟
لوازم ضروری ماشین مجازی اتریوم
- ماشین مجازی اتریوم (EVM) یک محیط زمان اجرا برای قراردادهای هوشمند است که برای توسعه و آزمایش قراردادهای هوشمند نیز استفاده میشود.
- EVM شبه تورینگ کامل است، به این معنی که تا زمانی که کاربر شروعکننده محاسبه اتر کافی برای پرداخت هزینه مورد نیاز برای آن محاسبه را داشته باشد، میتواند هر محاسبهای را انجام دهد.
- EVM یک محیط سندباکس و ایزوله است، به این معنی که کدی که اجرا میکند به شبکه، سیستم فایل یا سایر فرآیندها دسترسی ندارد.
- علاوه بر این، EVM نمیتواند به دادههای دنیای واقعی، به عنوان مثال، تاریخ، زمان یا آب و هوا دسترسی داشته باشد. برای به دست آوردن چنین دادههایی، به اصطلاح اوراکلها متکی است.
- EVM توسط تمام گرههای شبکه اتریوم اجرا میشود.
محیطی برای توسعه قراردادهای هوشمند
EVM جعبه شنی شده و از دنیای واقعی جدا شده است. این بدان معناست که کد در حال اجرا در EVM به شبکه، سیستم فایل یا هیچ فرآیند دیگری دسترسی ندارد. این باعث میشود EVM برای توسعه و آزمایش قراردادهای هوشمند بدون تداخل در عملیات بلاکچین عالی باشد.
ممکن است از خود بپرسید که چرا آزمایش قراردادهای هوشمند در یک محیط sandbox ایده خوبی است. مسئله این است که کد معیوب میتواند برای هر قرارداد هوشمندی مضر باشد، بنابراین اطمینان از اینکه هیچ نقصی در کد قرارداد هوشمند وجود ندارد، ضروری است. علاوه بر این، یک محیط سندباکس مانند EVM فرصتهای بی نهایتی را برای یادگیری، تکرار، بهبود و در نهایت تکمیل قراردادهای هوشمند قوی که برای استقرار در بلاکچین آماده هستند، فراهم میکند.
محدودیتهای EVM
ماشین مجازی اتریوم به عنوان تورینگ کامل توصیف شده است . کامل بودن تورینگ به ظرفیت کامپیوتر برای انجام هر گونه محاسبهای که ارائه میشود اشاره دارد. این بدان معنی است که در اتریوم، امکان نوشتن برنامهها یا برنامههای غیرمتمرکز وجود دارد که قادر به حل هر محاسبات معقولی هستند.
اما محدودیتی برای EVM وجود دارد و به عنوان نوعی احتیاط ایمنی وجود دارد. قراردادهای هوشمند میتوانند قراردادهای دیگری را فراخوانی کنند که به طور بالقوه امکان حلقه نامحدود را فراهم میکند. بر این اساس EVM خواستار پرداخت کارمزد تراکنش برای هر تراکنش در شبکه است. این بدان معنی است که حلقههای محاسباتی بی نهایت با خسته کردن تراکنشهای آغازگر اتر آنها جلوگیری میشود. با توجه به این معیار ایمنی، EVM نمیتواند به طور کامل تورینگ کامل باشد. بلکه گفته میشود که شبه تورینگ کامل است.
نکته دیگری که قابل ذکر است این است که EVM نمیتواند حتی به ابتدایی ترین دادههای دنیای واقعی دسترسی داشته باشد. به عنوان مثال، EVM نمیتواند به تنهایی بداند چه روزی است یا دمای فعلی را بگوید. برای به دست آوردن چنین دادههایی، که اغلب برای اجرای مناسب قراردادهای هوشمند مورد نیاز است، EVM به ارائه دهندگان داده در دنیای واقعی موسوم به اوراکل متکی است. اوراکل میتواند دادهها را از یک وبسایت، یک برنامه یا جای دیگر جمعآوری کند و آنها را به قرارداد هوشمند تغذیه کند.
ضمناْ پروژه پالیگان اخیراً در خصوص مشکل مقیاسپذیری EVM راهحلی هوشمندانه به نام zkEVM ارائه داده است.
EVM چه کاری انجام میدهد؟
هر زمان که یک تراکنش در بلاکچین اتریوم آغاز میشود – و فرقی نمیکند که انتقال ارزش ساده باشد یا یک قرارداد هوشمند – EVM باید سه بررسی زیر را انجام دهد:
- تأیید میکند که آیا یک تراکنش دارای تعداد صحیح مقادیر است یا خیر، آیا امضا معتبر است یا خیر، و آیا تراکنش nonce با nonce آن حساب تراکنش خاص مطابقت دارد یا خیر. در صورت عدم تطابق، تراکنش با خطا مواجه میشود.
- کارمزد مورد نیاز برای معامله را محاسبه میکند و پرداخت گاز را اولیه میکند.
- انتقال اتر یا توکنها را به آدرس اختصاص داده شده اجرا میکند.
اگر EVM تشخیص دهد که فرستنده گاز کافی را به تراکنش آغاز شده اختصاص نداده است، تراکنش موفق نخواهد بود. در این صورت کارمزد تراکنش به آغازکننده معامله مسترد نمیشود. در عوض، به ماینر پرداخت میشود. با این حال، اگر تراکنش به دلیل خطا در آدرس گیرنده ناموفق باشد، EVM مبلغ ارسال شده و همچنین کارمزد مربوطه را به فرستنده باز میگرداند.
EVM جایی است که جادوی اتریوم اتفاق میافتد و ارزش افزودهای را برای فناوری بلاکچین و دنیای ارزهای دیجیتال به ارمغان میآورد. با توجه به ویژگیهایی مانند EVM، پلتفرم اتریوم از محبوبیت زیادی برخوردار شده است، به طوری که اتر، رمزارز اصلی آن، یکی از بزرگترین ارزهای دیجیتال از نظر ارزش بازار باقی مانده است.