در مقاله پیشین در زمینه ماشین مجازی اتریوم، به بررسی چیستی ماشین مجازی، تورینگ کامل بودن و چیستی ماشین مجازی اتریوم پرداختیم. بنیاد سور در این مقاله به عنوان بخش دوم و پایانی، به بررسی ویژگیهای EVM، مزایا و معایب ماشین مجازی اتریوم، شیوه ذخیرهسازی دادهها در ماشین مجازی، کسب درآمد از EVM و نحوه کار با ماشین مجازی اتریوم پرداخته است.
ویژگیهای ماشین مجازی اتریوم
سایر ماشینهای مجازی مانند بیتکوین بیشتر با تراکنشهای مالی ارزهای دیجیتال سر و کار دارند و هیچکدام به اندازه ماشین مجازی اتریوم پیشرفته نیستند. ماشین مجازی بیت کوین بر خلاف اتریوم، به یک دفتر کل توزیعشده متمرکز است و نمیتواند یک کامپیوتر جهانی باشد. برای درک بهتر تفاوتهای میان EVM و سایر VMها، درباره ویژگیهای مختلف EVM توضیح خواهیم داد.
ماشین حالات توزیعشده
اتریوم در تلاش است که چیزی بیشتر از یک دفتر کل توزیع شده باشد؛ وب سایت اصلی اتریوم به آدرس Ethereum.org این بلاکچین را به عنوان «Distributed State Machine» به معنی «ماشین حالات توزیع شده» معرفی کرده است. اتریوم علاوه بر دادهها، موجودی و اطلاعات حسابهای کاربری، حالات ماشین را هم نگهداری میکند.
حالات ماشین مجازی در هر بلوک باهم متفاوت است، زیرا انتقال دادههای ماشین در هر مجموعه از برنامهها با توجه به قوانین خاصی انجام میشود. ماشین مجازی اتریوم همان چیزی است که این تغییر حالات مبتنی بر قوانین را مشخص میکند.
ماشین مجازی اتریوم همچنین از طریق زبان برنامهنویسی سالیدیتی با قراردادهای هوشمند در تعامل است و در ذخیره شرایط قرارداد و اجرای آنها نقش دارد. اتریوم برای پشتیبانی از قراردادهای هوشمند و تبدیل شدن به یک ماشین حالات توزیعشده باید ویژگیهای مختلف دیگری هم داشته باشد که در ادامه آنها را نام میبریم.
ماشین مجازی غیرقابل تغییر
غیرقابل تغییر یعنی به ازای تمام ورودیهای یکسان، یک خروجی وجود دارد و اهمیتی ندارد که چند بار ماشین تورینگ دستورات را اجرا کرده باشد. غیرقابل تغییر بودن یکی از اساسیترین ویژگیهای مورد نیاز برای ماشین مجازی اتریوم است، زیرا اپلیکیشنهای غیرمتمرکز و پروژههای فعال بر بستر اتریوم ممکن است در هر زمانی تراکنشهایی با مبالغ زیاد را انجام دهند. ثبت و عدم تغییر تراکنشهای انجام شده اهمیت بسیاری دارد.
ماشین مجازی ایزوله
قراردادهای هوشمند باید در محیطی ایزوله اجرا شوند تا احتمال هک یا ایجاد باگ در آنها کاهش پیدا کند. در واقع زمانی که هرکدام از قراردادهای هوشمند در محیطی ایزوله اجرا میشوند، اگر یکی از آنها مورد حمله هک قرار بگیرد یا باگی داشته باشد، این مشکل سایر قراردادهای هوشمند را درگیر نخواهد کرد و پروتکل اصلی ماشین مجازی را تحت تأثیر قرار نمیدهد.
ماشین مجازی دارای پردازشهای پایانپذیر
اگر ماشین مجازی اتریوم یک ماشین تورینگ باشد، حداقل به صورت تئوری میتوانیم بگوییم که قراردادهای هوشمند موجود در EVM میتوانند تمام مسائل را حل کنند یا حداقل به صورت فرضی چنین قابلیتی را دارند. البته در حال حاضر هیچ راهکاری برای اطمینان از اینکه عملکردهای ماشین مجازی در بازه زمانی مشخصی به پایان میرسد، وجود ندارد. این موضوع نشان میدهد که در اکوسیستم باید مکانیزمی با مهلت مشخص برای ایجاد محدودیت وجود داشته باشد.
در شبکه اتریوم از گس (Gas) برای کمک کردن به ترافیک شبکه استفاده میشود. گس همچنین بخشی از مکانیزم پاداش در شبکه است؛ به وسیله هزینه گس (کارمزد تراکنشها) تعیین میشود که کدام تراکنشها باید در اولویت قرار بگیرند یا در لحظه اجرا شوند. محدودیت گس چیزی است که از ابتدای شروع کار تعیین میشود و زمانی که به پایان برسد، عملیات و پردازشهای ماشین مجازی متوقف میشود.
مزایا و معایب ماشین مجازی اتریوم
مزیتهای EVM عبارت است از:
- همه توسعهدهندگان بدون محدودیت در منابع میتوانند Dappهایشان را توسعه دهند. این موضوع بستر خلاقیت را برای افرادی که بودجه کافی برای راهاندازی پروژه خود ندارند، فراهم میکند.
- بهرهمندی از پتانسیل کامل قراردادهای هوشمند مانند راهاندازی توکنهای NFT.
- کمک به توسعه داده به صورت دموکراتیک.
معایب ماشین مجازی اتریوم عبارت است از:
- شبکه فعال در ماشین مجازی اتریوم کاملا غیرمتمرکز نیست و نودها برای دسترسی به شبکه به واسطههایی مثل شرکتهای ارائه دهنده اینترنت نیاز دارند. بنابراین اگر روزی این شرکتها اتریوم را دوست نداشته باشند، میتوانند ارتباط بسیاری از نودها را با آن قطع کنند.
- ماشینهای مجازی تنها برای افراد حرفهای و کسانی که دانش کدنویسی دارند، کاربردی هستند. البته توسعهدهندگان در تلاشاند میانافزارهایی طراحی کنند که زبانی نزدیک به زبان انسان داشته باشند تا تعامل با آنها سادهتر شود.
- هنگام افزایش ترافیک شبکه، هزینه گس به شدت افزایش پیدا میکند. تراکنشهای بزرگ در این زمینه با مشکل مواجه نمیشوند، اما زمانی که ترافیک زیاد میشود، احتمالا تراکنشهای کوچک در اولویتهای آخر قرار میگیرند، در نتیجه باید زمان زیادی منتظر بمانند. این موضوع برای Dappهایی که در طول روز تعداد زیادی تراکنش کوچک انجام میدهند، مشکلات بسیاری به وجود میآورد.
دادهها چگونه در ماشین مجازی ذخیره میشوند
دادهها در شبکه اتریوم با ساختار درختی مدیریت میشوند؛ یعنی دادههایی مانند موجودی حسابها مستقیما روی بلوکهای بلاکچین قرار نمیگیرند. بلاکها تنها هشهای نود اصلی تراکنش، حالات و رسیدها را ذخیره میکنند.
در بلاکچین اتریوم دو نوع داده وجود دارد:
- دادههای دائمی: زمانی که یک تراکنش تایید میشود، این دسته از دادهها به همراه بلوک روی بلاکچین ذخیره میشوند و غیرقابل تغییر هستند.
- دادههای زودگذر: موجودی حساب از جمله این دادههاست و در یک آدرس در حالت آزمایشی ذخیره میشود. زمانی که تراکنش جدیدی توسط آن آدرس انجام شود، این داده تغییر خواهد کرد.
هرکدام از انواع دادههای بلاکچین به صورت مجزا ذخیره میشوند. عملکرد اتریوم در زمینه ذخیره دادهها شبیه به سیستمهای بانکی سنتی است. در بانکهای سنتی مردم حسابهایی دارند و زمانی که میخواهند از این حساب برداشت کنند، سیستمهای بانکی بررسی میکنند که آیا مبلغ مورد نیاز فرد در حسابش موجود است یا خیر، بعد از آن تراکنش را تایید میکند. در بلاکچین اتریوم هم نودهای اعتبارسنج چنین کاری را انجام میدهند و در صورتی که شرایط فراهم باشد، دستور تشکیل بلاک و ذخیره دادهها را میدهند.
اقتصاد ماشین مجازی اتریوم
EVM یک مدل اقتصادی ایجاد کرده است. با استفاده از پاداشهای گس، یک ماشین تورینگ کامل همتا به همتا و بی واسطه توسعه داده میشود و میتواند از منابع موجود در سراسر جهان برای توسعه برنامههایش استفاده کند. نتیجه این موضوع رسیدن به چشمانداز کامپیوتر جهانی برای اتریوم است.
زمانی که نودها به شبکه اتریوم میپیوندند، میتوانند دستورات خود را در بستری که در آن نیازی به اعتماد به شخص ثالث ندارند، اجرا کنند. همچنین قراردادهای هوشمند غیرقابل تغییر به این نودها تضمین میدهند که در ازای انجام هر دستور، پاداش مورد نظرشان را دریافت خواهند کرد. این روش به محافظت از سیستم اولویتبندی تراکنشها کمک میکند.
برخی از نودهای اتریوم به عنوان اعتبارسنج عمل میکنند، وظیفه این نودها بررسی اعتبار دادههای مربوط به تراکنشهای مختلف است. این نودها همچنین باید تشخیص دهند که آیا فرستنده هزینه کافی برای اجرای قرارداد هوشمند را در والت خود دارد یا خیر. وظیفه دیگر نودهای اعتبارسنج بررسی عملکرد صحیح ماشین مجازی است.
جمعبندی
ماشین مجازی اتریوم یکی از مباحث تخصصی در تکنولوژی بلاکچین است و تنها برنامهنویسان میتوانند به صورت تخصصی عملکرد آن را مورد بررسی قرار بدهند. ما در این دو مقاله سعی کردیم به زبان ساده توضیح دهیم EVM چیست و اتریوم چگونه با استفاده از آن میتواند به یک کامپیوتر غیرمتمرکز جهانی تبدیل شود.
توسعهدهندگان میتوانند برای پروژههای مختلف از ماشین مجازی بلاکچین اتریوم کمک بگیرند، روی آن قراردادهای هوشند با شرایط گوناگون ایجاد کنند و Dappهایی با ایدههای منحصر به فرد توسعه دهند. به مرور زمان ماشینهای مجازی بیشتر توسعه پیدا میکنند و احتمالا زمانی میرسد که کار با آنها بسیار ساده خواهد بود و هرکسی بدون دانش کدنویسی میتواند با آنها کار کند