ماشین مجازی اتریوم یا EVM (مخفف Ethereum Virtual Machine) محیط اجرایی مجازی است که توسط توسعهدهندگان پروتکل اتریوم ایجاد شده و امکان اجرای برنامههای کاربردی را در قالب قراردادهای هوشمند فراهم میکند.
این سیستم زمان و حافظهی کافی برای حل هر پروژهی محاسباتی را دارد (تورینگ کامل) و براساس شرایط قراردادهای هوشمند و تعامل آنها با یکدیگر، قابلیتهایی مانند پرداختهای امن، انتقال اتر (ETH) و دیگر ارزهای دیجیتال، دسترسی به دادههای موجود در بلاکچین و رایدهی انتخاباتی را ارائه میدهد.
به عبارت سادهتر، EVM یکی از قابلیتهای اصلی و مهم اتریوم است و به عنوان محیطِ اجرایی برنامههای کاربردی این شبکه، مورد توجه برنامهنویسان و توسعهدهندگان بلاک چین است.
اجرای برنامهها در ماشین مجازی اتریوم با استفاده از زبان برنامهنویسی سالیدیتی (Solidity) یا پایتون (Python) صورت گرفته و هر برنامه نیز به صورت یکسان و قابل اعتماد در تمام نودهای شبکه اتریوم اجرا میشود.
برای درک بهتر تمام جملههای بالا، با ما در این مقاله از بیت پین همراه باشید تا پس از آشنایی مختصری با مفاهیم ابتدایی مانند ماشین مجازی و تورینگ کامل آشنا شویم و در ادامه ماشین مجازی اتریوم، عملکرد، قابلیتها و مزایا و معایب آن را معرفی کنیم.
ماشین مجازی چیست؟
ماشین مجازی یا VM (مخفف Virtual Machine) دستگاهی مجازی و طراحیشده برای اجرای سیستمهای عامل و اپلیکیشنهای مختلف است که روی دستگاهی فیزیکی نصب شده و سیستمعامل یا اپلیکیشنهای را روی آن دستگاه شبیهسازی میکند.
این دستگاه مجازی برای اجرای سیستمعاملی خاص به سختافزارهای خاصِ آن سیستمعامل نیازی نداشته و محیطی کاملا مشابه با دستگاهی واقعی را در اختیار کاربر میگذارد. برای مثال شما میتوانید با ماشین مجازی سیستمعامل لینوکس را در محیط ویندوز اجرا کرده و بهراحتی در آن محیط فعالیت کنید.
ماشینهای مجازی نیاز به استفاده از سیستمهای سختافزاری را کاهش میدهند و امکان یکپارچهسازی سرورها، تخصیص منابع بین بخشهای مختلف، افزایش امنیت سرورها و مدیریت محیطهای مختلف را فراهم میکنند.
علاوهبراین، قدرت محاسباتی ماشینهای فیزیکی را نیز شبیهسازی کرده و فارغ از موقعیت مکانی یا جغرافیاییشان، پروژههای مختلفی را ایجاد، پردازش و اجرا کنند.
ماشین مجازی اتریوم نیز، حکم ماشینی مجازی برای انجام محاسبات پیچیده در شبکهی اتریوم را دارد و توسعهدهندگان به کمک آن قراردادهای هوشمند و برنامههای غیرمتمرکز (dApp) را توسعه میدهند.
در دو مقالهی زیر در مورد برنامههای غیرمتمرکز و نودها مفصل توضیح دادهایم:
این ماشین مجازی روی بلاک چین اتریوم اجرا شده و هر نود در این بلاک چین، به آن دسترسی دارد. نودها میتوانند به صورت داوطلبانه و به هر میزانی که بخواهند، سختافزار محاسباتی در اختیار این ماشین مجازی قرار دهند و روی فرآیند کاری آن نظارت داشته باشند.
قراردادهای هوشمند، توافقنامههایی هستند که زبانهای برنامهنویسی مختلفی (اغلب پایتون یا سالیدیتی) کدنویسی شدهاند، این قراردادها برای اجرا روی بلاک چینهای مختلف باید به زبانی واحد یا همان یا همان کدهای ماشین مجازی اتریوم ترجمه شوند.
برای مثال فرض کنید توسعهدهندهی اپلیکیشنی اندرویدی، پس از قرار دادن آن در گوگلپلی بازخوردهای خیلی مثبتی دریافت کند و تصمیم بگیرد این اپلیکیشن را برای کاربران iOS نیز گسترش دهد.
این توسعهدهنده میتواند به کمک ماشینهای مجازی با سرعت بیشتری اپلیکیشن موردنظر را برای کاربران iOS منتشر کند؛ همین موضوع در مورد توسعهی برنامههای غیرمتمرکز (dApp) برای شبکههای مختلف اتریوم نیز صدق میکند و کاربرد دارد.
تورینگ کامل چیست؟
گفتیم که ماشین مجازی اتریوم سیستمی است که زمان و حافظهی کافی برای حل هر پروژهی محاسباتی، حتی پیچیدهترین محاسبات را دارد و به عبارت دیگر تورینگْ کامل است. در تئوری محاسباتی، به سیستمی تورینگْ کامل یا از نظر محاسباتی جامع، نامیده میشود که بتواند هر کامپیوتر یا زبان کامپیوتری را شبیهسازی کند و حافظه و طول عمر نامحدود داشته باشد.
یک دستگاه یا زبان برنامهنویسی زمانی بهعنوان تورینگ کامل در نظر گرفته میشود، که بتواند هر مساله را حل یا هر برنامهای را اجرا کند؛ در غیر این صورت به آن تورینگ ناقص میگویند.
در دنیای ارزهای دیجیتال و فناوری بلاک چین ها، هر شبکه بسته به هدفی که دنبال میکند، ممکن است تورینگ کامل یا تورینگ ناقص باشد؛ برای مثال شبکهی بیت کوین عمدا بهشکل تورینگ ناقص طراحی شده تا توسعهدهندگانِ آن بتوانند با دقت بالاتری رفتار بیتکوین را پیشبینی کنند.
درمقابل شبکهی اتریوم میتواند هر قرارداد هوشمندی را درک و هر اپلیکیشنی را اجرا کند و بلاک چین آن در صورت داشتن دستورالعملهای صحیح، زمان و قدرت پردازش کافی، هر محاسباتی را پردازش کند.
کاربرد ماشین مجازی اتریوم
در ابتدای مقاله گفتیم که ماشین مجازی اتریوم یا همان EVM (مخفف Ethereum Virtual Machine) ابر کامپیوتری جهانی و مجازی است که برای تعامل قراردادهای هوشمند و اجرای میلیونها پروژهی محاسباتیِ غیرمتمرکز در شبکهی اتریوم استفاده میشود.
این ماشین مجازی را میتوان یکی از برتریهای شبکهی اتریوم در مقایسه با بیتکوین دانست؛ برخلاف بلاک چین بیت کوین که تنها امکان ارسال و دریافت ارز دیجیتال را فراهم میکند، شما میتوانید در بلاک چین اتریوم، قراردادهای هوشمند و برنامههای غیرمتمرکز بسازید، برای مثال اغلب بازیهای کریپتویی مبتنی بر شبکهی اتریوم توسعه داده شدهاند.
ماشین مجازی اتریوم موتور پردازش و پلتفرمی نرمافزاری است که نقش کامپیوتری غیرمتمرکز را برای تعامل قراردادهای هوشمند و توسعه و اجرای dAppها ایفا میکند.
پس از ساخت و توسعهی این قراردادهای هوشمند و dAppها، برای تعامل آنها با یکدیگر و اجرای آنها در دیگر شبکهها به ماشینی مجازی نیاز خواهید داشت.
به زبان ساده، ماشین مجازی اتریوم موتور پردازش و پلتفرمی نرمافزاری است که نقش کامپیوتری غیرمتمرکز را ایفا میکند که توسعهدهندگان از آن برای ساخت اپلیکیشنهای غیرمتمرکز و هر نود نیز برای اتصال و حفظ اجماع در کل بلاک چین، استفاده میکنند.
قابلیتهای ماشین مجازی اتریوم
پروتکل اتریوم تنها به یک دفترکل توزیعشده محدود نبوده و میزبان رویدادهای بسیار پیچیدهتری در این پلتفرم است. درواقع شبکه اتریوم محلی برای ثبت تمامی اطلاعات و دادههای حسابهای کاربری، وضعیت آنها را در لحظه ذخیره میکند. ماشین مجازی این شبکه به قابلیتهای زیر مجهز است.
عملکرد قطعی
ماشین مجازی اتریوم با هر ورودی یکسان، خروجی یکسانی دارد و فارغ از تعداد اجرای هر کد، نتایج یکسانی خواهد داشت. این قابلیت برای برنامههای غیرمتمرکزی که مسئولیت مدیریت تراکنشهای مالی را برعهده دارند، از اهمیت بالایی برخوردار است.
ایزوله بودن
ماشین مجازی اتریوم برای ایجاد قطعیت قراردادهای هوشمند و حفظ امنیت آنها، ایزوله پیادهسازی شده است.
پایان پذیر بودن
ماشین مجازی اتریوم، تورینگْ کامل است و قراردادهای هوشمند در آن میتوانند هر محاسباتی را انجام دهند، اما هیچ تضمینی برای به پایان رساندن این محاسبات در زمانی مشخص وجود ندارد. در چنین شرایطی، EVM این قابلیت را دارد تا از مفهومی به نام گس (Gas) برای نهاییسازی محاسبات استفاده کند.
ارتباط گس با EVM
هر اقدامی در بستر شبکه اتریوم، یک تراکنش است و هر برای انجام به کارمزد نیاز دارد؛ در شبکهی اتریوم، به این کارمزدها گس (Gas) میگویند.
در زمان شلوغی شبکه و بالا بودن حجم تراکنشها، گس هم افزایش پیدا میکند و هرچه مقدار گس تراکنشی بیشتر باشد، تراکنش زودتر تایید میشود. محدودهی گس قبل از ارسال تراکنش تعیین شده و بهعنوان دستورالعملی برای توقف و پایان یا ادامهی تراکنش در ماشین مجازی اتریوم در نظر گرفته میشود.
مزایای و معایب ماشین مجازی اتریوم
ماشین مجازی اتریوم امکان توسعهی برنامههای غیرمتمرکز را برای همهی افراد فراهم کرده و محدود به قشر خاصی نیست. توکنهای غیرقابل معاوضه یا همان NFTها از نمونههای بارز کاربرد EVM در شبکهی اتریوم هستند که درآمدهای قابلتوجهی برای خالقان خود به ارمغان آوردهاند.
در مقابل، یکی از ایرادهایی که میتوان دربارهی ماشین مجازی اتریوم مطرح کرد، کاملا غیرمتمرکز نبودن آن است. اکثر نودهای اتریوم روی سرورهای ابری متمرکز و خدمات مبتنی بر وب میزبانی میشوند و با از کار افتادن این سرورها، شبکه اتریوم نیز آسیب دیده یا از بین برود.
یکی دیگر از معایب شبکه اتریوم، الزام آشنایی با زبان برنامهنویسی سالیدیتی است، البته در حال حاضر رابطهای کاربری سازگارتر از سالیدیتی در دست توسعه هستند که ممکن در آیندهای نزدیک این ایراد را برطرف کنند.
علاوه بر دو مورد بالا، ماشین مجازی اتریوم برای پایان دادن به محاسبات به گسِ هر تراکنش متکی است و این کارمزد ممکن است در زمان شلوغی شبکه، به میزان زیادی افزایش پیدا کند. این امر میتواند باعث شود تا کاربران برای مدتی نتوانند از شبکه استفاده کنند و عملکرد برنامههای غیرمتمرکز تحتتاثیر قرار گیرد.
شبکههای سازگار با ماشین مجازی اتریوم
ماشین مجازی اتریوم با هر شبکهای که از پروتکل اتریوم پشتیبانی کند، سازگار است. بلاک چینهای سازگار با EVM کمک میکنند تا توسعهدهندگان بهجای شروع از پایه، از روی شبکه اتریوم کپی کرده و برنامههای غیرمتمرکز خود را توسعه دهند.
در حال حاضر، شبکههای اصلی اتریوم (Ethereum Mainnet)، تستنتهای رسمی (Ethereum Testnets) از جمله Ropsten، Rinkeby، Kovan و Göerli و شبکههای خصوصی مانند Quorum و Hyperledger Besu از پروتکل اتریوم پشتیبانی میکنند.
علاوهبراین، بسیاری از شبکههای دیگری که بر پایهی پروتکل اتریوم ساخته شدهاند نیز، مانند بایننس اسمارت چین، پالیگان، آوالانچ، ترون و کاردانو با ماشین مجازی اتریوم سازگار هستند. به طور کلی تمام شبکههای سازگار با ماشین مجازی اتریوم، کارمزد کمتر و سرعت بیشتری نسبت به اتریوم دارند.
گفتار پایانی
ماشینهای مجازی شبیهسازی از کامپیوتری واقعی هستند که در قالب نرمافزار روی سختافزار واقعی اجرا میشوند. ماشین مجازی اتریوم (EVM) بر شبکه اتریوم مبتنی است و نقش برقرارکنندهی ارتباط بین قراردادهای هوشمند و توسعهی نرمافزارها را در این شبکه برعهده دارد.
این ماشین مجازی هنوز در مراحل ابتدایی بهسر میبرد و انتظار داریم مانند مسیری که کامپیوترها از گذشته تا به امروز طی کردهاند، قابلیتهای EVM نیز در آینده افزایش یافته و سرعت و توانایی آن بیشتر شود.
سوالات متداول
ماشین مجازی اتریوم یا EVM نرمافزاری شبیهساز است که قراردادهای هوشمند را اجرا و وضعیت شبکهی اتریوم را لحظه به لحظه رصد میکند. این ماشین مجازی امکان تعامل قراردادهای هوشمند با یگدیکر و اجرای برنامههای کاربردی را فراهم میکند.
- ماشین مجازی اتریوم چه قابلیتهایی ارائه میدهد؟
عملکرد قطعی، ایزوله بودن و پایان پذیر بودن از قابلیتهای ماشین مجازی اتریوم یا EVM محسوب میشوند.
ممنون از مقاله خوبتون
یک سوال
منابع سخت افزاری ماشین مجازی اتریوم از کجا تامین می شود؟
سلام محمد عزیز
ممنون از توجه شما
اطلاعات دقیقی دراین مورد ندارم، ولی اگر اشتباه نکنم، منابع درواقع سرورهایی هستند که ماشین مجازی روی اونها اجرا شده. ولی خب بدیش اینه که متمرکز هستن و کمی آسیبپذیری شبکه رو بالا بردن.
چیزی شبیه به همین سرورهای مجازی که برای وبسایتها با سیستمعاملهای لینوکس یا ویندوز استفاده میشه، منتها برای اتریوم و با زبان سالیدیتی.
سلام ممنونم برنامه عالی وفوقعلاده ای است تشکر برای زحمت تمامی کارکنان
با سلام ، اتریم بیپ ۲۰ چیست؟ میشه در موردش مختصر توضیح بفرمایین. ممنون
سلام اسماعیل عزیز
درباره شبکه BEP20 مقالاتی در آکادمی وجود داره که میتونید این مقالات رو مطالعه کنید. لینکشون رو براتون میذارم:
https://bitpin.ir/academy/what-is-bep20/
https://bitpin.ir/academy/omni-erc20-bep20-bep2-trc20-difference/
به امید معاملات پرسود شما در بیت پین
ممنون از توضیحات مفید شما در باره اتریم 🌺
سلام
خواهش میکنم.
موفق و پر سود باشید.