ماشین مجازی اتریوم، از قراردادهای هوشمند تا برنامههای غیرمتمرکز
اتریوم برای دستیابی به پذیرش و تمرکززدایی کامل به مکانیسمی به عنوان ماشین مجازی اتریوم نیاز دارد. این ماشین مجازی به تقویت بلاکچین و قراردادهای هوشمند در شبکه اتریوم کمک میکند و یکی از مهمترین بخشهای اکوسیستم اتریوم بهشمار میرود که کمتر کسی با آن آشنا است. در این مقاله، قصد داریم به طور کامل با این ماشین آشنا شویم و کاربردهای آن را نیز بدانیم.
ماشین مجازی اتریوم (Etherum Vitrual Machine) چیست؟
ماشین مجازی اتریوم یا (Etherum Vitrual Machine) که به اختصار (EVM) خوانده میشود، نرمافزاری است که قوانین محاسبه وضعیت شبکه اتریوم را از بلوکی به بلوک دیگر در بلاکچین تنظیم میکند. این ماشین در واقع با فراهم کردن زمان و فضای کافی برای حل هر پروژه محاسباتی، یک محیط اجرا برای قراردادهای هوشمند و برنامه های غیرمتمرکز (DApps) را به وجود میآورد.
EVM به قراردهای هوشمند کمک میکند تا با دسترسی بلاکچین، انتقال ارز دیجیتال این پلتفرم یعنی ETH و سایر تراکنشها را انجام دهند. این محیط همچنین مسئول پردازش و اجرای کدهای نوشته شده در زبان برنامهنویسی بومی اتریوم (Solidity) یا سایر زبانهای سازگار مانند پایتون (Python) است. به کمک این نرمافزار بسیاری از برنامهنویسان و توسعهدهندگان میتوانند از زبان سالیدیتی برای پیادهسازی قراردادهای هوشمند و زبان پایتون برای اجرای برنامهها در ماشین مجازی استفاده کنند.
هدف ماشین مجازی اتریوم (EVM)
ماشین مجازی اتریوم (EVM) یک ماشین قابل برنامهریزی کامل تورینگ است که میتواند اسکریپتها را برای تولید نتایج دلخواه اجرا کند. این کامپیوتر با هدف تبدیل شدن به یک کامپیوتر جهانی ساخته شده است و قدرت فوقالعادهای دارد. در واقع، EVM را میتوانیم کامپیوتری ببینیم که دادهها را مانند بیت کوین روی بلاکچین ذخیره و کدها را در قراردادهای هوشمند در شبکه اتریوم اجرا میکند.
این نرمافزار در واقع به گونهای ساخته شده است که بتواند هر نوع قرارداد رمزنگاری را که میتواند بر روی بلاکچین اتریوم ساخته شود، اجرا کند. EVM این کار را با استفاده از زبان برنامهنویسی Solidity انجام میدهد. هدف از نوشتن کد در شبکه اتریوم، ایجاد قراردادها و برنامههای هوشمند است که در صورت برآورده شدن شرایط خاص، به طور خودکار موارد را اجرا میکنند. اگر شرایط یا شرطی برآورده نشود، سیستم میتواند آن را در یک تابع “EXIT” نیز اجرا کند. به عنوان مثال، اگر یک حساب کاربری در شبکه اتریوم هک شده باشد، هکر نمی تواند از سیستم پول بدزدد، زیرا بودجه یا اختیار لازم برای انجام این کار را ندارد.
نحوه کار کرد ماشین مجازی اتریوم
ماشین مجازی اتریوم (EVM) برنامهای است که اسکریپتهایی را اجرا میکند که برای اجرای عملیات خاصی در بلاکچین اتریوم استفاده میشوند. ماشین مجازی اتریوم فرآیند ایجاد توکن های جدید در بلاکچین اتریوم را آسان میکند. در این ماشین، اسکریپت به معنای مجموعهای از دستورالعملها یا الگوریتمی است که به رایانه میگوید برای اینکه چیزی به درستی کار کند، باید چه کاری انجام دهد. بدین ترتیب، EVM برای کار کردن، نیازمند آن است که شخصی به هر گره شبکه دسترسی داشته باشد تا بتواند دستورات مورد نظر را اجرا کند و توکنهای جدید را بدون هیچ مشکلی در بلاکچین ایجاد کند.
در اتریوم قراردادهای هوشمند دارای کدهای کامپیوتری هستند که تبادل پول و اطلاعات را آسان میکنند. این قراردادها توسط خالق قرارداد هوشمند از پیش تعریف شدهاند تا اطمینان حاصل شود که یک نتیجه مشخص بر اساس آنچه اتفاق میافتد یا نمیافتد رخ دهد. حال ماشین مجازی اتریوم به عنوان بستری، محیط کامل تورینگ را برای اجرای اسکریپتها و قراردادهای هوشمند فراهم میکند. این بدان معناست که هر چیزی که با کامپیوتر قابل پیادهسازی باشد میتواند روی EVM اجرا شود.
در اکوسیستم اتریوم، EVM با ایجاد بستری برای برنامههای غیرمتمرکز (DApps) که در بالای آن ساخته میشوند، نقشی حیاتی ایفا میکند. ماشین مجازی اتریوم همچنین تضمین میکند که تمام تراکنشها و قراردادهای هوشمندی که در بلاک چین اتریوم انجام میشود، به شکلی صحیح و مورد انتظار مطابق کد قرارداد هوشمند اجرا میشوند.
انواع ماشین مجازی
ماشینهای مجازی، به طور کلی به دو دسته تقسیم میشوند که هر کدام قابلیتهای خاصی را فراهم میکنند:
- ماشین مجازی سیستمی (System Virtual Machine): این نوع از ماشینهای مجازی یک سیستم پلفترم کامل را به ما میدهند و سیستم عامل مجازی را به صورت کامل اجرا میکنند. درست مانند جعبه مجازی، ماشین مجازی سیستم محیطی را برای نصب کامل یک سیستم عامل فراهم میکند.
- ماشین مجازی پردازشی (Process Virtual Machine): ماشینهای مجازی پردازشی، بر خلاف ماشین مجازی سیستمی، امکان نصب کامل سیستم عامل مجازی را در اختیار ما قرار نمیدهند. بلکه در حین استفاده از برنامه محیط مجازی آن سیستم عامل را ایجاد میکند و به محض خروج از آن برنامه، این محیط از بین میرود.
قرارداد هوشمند (Smart Contract) چیست؟
قرارداد هوشمند یک برنامه کامپیوتری خودکار است که بر روی بلاکچین اجرا میشود. این برنامه، شرایط و مفاد یک قرارداد را به صورت کد نوشته شده در بلاک چین ذخیره میکند و به طور خودکار اجرا میشود. تراکنشهایی که توسط قراردادهای هوشمند اجرا میشوند، قابل پیگیری و برگشتناپذیر هستند. به کمک قرارداد هوشمند، معاملات و توافقات قابل اعتماد بین طرفهای ناهمگون و ناشناس بدون نیاز به یک مرجع مرکزی، سیستم قانونی یا مکانیزم اجرایی خارجی انجام میشود.
قراردادهای هوشمند در اکوسیستم اتریوم نقش کلیدی ایفا میکنند. این برنامهها به توسعهدهندگان اجازه میدهند تا طیف وسیعی از برنامههای غیرمتمرکز (dApps)، را ایجاد کنند که امن، مقیاسپذیر و سازگار هستند. در اتریوم، این قراردادها توسط ماشین مجازی اتریوم اجرا میشوند و کاربردهای بسیاری در پلتفرم دارند.
تورینگ کامل چیست؟
ماشین تورینگ یک مدل نظری از محاسبات است که میتواند با شبیهسازی کردن هر الگوریتمی آن را به معیاری برای جهانی بودن محاسبات تبدیل کند. مفهوم کامل بودن تورینگ ریشه در کار پیشگامانه آلن تورینگ (Alan Turing)، ریاضی دان و منطقدان بریتانیایی دارد. در سال ۱۹۳۶، تورینگ ایده یک ماشین محاسباتی نظری را ارائه کرد که بعدا به عنوان ماشین تورینگ شناخته شد. برای محاسبات جهانی تمام توابع ضروری مورد نیاز در یک ماشین کامل تورینگ وجود دارد. این ماشین همچنین قادر به مدیریت و تغییر طیف گستردهای از انواع دادهها از جمله لیستها، کلمات و اعداد است.
کامل بودن تورینگ یک ویژگی مطلوب در زمینه فناوری بلاکچین بهشمار میرود زیرا به پلتفرم بلاکچین اجازه میدهد تا انواع برنامهها و قراردادهای هوشمند را مدیریت کند. پلتفرم فناوری بلاکچین اتریوم نمونه بارز کامل بودن تورینگ است.
در پلتفرم اتریوم EVM، به عنوان محیطی برای اجرای قراردادهای هوشمند، بخش مهمی از تکمیل تورینگ کامل در اتریوم است که به برنامهنویسان توانایی ایجاد و اجرای DApps با استفاده از پلتفرمی را که از زبان برنامهنویسی بومی اتریوم یعنی Solidity پشتیبانی میکند را میدهد. این زبان به صورتی طراحی شده است که تورینگ کامل باشد و امکان بیان هر تابع قابل محاسبه را فراهم کند.
کاربرد ماشین مجازی اتریوم (Ethereum Virtual Machine)
EVM مانند یک کامپیوتر بزرگ غیرمتمرکز عمل میکند که وظایف مختلفی را در شبکه اتریوم انجام میدهد. برخی از کاربردهای ماشین مجازی اتریوم عبارتند از:
-
اجرای قراردادهای هوشمند
EVM محیطی را برای اجرای قراردادهای هوشمند اتریوم فراهم میکند. EVM تضمین میکند که قراردادهای هوشمند به درستی اجرا شوند و هیچ کس نتواند آنها را دستکاری کند.
-
توسعه برنامههای غیرمتمرکز (dApps)
EVM به توسعهدهندگان اجازه میدهد تا dApps را بر روی بلاکچین اتریوم ایجاد کنند. EVM به dApps این امکان را میدهد تا به دادهها و عملکردهای بلاک چین اتریوم دسترسی داشته باشند.
-
ایجاد توکن های ERC-20
EVM برای ایجاد توکنهای ERC-20، که نوعی توکن قابل تعویض در بلاک چین اتریوم هستند نیز استفاده میشود. توکنهای ERC-20 برای ایجاد ارزهای دیجیتال جدید، سهام شرکتها و سایر داراییهای دیجیتال استفاده میشوند.
-
ایجاد سیستمهای مالی غیرمتمرکز (DeFi)
EVM برای ایجاد دیفای DeFi، که سیستمهای مالی سنتی را با استفاده از بلاک چین اتریوم بازسازی میکند نیز کاربرد دارد. دیفای به کاربران اجازه میدهد تا بدون نیاز به واسطههای سنتی به خدمات مالی مانند وام، سپرده و معاملات دسترسی داشته باشند.
-
ایجاد سازمانهای خودمختار غیرمتمرکز (DAO)
EVM برای ایجاد DAO، که سازمانهایی هستند که به طور غیرمتمرکز توسط قراردادهای هوشمند اداره میشوند، استفاده میشود. دائوها به کاربران اجازه میدهند تا بدون نیاز به یک ساختار سلسله مراتبی سنتی در مورد نحوه اداره یک سازمان تصمیم بگیرند.
ويژگیهای ماشین مجازی اتریوم (ETH)
پروتکل اتریوم نه تنها یک دفتر کل توزیع شده است، بلکه رویدادهای مختلف و پیچیده بسیاری را نیز میزبانی میکند. از این رو ماشین مجازی اتریوم باید یک سیستم قدرتمند باشد که به این اکوسیسم امکان دهد که اطلاعات و دادههای تمام فعالیتهای کاربران را در خود ثبت و ضبط کند. EVM همچنین یک ماشین حالت توزیع شده (DSM) است. به این معنی که وضعیت فعلی EVM در تمام گرههای شبکه اتریوم یکسان است. این امر تضمین میکند که همه گرهها در مورد وضعیت فعلی شبکه به توافق رسیدهاند و از تقلب و دستکاری در شبکه جلوگیری میشود. برخی از ویژگیهای ماشین مجازی اتریوم عبارتند از:
1) ماشین مجازی اتریوم عملکرد قطعی دارد.
EVM کدها را به طور قطعی اجرا میکند. این یعنی ماشین مجازی اتریوم فارغ از تعداد اجرای هر کد، برای هر ورود یک خروجی یا نتیجه یکسان دارد. بنابراین، مهم نیست قرارداد هوشمند کجا اجرا میشود یا چه کسی آن را اجرا می کند، خروجی همیشه برای یک ورودی خاص یکسان خواهد بود. این قابلیت برای برنامههای غیرمتمرکزی که مسئول مدیریت تراکنشهای مالی هستند بسیار مهم است و تضمین میکند قراردادهای هوشمند قابل اعتماد و قابل پیشبینی هستند.
2) ماشین مجازی اتریوم ایزوله است.
EVM به گونهای طراحی شده است که جدا از بقیه سیستم کامپیوتری کار کند. در ماشین مجازی اتریوم، هر قرارداد هوشمند در یک محیط ایزوله مشابه Docker قرار میگیرد . بدین ترتیب این کار تضمین میکند قراردادهای هوشمند در یک محیط امن اجرا و ثبات شبکه اتریوم نیز حفظ شود.
3) ماشین مجازی اتریوم پایان پذیر است.
EVM پایانپذیر است. به این معنی که هر اجرای قرارداد هوشمند در نهایت به پایان میرسد. این امر از مشکلاتی مانند حلقههای بینهایت و نشت حافظه جلوگیری میکند.
ارتباط گس (Gas) با ماشین مجازی اتریوم
ماشین مجازی اتریوم یک تورینگ کامل است و قراردادهای هوشمند هر محاسبهای، هرچند پیچیده، را میتوانند در آن حل کنند. قابلیت تورینگ کامل بودن اتریوم میتواند مزایای زیادی را به همراه داشته باشد اما با این حال، ممکن است چالشهایی را نیز به همراه داشته باشد. برای نمونه، هیچ تضمینی وجود ندارد که محاسبات در زمان تعیین شده به اتمام برسد یا ممکن است حلقههای بینهایت در ماشین به وجود بیاید. از این رو، EVM از هزینهای به نام گس (Gass) برای حل مشکلات و برای اطمینان از تخصیص کارآمد و منصفانه منابع، استفاده میکند.
گس نشاندهنده هزینه منابع محاسباتی مورد نیاز برای اجرای یک معامله یا قرارداد هوشمند است. هر عملیات EVM مقدار مشخصی گس یا هزینه مصرف میکند و کاربران باید هنگام ارسال تراکنش ها هزینه گس را پرداخت کنند. سیستم گس دو هدف کلی دارد:
- جلوگیری از سواستفاده از شبکه از طریق پرهزینه کردن مصرف منابع
- تشویق استخراجکنندگان و گرهها برای پردازش تراکنشها با ارائه کارمزد تراکنش
هزینه گس بسته به عوامل مختلفی مانند شلوغی شبکه، حجم و پیچیدگی تراکنش و .. متفاوت است. اما کاربران میتوانند با پرداخت هزینه گس بیشتر، تراکنش خود را در الویت قرار دهند.
نحوه ذخیره سازی داده در شبکه اتریوم
در بلاکچین اتریوم دادهها به صورت غیرمتمرکز در چندین گره (Node) که در شبکه مشارکت دارند، ذخیره میشود. هر گره یک کپی از کل بلاکچین، از جمله تمام تراکنش ها و قراردادهای هوشمند را حفظ میکند. دادهها همچنین در این پلتفرم به دو صورت ذخیره میشوند:
دادههای موقتی
در اتریوم، قراردادهای هوشمند وظیفه ذخیرهسازی دادههای موقت را بر عهده دارند. قراردادهای هوشمند، دادههای موقت را در حافظههای ذخیرهسازی و ساختارهای دادهای قرار میدهند. این دادهها ممکن است با هر بار اجرای قراردادهای هوشمند تغییر کنند و در نهایت در بلوکهای جدید شبکه ذخیره میشوند. اما این دادهها برای مدت طولانیتری در شبکه محفوظ نمیمانند و با تغییر وضعیت قراردادها ممکن است تغییر کنند یا حذف شوند.
دادههای دائمی
اتریوم از یک ساختار داده متمرکز به نام درخت میروکلس (Merkle Patricia Trie) برای ذخیره دادههای دائمی استفاده میکند. این درخت، مانند یک ساختار درختی است که هر گره آن شامل یک هش (hash) است که با استفاده از توابع هش، بر اساس داده مربوطه محاسبه میشود. با استفاده از این ساختار، دادهها به صورت قابل اثباتی و دائمی ذخیره میشوند و هر تغییر در دادهها ممکن است تغییرات قابل مشاهدهای در درخت میروکلس ایجاد کند.
مزایای ماشین مجازی اتریوم
به کمک ماشین مجازی اتریوم همه افراد میتوانند برنامههای غیرمتمرکز را توسعه دهند، NFT خرید و فروش کنند و در فضایی امن و هوشمند به معامله بپردازند. برخی از مزایای ماشین مجازی اتریوم عبارت است از:
- اجرای قراردادهای هوشمند پیچیده: قراردادهای هوشمند پیچیده در EVM بدون نگران درباره نحوه تعامل آنها با یکدیگر اجرا میشوند. این ماشین حتی امکان نوشتن یک قرارداد و اجرای آن در چندین پلتفرم را ارائه میدهد.
- پردازش قطعی: قراردادهای هوشمند نوشته شده بر روی EVM در هر زمان به تمام وضعیتهای اتریوم دسترسی دارند و این امکان را فراهم میکنند که پردازش به روشی قطعی انجام شود. پردازش و اجرای قطعی کمک میکند که همه شرکتکنندگان در شبکه در مورد وضعیت بلاکچین توافق داشته باشند و امنیت حفظ شود.
- اجماع توزیع شده: یکی از کاربردهای بالقوه اتریوم اجازه دادن به اجماع توزیع شده است. در اجماع توزیع شده، هر توسعهدهنده برنامه مشابهی را میتواند از کامپیوتر شخصی خود اجرا کند.
- مقاوم در برابر شکست: EVM یک فرآیند پیچیده است زیرا شبکه باید بتواند در هر زمان به یک اجماع برسد. به این ترتیب، سیستم در برابر خرابی گرههای جداگانه قویتر می شود.
معایب ماشین مجازی اتریوم
اگرچه ماشین مجازی اتریوم مزایای فراوانی را برای شبکه به دنبال دارد، اما بدون مشکل هم نیست. اولین و مهمترین مشکل EVM کامل غیرمتمرکز نبودن آن است. اغلب نودهای شبکه اتریوم بر روی شبکههای ابری متمرکز و خدمات مبتنی بر وب میزبانی میشوند؛ این یعنی در صورت مشکل در سرورها کل شبکه میتواند با مشکل روبهرو شود. برخی دیگر از معایب ماشین مجازی اتریوم عبارت است از:
- هزینه بالای ذخیرهسازی دادهها: در اتریوم ذخیرهسازی دادهها روی بلاکچین نیازمند هزینههای گران است.
- هزینه بالای گس: در اتریوم، همه تراکنشها برای اجرا نیاز به کارمزد یا گس دارند. قیمت گس به صورت لحظهای و با توجه به وضعیت شبکه تعیین میشود و برخی اوقات بسیار گران است.
- نیاز به دانش فنی تخصصی: نوشتن قراردادهای هوشمند و استفاده از EVM نیاز به تخصص فنی دارد. افرادی که علاقمند به شرکت در قراردادهای هوشمند اتریوم هستند باید زبان برنامهنویسی سالیدیتی را بدانند.
اقتصاد اکوسیستم ماشین مجازی اتریوم (EVM) بر اساس چیست؟
اقتصاد اکوسیستم ماشین مجازی اتریوم (EVM) بر اساس مفهوم گس و “ETH” (واحد ارزی اتریوم) که در شبکه اتریوم استفاده میشود، شکل میگیرد. واحد گس در EVM برای اندازهگیری میزان مصرف منابع شبکه مانند زمان پردازش و حافظه استفاده میشود و هر عملیات یا دستور در EVM نیازمند مصرف گس است.
مقدار گس مصرفی برای هر عملیات بر اساس پیچیدگی آن و منابع مورد نیاز تعیین میشود و کاربران باید هزینه گاز را برای اجرای عملیاتهای خود پرداخت کنند. سپس مقدار گس مصرفی برای هر عملیات با توجه به نرخ تعیین شده توسط شبکه واحد ارزی ETH به گاز تبدیل میشود.
ETH یا اتر نیز بعنوان واحد ارزی اصلی در اتریوم استفاده میشود. در EVM، هنگامی که کاربران عملیاتی را انجام میدهند، باید برای پرداخت هزینه گاز از ETH استفاده کنند. از آنجا که گاز واحدی جداگانه است، مقدار ETH مورد نیاز برای پرداخت هزینههای گاز به توجه به نرخ تعیین شده برای گاز تبدیل میشود.
در کل، اقتصاد EVM براساس پرداخت هزینههای گاز با استفاده از ETH برای اجرای عملیاتها و استفاده منابع شبکه شکل میگیرد. مقدار هزینه گاز و نرخ تعیین شده برای آن توسط شبکه و قوانین مربوطه تعیین میشود، و این هزینهها به عنوان پاداش برای ماینرها که منابع شبکه را فراهم میکنند، پرداخت میشود.
نکته: خرید و فروش اتریوم از طریق صرافی ارز دیجیتال ایرانیکارت با بهترین قیمت و کارمزد امکان پذیر است.
شبکههای سازگار با ماشین مجازی اتریوم کداماند؟
هر شبکهای که از بلاکچین اتریوم پشتیبانی کند، با ماشین مجازی اتریوم سازگار است. به کمک بلاکچینهای سازگار با EVM توسعهدهندگان میتوانند بهجای شروع از پایه، از روی شبکه اتریوم کپی کنند و برنامههای غیرمتمرکز خود را توسعه دهند. بدین ترتیب، شبکههای سازگار با ماشین مجازی اتریوم عبارتند از:
- شبکههای اصلی اتریوم (Ethereum Mainnet)
- تستنتهای رسمی (Ethereum Testnets) از جمله Ropsten، Rinkeby، Kovan و Göerli
- شبکههای خصوصی مانند Quorum و Hyperledger Besu
همچنین سایر شبکههای بلاکچینی مانند کاردانو، اولانچ، بایننس اسمارت چین، پالیگان و ترون نیز که بر پایه اتریوم ساخته شدهاند نیز با این ماشین سازگارند. خوب است بدانید تمامی شبکههای سازگار با EVM کارمزد کمتر و سرعت پردازش شبکه بیشتری دارند و شما میتوانید تراکنشهای ارزانتری داشته باشید.
آینده ماشین مجازی اتریوم چگونه خواهد بود؟
EVM نقش کلیدی در بلاکچین اتریوم ایفا میکند و آینده آن به طور جدایی ناپذیری با آینده اتریوم مرتبط است. به طور کلی شبکه اتریوم در طی چند سال اخیر با مشکلات جدی مانند مقیاسپذیری و هزینههای بالای شبکه روبهرو بوده است که باعث شده بسیاری از کاربران بلاکچینهای ارزانتر را به آن ترجیح دهند. اما اتریوم نیز با راهاندازی لایه دوم خود توانسته این مشکلا را تا حدی برطرف کند و میتواند با استفاده از شاردینگ میتواند به طور قابل توجهی مقیاسپذیری EVM را افزایش دهد.
اتریوم همچنین یکی از بهترین تیمهای توسعهدهنده در بازار ارزهای دیجیتال را دارد و EVM نیز دائما در حال ارتقا و بهبود است تا در برابر حملات سایبری امنتر شود. علاوه بر این، ادغام با فناوریهای نوظهور مانند مالی غیرمتمرکز (DeFi)، توکنهای غیرقابل تعویض (NFT) و سازمانهای مستقل غیرمتمرکز (DAO) احتمالاً به اکوسیستم قویتر و همهکارهتر برای EVM کمک میکند.
ماشین مجازی، قلب تپنده اتریوم
نرم افزار EVM وضعیت بلاکچین را حفظ میکند و امکانات مختلف و مهمی مانند قراردادهای هوشمند و برنامههای غیرمتمرکز را به اجرا در میآورد. ماشین مجازی اتریوم را میتوان مهمترین بخش اکوسیستم اتریوم دانست که بدون آن این پروژه نیز ارزش چندانی ندارد. این ماشین منحصر به فرد و خاص، آنقدر توانمند است که بسیاری از شبکهها در تلاش برای سازگاری و بهرهمندی از امکانات آن هستند.