ماشین مجازی اتریوم چیست؟ کاردبردها و آینده EVM
- 05 اردیبهشت 1402
- نویسنده : کارشناس دنیای ترید
ماشین مجازی اتریوم قلب تپندهی اتریوم است. این مفهوم به اختصار EVM نامیده میشود که مخفف عبارت "ethereum virtual machine" است. در این مطلب، در مورد EVM و کاربردها و مزایای آن توضیحات کاملی به زبان ساده ارائه شده که دانستن آنها به شناخت بلاکچینهای پر پتانسیل برای سرمایهگذاری کمک میکند.
ماشین مجازی اتریوم چیست؟
ماشین مجازی اتریوم دقیقاً چیست و چه کاربردی دارد؟ جایگاه EVM کجاست و اگر نباشد، چه اتفاقی می افتد؟
به زبان ساده، ماشین مجازی اتریوم یک نرم افزار است که برای اولین بار به منظور اجرای قراردادهای هوشمند در شبکهی اتریوم طراحی شد. اما به تدریج شبکههایی که با این ماشین سازگاری دارند، افزایش یافت.
EVM مانند یک سیستم عامل برای اتریوم عمل می کند، البته به عنوان یک ماشین مجازی، عملکرد EVM کمی با یک سیستم عامل سنتی مانند ویندوز تفاوت دارد. زیرا ویندوز فقط باید در یک زمان روی یک دستگاه اجرا شود ولی EVM در یک زمان، باید روی هزاران دستگاه اجرا شود.
به طور کلی، ماشینهای مجازی (VMs) لایههای انتزاعی سطح بالایی هستند که بر روی یک سیستم عامل بومی ساخته شدهاند تا یک دستگاه فیزیکی را شبیهسازی کنند. این دستگاههای مجازی شرایطی را ایجاد می کنند که یک پلتفرم واحد، روی بسیاری از معماریهای سختافزاری و سیستمعاملهای مختلف اجرا شود. یک شبکه توزیع شده مانند اتریوم که باید از طریق چندین مشتری در ماشینهای مختلف در سراسر جهان قابل دسترسی باشد، نیاز به چنین سیستم عاملی دارد.
ماشین مجازی اتریوم به عنوان یک موجودیت واحد در شبکهی هوشمند اتریوم حضور دارد؛ البته یک موجودیت مجازی است که توسط هزاران رایانه متصل به شبکه که یک کلاینت اتریوم را اجرا میکنند، نگهداری می شود. بدون ماشین مجازی اتریوم هیچ یک از قراردادهای هوشمند اجرا نمیشوند و عملاً شبکه اتریوم ناکارآمد خواهد بود.
کل پروتکل اتریوم صرفاً به این دلیل ساخته شده که بقای عملکرد مداوم، بی وقفه و تغییرناپذیر این ماشین مجازی را تضمین کند؛ زیرا EVM محیطی است که تمام حسابهای اتریوم و قراردادهای هوشمند در آن قرار دارند. در هر بلوک زنجیرهی اتریوم، فقط یک حالت «تعریف شده» وجود دارد و EVM همان چیزی است که قوانین را برای محاسبهی یک حالت معتبر جدید، از بلوکی به بلوک دیگر تعریف میکند.
حال که به نقش کلیدی ماشین مجازی اتریوم پی بردید، کمی از نزدیک به این فناوری نگاه کنیم.
تعریف فنی ماشین مجازی اتریوم
حتماً تاکنون دریافتهاید که ماشین مجازی اتریوم قلب تپندهی بلاکچین اتریوم است و وجود آن برای این شبکه و بسیاری از شبکههای لایه 2 حیاتی است. به EVM، کامپیوتر یا سیستم عامل جهانی توقف ناپذیر نیز گفته می شود. زیرا برای خاموش کردن آن، باید تعداد زیادی از کامپیوترهایی را که در سراسر جهان، به عنوان نود فعالیت می کنند، خاموش کنیم.
مطالعه این مقاله پیشنهاد می شود: نود چیست؟
اساساً EVMها مانند پلی بین کد اجرا و ماشین اجرا قرار دارند و لایهای مجازی را میان این دو عامل مهم ایجاد میکنند. این لایه به منظور بهبود قابلیت نرم افزار، حصول اطمینان از تفکیک برنامهها از یکدیگر و همچنین تفکیک آنها از میزبان خود استفاده میشوند.
ماشین مجازی اتریوم: یک اَبَرکامپیوتر پیچیده
ماشین مجازی اتریوم را می توان به عنوان یک اَبَر رایانهی قدرتمند فرض کرد که تمام قراردادهای هوشمند را اجرا می کند. اما این ابرکامپیوتر مجازی است، در یک مکان قرار ندارد و قابل دیدن نیست.
ماشین مجازی اتریوم یک CPU غیرمتمرکز و تابع وضعیت فعلی اتریوم است. وضعیت فعلی ماشین مجازی اتریوم مجموعهای از فرآیندهای بلاکچین است که به شبکه اصلی پیوند خورده و کدگذاری شده هستند.
مجموعهی دستورات ماشین مجازی اتریوم به صورت تورینگ کامل است و به قراردادهای مستقر در شبکه اجازه می دهد هر کاری را که یک برنامه کامپیوتری معمولی قابلیت انجام آن را دارد، اجرا کند.
هدف ماشین مجازی اتریوم چیست؟
اتریوم، مانند سایر شبکههای مبتنی بر بلاک چین، ارز بومی (ETH) خود را دارد، از یک دفتر کل توزیع شده برای پیگیری تراکنشها استفاده میکند و در عین حال، قوانین خاصی را برای نحوه تعامل کاربران با شبکه اعمال میکند. از سوی دیگر، اتریوم به لطف قابلیتهای قرارداد هوشمند خود، یک لایهی عملکرد اضافی را نیز ارائه میدهد. بنابراین به طور خلاصه میتوان گفت اتریوم موارد زیر را به طور بیوقفه اجرا میکند:
- اجرا و پیگیری تراکنشها با استفاده از دفتر کل
- اعمال قوانین
- اجرای قراردادهای هوشمند
در عین حال، وضعیت اتریوم یک حالت ماشینی است که میتواند هر بلوک جدید را تغییر دهد و هر نوع کد ماشینی را طبق مجموعهای از قوانین مشخص شده اجرا کند. ماشین مجازی اتریوم قوانین خاصی را تعریف می کند که نحوه تغییر وضعیت ماشین را در طول هر بلوک جدید کنترل می کند.
وظیفه اصلی EVM این است که دریابد در بلاکچین، وضعیت کلی اتریوم برای هر بلاک چگونه خواهد بود.
مهم ترین کاربردهای ماشین مجازی اتریوم
یکی از کاربردهای محبوب قراردادهای هوشمند، مدیریت تولید و تبادل توکنها است. بسیاری از برنامهها و پروتکلها توکنهای بومی خود را به عنوان پاداش و همچنین انجام اقداماتی در جهت اهداف اصلی پروژه، استفاده میکنند. این اهداف میتواند استیک و تخصیص پاداش برای آن باشد یا رأیگیری. بدون ماشین مجازی اتریوم هیچ یک از اینها امکان پذیر نخواهد بود.
بیشترین موارد استفاده از ماشین مجازی اتریوم ایجاد NFT استاندارد ERC-20 و ERC- 721 است.
مطالعه این مقاله پیشنهاد می شود: آموزش ساخت و مینت رایگان NFT در Opensea
همچنین EVM زمینه را برای توسعههای بیشمار بلاکچین فراهم میکند.
مهم ترین مزایای ماشین مجازی اتریوم
EVM فقط مخصوص شبکهی اتریوم نیست. بلکه تمامی شبکههای لایه 2 که بر روی اتریوم ساخته میشوند و همچنین شبکههای مستقل دیگر از طریق سازگاری با ماشین مجازی اتریوم میتوانند از مزایای آن برخوردار باشند. از معروفترین بلاکچینهای غیر اتریومی سازگار با ماشین مجازی اتریوم، میتوان به بایننس اسمارت چین اشاره کرد. بلاکچینهایی که با EVM سازگار هستند، با میزبانی اپلیکیشنهای مختلف به سرعت رشد میکنند. بنابراین سازگاری با مشاین مجازی اتریوم یک مزیت بزرگ برای شبکههاست.
به طور خلاصه اصلیترین مزایای ماشین مجازی اتریوم موارد زیر است:
- قابلیت سازگاری با کیف پولهای اتریومی (متامسک، تراست ولت و...)
- امکان اجرای قراردادهوشمند (وامدهی، پاداش استیکینک، رأیگیری)
- قابلیت ایجاد NFT: هر کسی ممکن است هنر دیجیتال بسازد و آن را در یک بازار غیرمتمرکز یا مارکت پلیس به فروش برساند. این امر به صورت مجازی دسترسی دموکراتیک به بازار هنر را که قبلاً در دسترس نبود، میسر می سازد.
- کاهش کارمزد تراکنشها
- ایجاد فرمت آدرس اتریومی که برای بازیابی ارز دیجیتال در صورت ارسال اشتباهی بسیار مفید است. (آدرسهای اتریومی با 0x آغاز میشوند.)
- استفاده دموکراتیک: هیچ مانع یا محدودیت امنیتی خاصی برای ماشین مجازی اتریوم وجود ندارد. EVM به هر کسی اجازه می دهد تا برنامه غیرمتمرکز خود را ایجاد کند.
معایب ماشین مجازی اتریوم
با در نظر گرفتن مزایای بی نظیر ماشین مجازی اتریوم، می توان از معایب آن چشم پوشی کرد. البته توسعه دهندگان اتریوم با هر هارد فورک در رفع این معایب کوشش میکنند. اتریوم نیز با ارتقای بعدی خود و مهاجرت به اتریوم 2.0 مشکلات مهمی را برطرف کرد.
- تمرکزگرایی: اگرچه شبکه EVM غیرمتمرکز است، اما غیرمتمرکز به معنای واقعی کلمه نیست. اکثریت قریب به اتفاق نودهای اتریوم در سرویسهای وب آمازون و سرورهای ابری متمرکز قرار دارند. اگر صاحبان این سرویس ها تصمیم بگیرند که اتریوم را به هر دلیلی تحریم کنند، میتوانند باعث ایجاد آسیب یا تخریب جدی در شبکه شوند.
- کندی عملکرد: EVM اطلاعات حساب مربوط به شماره بلوک، قیمت گس، آدرسها و موجودیها را مدیریت میکند. از آنجایی که EVM مسئولیت بسیاری از عملکردهای مهم در شبکه اتریوم را بر عهده دارد، سرعت انجام عملیات و اجرای تراکنش در آن، بر سرعت و عملکرد کلی شبکه تأثیر می گذارد. همچنین بازدهی EVM در اجرای کد، مستقیماً بر کارایی شبکه تأثیر می گذارد.
جایگاه گس (Gas) در ماشین مجازی اتریوم
در ماشین مجازی اتریوم، گس (Gas) یک واحد اندازه گیری برای کارمزد تراکنش است. گس به منظور تخصیص کارمزد برای هر تراکنش قرارداد هوشمند استفاده میشود. هر محاسباتی که در EVM انجام میشود به مقدار معینی گس نیاز دارد. هرچه محاسبات پیچیدهتر باشد، گس بیشتری برای اجرای قراردادهای هوشمند مورد نیاز است.
هر دستورالعملی پس از پیاده سازی در ماشین مجازی اتریوم، توسط یک سیستم پیگیری می شود. سیستم هزینه اجرای دستورالعمل را پیگیری میکند. سپس هزینه مربوط به gas (گس) را محاسبه و تعیین میکند. برای اجرای یک قرارداد یا تراکنش، کاربر باید مقدار اتر کافی برای پرداخت هزینهی گس (کارمزد) در کیف پول خود داشته باشد.
مکانیزم گس، دو مشکل عمده EVM را از میان برمیدارد:
- اعتبار سنجی را انجام می دهد: تضمین می شود که مبلغی به عنوان پیش پرداخت اولیه دریافت شود، حتی اگر اجرا لغو شود.
- تراکنش به میزان ثبت شده اجرا می شود: گس مشخص می کند که چه میزان تراکنش باید انجام شود. بنابراین اجازه انجام تراکنش بیش از مقداری که از پیش پرداخت شده، داده نمی شود. اجرا تراکنش تا زمانی که گس به اتمام برسد، به طول می انجامد.
کارمزد معامله این گونه محاسبه می شود:
کارمزد معامله = کل گس مصرفی*قیمت گس
مقایسه ماشین مجازی اتریوم با سایر ماشین های مجازی
ماشین مجازی اتریوم دامنه عملیاتی نسبتاً محدودی دارد. بیشتر شبیه ماشین مجازی جاوا است که فقط به عنوان یک موتور محاسباتی عمل می کند و یک لایه انتزاعی متشکل از محاسبات و قابلیت های ذخیره سازی را ارائه می دهد. ماشین مجازی جاوا می تواند چندین سیستم را با یکدیگر سازگار کند؛ زیرا در آن یک محیط آگنوستیک سیستم عامل زیربنایی را فراهم می سازد.
EVM نیز البته به طور مشابه عمل می کند، با این تفاوت که مجموعه دستورالعمل بایت کد خود را اجرا می کند که زبان های برنامه نویسی قرارداد هوشمند سطح بالاتر در آن کامپایل شده اند. دستور اجرا به صورت خارجی سازماندهی می شود، به این معنا که ماشین مجازی اتریوم هیچ قابلیت زمان بندی خاصی ندارد. این مشتریان اتریوم هستند که ترتیب اجرای قراردادهای هوشمند را تعیین می کنند. ماشین مجازی اتریوم همچنین هیچ رابط سیستمی یا ماشین فیزیکی خاصی ندارد زیرا کاملا مجازی است.
آینده ماشین مجازی اتریوم
در آینده قرار است Ewasm جای EVM را بگیرد.
افزایش بار روی شبکه اتریوم در سالهای اخیر باعث شده است که EVM به یک گلوگاه تبدیل شود که اغلب باعث کاهش توان عملیاتی و افزایش زمان تراکنش میشود. این موضوع یکی از دلایل اصلی اتریوم برای انتقال از EVM و حرکت به سوی Ewasm است.
مهاجرت به اتریوم 2.0: خداحافظی با ماشین مجازی اتریوم
در آینده قرار است یک ارتقای مهم به نام اتریوم 2.0 صورت بگیرد. یکی از جنبه های اصلی ارتقای اتریوم 2.0 انتقال از EVM به Ewasm خواهد بود.
این نرمافزار همچنین بهگونهای طراحی شده است که به راحتی قابل خواندن و اشکالزدایی است. این امر از طریق یک قالب متنی قابل خواندن توسط انسان به دست میآید و امکان مشاهده، نوشتن و اشکال زدایی کد به صورت دستی را فراهم میکند. اتریوم با استفاده از Wasm، به پروژه هایی مانند پولکادات، کاردانو، ایاس، ترون و پروتکل NEAR ملحق خواهد شد که یا قبلاً Wasm را پذیرفته اند یا در حال پذیرش آن هستند. جایگزینی Wasm به جای ماشین مجازی اتریوم، در نهایت منجر به یک اتریوم بسیار سریعتر و کارآمدتر خواهد شد.
برنامه نویس ها بخوانند
تا اینجای مطلب اطلاعات عمومی در مورد ماشین مجازی اتریوم داده شد. از این قسمت به بعد اطلاعات بیشتر مناسب برنامهنویسان یا علاقهمندان جدی حوزهی دانش بلاکچین است.
زبان برنامه نویسی ماشین مجازی اتریوم چیست؟
زبان اختصاصی بلاکچین اتریوم سالیدیتی (Solidity) است. ماشین مجازی اتریوم به توسعه دهندگان اجازه می دهد تا قراردادهای هوشمند را در زبان برنامه نویسی سالیدیتی ایجاد کنند.
مطالعه این مطلب پیشنهاد میشود: 5 زبان برنامه نویسی بلاکچین
کدهای عملکردی EVM چیست؟
کد ماشین مجازی اتریوم، کد باینری قراردادهای هوشمند اتریوم است، کدی که می تواند توسط این ماشین اجرا شود.
معمولاً قراردادهای هوشمند با زبان سالیدیتی نوشته میشوند، اما ماشینی که قرارداد را اجرا میکند، طریقهی اجرای زبان Solidity را نمیفهمد، برای این که کدها در شبکه اتریوم قابل درک باشند، باید به زبانی واسط ترجمه شوند. این کار، وظیفهی کامپایلر است: ترجمه از یک زبان قابل خواندن توسط انسان، یعنی زبان سالیدیتی به یک زبان قابل خواندن توسط ماشین، یعنی کد EVM.
به عنوان مثال، برنامههایی با زبان C++ نوشته میشوند، به یک کامپایلر نیاز دارند؛ پردازنده به این وسیله میتواند آن را درک و کد C++ را به کد باینری تبدیل کند. برای اکثر کامپیوترها کد باینری X86 نامیده میشود. برای ماشین مجازی اتریوم که کد را در بلاک چین اجرا می کند، این کد باینری EVM نامیده می شود.
EVM از مجموعهای از دستورالعملها به نام کدهای عملیاتی برای انجام وظایف خاص استفاده میکند. تا 30 ژانویه 2019 حداقل 140 کد عملیات منحصر به فرد وجود داشت. این کدهای عملیاتی به EVM اجازه می دهد تا از منابع خود برای محاسبه استفاده کند. از آنجایی که اپکدها هر کدام 1 بایت هستند، حداکثر می تواند 256 یا 16 ضربدر 16 کد عملیاتی وجود داشته باشد.
قراردادهای هوشمند هنگام شروع یک تراکنش، بایت کد EVM را اجرا می کنند، که به آنها امکان میدهد محاسبات و تراکنشهای بعدی را انجام دهند. EVM از یک پشته ثبت 256 بیتی استفاده میکند. در هر زمان، می توان به 16 مورد اخیر دسترسی پیدا کرد یا از آن استفاده کرد. در مجموع، پشته ثبت می تواند تا 1024 مورد را در خود جای دهد.
تمام پیاده سازیهای EVM باید از مشخصات ذکر شده در یلوپیپر اتریوم پیروی کنند. توجه به این نکته بسیار ضروری است که همه کلاینتهای اتریوم یا کلاینتهای اجرایی باید دارای یک مدل ثابت پیادهسازی EVM باشند.
بایت کدها (Bytecodes) در ماشین مجازی اتریوم
از آنجایی که اتریوم از EVM به عنوان یک جزء اصلی شبکه استفاده می کند، کد قرارداد هوشمند نوشته شده به زبان های سطح بالا، برای اجرا باید در بایت کد EVM کامپایل شود. EMV Bytecode یک کد اجرایی در ماشین مجازی اتریوم و Contract ABI یک رابط برای تعامل با بایت کد EVM است. به عنوان مثال، اگر می خواهید تابعی را در یک قرارداد هوشمند با کد جاوا اسکریپت خود فراخوانی کنید، ABI به عنوان یک واسطه بین کد جاوا اسکریپت و بایت کد EVM برای تعامل با یکدیگر ایفای نقش می کند.
بایت کد EVM یک زبان برنامه نویسی سطح پایین است که از یک زبان برنامه نویسی سطح بالا مانند سالیدیتی کامپایل شده است. بایت کد EVM برای انسان قابل خواندن نیست اما برای دستگاه قابل خواندن است.
پروسه ایجاد قرارداد هوشمند توسط ماشین مجازی اتریوم
چگونه یک قرارداد هوشمند توسط ماشین مجازی اتریوم اجرا می شود؟
ماشینهای مجازی اتریوم با موفقیت در زبانهای برنامهنویسی مختلف از جمله سی پلاس پلاس (C++)، جاوا، جاوا اسکریپت، پایتون، روبی و بسیاری دیگر پیادهسازی شدهاند.
در اتریوم، قراردادهای هوشمند صرفاً برنامههای رایانهای هستند که در یک زبان برنامهنویسی سطح بالا نوشته شده و در بایت کد قابل خواندن توسط ماشین کامپایل شده و روی ماشین مجازی اتریوم اجرا میشوند.
و اما سخن پایانی...
اتریوم دومین شبکه بزرگ در دنیای ارز دیجیتال بوده و از امنیت و کارآیی مثال زدنی برخوردار است. اما چندی است که با گسترش بلاکچین های قرارداد هوشمند دیگر که سرعت بیشتر و کارمزد کمتری ارائه می دهند، از این شبکه انتقادات زیادی شده است.
یکی از علت های اصلی کندی و کارمزد بالای شبکه اتریوم، ماشین مجازی اتریوم است. قرار است در بروزرسانی آتی و با جایگزینی فناوری EWasm به جای EVM، شبکه اتریوم این مشکل را برطرف کند. این یک سیگنال بسیار مهم برای خرید ارز اتریوم است. بنابراین منتظر این ارتقای سرنوشت ساز باشید.
اگر می خواهید در زمان مناسب وارد بازار اتریوم شوید، می توانید با دنبال کردن وبسایت دنیای ترید، از بروزترین اخبار حوزه ارز دیجیتال، در زمان مناسب مطلع شوید.
صرافی های ارز دیجیتال
ارسال دیدگاه
2 دیدگاه
-
-
-
کارشناس وبسایت دنیای ترید ، 07 خرداد 1402
سلام تقی رحمانپور عزیز. برای دریافت راهنمایی بهتر، لطفاً به این پرسش ها پاسخ بدید. آیا تراکنش شما شامل انتقال وجه هست؟ اگر اینطوره، وجه رو به چه آدرسی فرستادید و از کدام شبکه برای انتقال وجه استفاده کردید؟ حتماً در سابقه تراکنش ها چک کنید که آیا آدرس و شبکه انتقال را به درستی وارد کردید؟ آیا تایید تراکنش رو دریافت کردید؟
-
تقی رحمانپور
، 07 خرداد 1402
باسلام من در تاریخ 19مارس 2023درپلتفرم زنجیری هوشمندانریوم تراکنش ازوالکس انجام دادم اما هنوز برگشت بحسابم نشد