اگر اخیرا وارد فضای بلاک چین شدهاید، ممکن است با عبارت ماشین مجازی اتریوم (Ethereum Virtual Machine) یا به اختصار EVM برخورد کرده باشید. ممکن است این سوال برایتان پیش بیاید که EVM چیست و چه کاربردهایی دارد؟ خالقان اتریوم از روز اول انتشار پروتکل خود همه چیز را به صورت واضح در اینباره توضیح دادهاند؛ آنها قصد داشتند به یک «کامپیوتر جهانی» یا یک «اینترنت کامپیوتر» تبدیل شوند. اما چگونه میتوان به چنین اهدافی جامه عمل پوشاند؟ بخشی از پاسخ این سوال در بطن مفهوم EVM نهفته است. پیش از اینکه به سراغ مطالعه مفهوم ماشین مجازی اتریوم برویم، لازم است با مفاهیمی همچون ماشینهای مجازی، سیستمهای تورینگ کامل، قراردادهای هوشمند، کارمزد گس و نحوه ذخیرهسازی اطلاعات در شبکه اتریوم آشنا شویم. بنابراین در این مقاله مختصری درباره این مفاهیم توضیح میدهیم و بعد به سراغ این موضوع میرویم که ماشین مجازی اتریوم چیست و چه کاربردهایی در دنیای دیفای دارد. با میهن بلاکچین همراه باشید.
ماشین مجازی چیست؟
درک صحیح از مفهوم EVM برای ورود کامل به اکوسیستم اتریوم، از اهمیت بالایی برخوردار است. در ابتدا، به یادگیری مفهوم ماشین مجازی میپردازیم. ماشینهای مجازی در واقع ماشینهایی هستند که سطح بالاتری از دریافت مفهوم را در مقایسه با سیستم عاملهای رایج دارند. ماشینهای مجازی یا VMها به صورت مبتنی بر سیستمهای عامل ساخته شدهاند، تا عملکرد مشابهی نسبت به یک ماشین محاسباتی فیزیکی داشته باشند. به عبارت دیگر Virtual Machineها به صورت تقریبی، قدرت محاسباتی ماشینهای فیزیکی را با استفاده از معماری مجازی شبیهسازی میکنند. این ماشینها در بسیاری از سیستم عاملها و سخت افزارهای گوناگون قابل اجرا هستند و همین امر آنها را به یک موتور کامل متناسب برای اکوسیستم غیرمتمرکز تبدیل میکند.
ما میتوانیم به واسطه یک ماشین مجازی، از منابع مشارکتکنندگان درون شبکه استفاده کنیم و این موضوع، فارغ از موقعیت مکانی یا جغرافیایی آنهاست و بهرهبرداری ما در راستای ساخت، پردازش و اجرای کاری که قصد پیادهسازی آن را داریم، شکل خواهد گرفت. از این نقطه نظر، ماشین مجازی اتریوم عملکردی شبیه به یک پردازنده جهانی یا کامپیوتری را دارد که قدرت محاسباتی کلی خود را در اختیار توسعهدهندگان قرار میدهد. توسعهدهندگان نیز در مقابل، از این منبع برای ساخت قراردادهای هوشمند و برنامههای غیرمتمرکز (DAppها) استفاده میکنند.
دسترسی به یک VM توسط نودهای Ethereum، از سراسر دنیا امکانپذیر است. در اختیار قرار دادن قدرت محاسباتی به شبکه، به صورت داوطلبانه بوده و نظارت روی این فرآیند، به واسطه عوامل انگیزشی مختلف صورت میگیرد.
یک ماشین مجازی، کامپیوتری است که روی بلاکچین اجرا میشود و به چندین اسمارت کانترکت اجازه میدهد که با یکدیگر تعامل داشته باشند. به بیانی ساده، قرارداد هوشمند یک توافقنامه است که توسط کدها نوشته شده و زبان برنامهنویسی آن نیز مطابق شبکه این قرارداد است. برای این که بتوانیم Smart Contractها را روی بلاکچینهای مختلف اجرا کنیم، ماشینهای مجازی باید قراردادهایی که با یک زبان برنامهنویسی واحد نوشته شدهاند را اجرا کنند.
فرض کنید که یک توسعهدهنده Dapp هستید و یک برنامه روی یک بلاک چین عمومی راهاندازی کردهاید و اکنون میخواهید Dapp خود را به دیگر شبکهها نیز گسترش دهید تا فرصتهای بیشتری برای جذب کاربران بیابید؛ اینجاست که ماشینهای مجازی وارد میشوند. VMها به توسعهدهندگان کمک میکنند تا بهسرعت برنامههای غیرمتمرکز خود را روی شبکههای مختلف توسعه دهند.
تورینگ کامل چیست؟
هنگام پاسخ دادن به سوال ماشین مجازی اتریوم چیست، با عبارتی تحت عنوان تورینگ کامل (Turing Complete) مواجه میشویم. ماشین مجازی اتریوم نیز یک تورینگ کامل است.
تورینگ کامل به ماشینی اشاره دارد که با داشتن زمان و حافظه کافی همراه با دستورالعملهای لازم، میتواند هر مشکل محاسباتی را (صرف نظر از اینکه چقدر پیچیده باشد) حل کند. حتی ماشینحسابهای مهندسی که قابلیت برنامهریزی دارند نیز نوعی ماشین تورینگ محسوب میشوند.
فرض کنید برنامهای وجود دارد که ۱۰ عدد را بر میدارد و آنها را با هم جمع میکند. یک ماشین تورینگ کامل بهراحتی میتواند این برنامه را اجرا کند؛ اما فرض کنید که به هر دلیلی، این ماشین نتواند برنامه را اجرا کند یا بهصورت چرخه یا Loop (یعنی بهطور مداوم) محاسبات را انجام دهد. به این ماشینها تورینگ ناقص (Turing Incomplete) میگویند. زبانهای برنامهنویسی نیز نوعی سیستم تورینگ هستند و بیشتر زبانهای مدرن مثل جاوا، جاوا اسکریپت، Perl، پایتون، سالیدیتی و غیره تورینگ کامل هستند؛ زیرا میتوان با آنها برنامههایی نوشت که محاسبات مختلفی را انجام دهند. حتی این سیستمها میتوانند دادهها را در حافظه خود ذخیره کنند و درباره نحوه محاسبه تصمیم بگیرند.
طرح کلی این مفهوم توسط دانشمند کامپیوتری به نام آلن تورینگ (Alan Turing) ارائه شد. او ایدههایی حول محور شیوه تفکر و عملکرد یک کامپیوتر فرضی یا “ماشین فکر” را توسعه داد. آلن اینگونه استدلال میکرد که رایانهها همانند انسانها افکار را پردازش نمیکنند؛ بلکه برای حل مشکلات، از مجموعهای از قوانین و دستورالعملهایی که برای آنها تعریف شده، استفاده میکنند.
زبان برنامهنویسی بیت کوین تورینگ ناقص است و افزایش پیچیدگی به طور بالقوه مشکلاتی را برای این شبکه ایجاد میکند. البته این موضوع به نفع این شبکه است؛ زیرا با ساده نگه داشتن آن، توسعه دهندگان میتوانند با دقت بالایی نحوه واکنش بیت کوین را پیشبینی کنند (منظور محاسباتی است که برای یافتن عدد نانس انجام میشود. برای شناخت کامل شبکه بیت کوین، این مقاله را مطالعه کنید).
اما شبکه اتریوم یک سیستم تورینگ کامل است؛ زیرا میتواند قراردادهای هوشمند را اجرا کند. این شبکه میتواند توافقنامههایی که در آینده نیز ممکن است انجام شوند را درک و اجرا کند؛ حتی آنهایی که تاکنون اجرا نشدهاند. به بیانی دیگر، تورینگ کامل بودن اتریوم، بدین معنی است که این شبکه میتواند از کدبیس (منبع کدها) خود استفاده کند و هرگونه وظیفهای را (در صورتی که زمان، قدرت محاسباتی و دستورالعملهای صحیح را داشته باشد) انجام دهد. برای آشنایی کامل با شبکه اتریوم، این مقاله را مطالعه کنید.
مفاهیم ماشین مجازی و تورینگ کامل برای درک EVM بسیار بنیادین هستند؛ زیرا اصول اولیه مفهوم و معماری آن را تشکیل میدهند. جالب است بدانید که سایر فعالان این حوزه توانستند از ایده کلی “فیزیکی” تورینگ در مورد پردازش ماشین، به یک همتای “مجازی” از این ماشین دست پیدا کنند که اصول عملیاتی یکسانی را به همراه دارد. اکنون که دانش پایه در مورد یک ماشین تورینگ کامل و کلیات شیوه عملکرد ماشینهای مجازی را فرا گرفتید، به درک مفهوم ماهیت ماشین مجازی اتریوم یا EVM نزدیکتر شدهایم.
مفهوم EVM یا ماشین مجازی اتریوم چیست؟
در طول سالهای اخیر، اتریوم به میزان زیادی مورد توجه مردم قرار گرفته است. دلیل این امر، این است که در طول این سالها ثابت شده که اتریوم یک عامل بزرگ در پیشرفت بلاک چین و خلق شبکههای غیرمتمرکز بوده و کاری فراتر از پردازش تراکنشهای ساده را به انجام میرساند.
EVM یک ماشین محاسباتی است که مانند یک کامپیوتر غیرمتمرکز عمل میکند و چند هزار پروژه قابل اجرا دارد. ماشین مجازی اتریوم، یکی از اصلیترین المانها در ساختار شبکه اتریوم بوده و بخشی است که اسمارت کانترکتها را پیادهسازی و اجرا میکند.
تمام نودهای اتریوم روی EVM اجرا میشوند، تا در کل شبکه به اجماع برسند. این ماشین مجازی کاملا جدا یا ایزوله است؛ بدین معنی که کدهای نوشته شده در داخل EVM، هیچگونه دسترسی به شبکه، سیستم فایلها یا دیگر فرآیندها ندارند.
حسابها یا اکانتهای اتریوم
اتریوم ۲ نوع اکانت دارد: حسابهای تحت مالکیت خارجی (Externally Owned Accounts یا به اختصار EOA) و حسابهای قرارداد (Contract Accounts). هر دوی این حسابها به طور مساوی و همانند یکدیگر، تحت پوشش EVM رفتار و عمل میکنند.
EOAها ترکیبی از کلیدهای خصوصی و عمومی هستند و برای ارسال و دریافت کوینهای اتر از/به یک اکانت دیگر و ارسال تراکنشها به قراردادهای هوشمند استفاده میشوند.
حسابهای قرارداد کلید خصوصی متناظر با خود را ندارند. این حسابها زمانی ایجاد میشوند که شما قرارداد خود را روی بلاکچین سوار کنید. برخی از اصلیترین ویژگیهای این اکانتها این موارد هستند:
- میتوانید درست مانند حسابهای EOA ارسال و دریافت اتر داشته باشید.
- این حسابها بر خلاف EOAها کد مخصوص به خود را دارند.
- تراکنشها توسط یک قرارداد دیگر یا EOA انجام میشوند.
قراردادی که در کدهای قرارداد هوشمند نوشته شده، به بایتکد (ByteCode) تبدیل میشود. بیشتر کدهای منبع این قراردادها با زبان برنامه نویسی سالیدیتی نوشته میشوند. سپس این کدها به آپکدهایی (OpCode) برای ماشین مجازی ترجمه میشوند، تا بتواند آنها را اجرا کند.
ویژگیهای ماشین مجازی اتریوم چیست؟
اتریوم در ابعاد بزرگتری نسبت به تصور ما به فعالیت خود ادامه میدهد. این پروتکل به یک دفترکل توزیع شده محدود نمیشود و رویدادهای بسیار پیچیدهتری در این بستر انجام میشوند. وبسایت اصلی اتریوم این شبکه را تحت عنوان یک «ماشین حالت توزیع شده (Distributed State Machine)» وصف میکند. شبکه اتریوم تنها دادههای حسابهای کاربری یا وجوه نقد را نگهداری نمیکند؛ بلکه حالت کلی یک ماشین را نگهداری کرده و وضعیت آن لحظه ماشین را ذخیرهسازی میکند.
حالت ماشین این شبکه در هر یک از بلاکها متفاوت است؛ زیرا این ماشین به واسطه هر یک از مجموعه برنامههایی که بر اساس قوانین معین و خاصی تنظیم شدهاند، تغییر حالت پیدا میکند. چه چیزی تعیینکننده این تغییرات حالت مبتنی بر قوانین خاص است؟ پاسخ این سوال ماشین مجازی اتریوم است.
پروتکل اتریوم همچنین از قراردادهای هوشمندی استفاده میکند، تا بتوانیم با ماشین مجازی اتریوم یا EVM تعامل داشته باشیم. این اسمارت کانترکتها در واقع برنامههایی هستند که انواع متنوع توافقات بین انسانها را پوشش داده و یا حداقل آنها را شبیهسازی میکنند. تمامی این موضوعات، از دلایل اصلی پیچیدگی بالای Ethereum در مقایسه با بیت کوین هستند.
با وجود اینکه اتریوم از ساختار پیچیدهای استفاده میکند، زبان برنامهنویسی آن پیچیده نیست. تیم سازنده این پروژه برای جذب مشارکتکنندگان بیشتر به این بستر، تصمیم گرفتند تا زبان برنامهنویسی سازگارتر و کاربرپسندتری را مورد استفاده قرار دهند، که یادگیری آن آسان باشد. زبان برنامه نویسی سالیدیتی که قراردادهای هوشمند و برنامههای غیرمتمرکز اتریوم توسط آن نوشته شدهاند، به صورتی طراحی شده که کار با آن راحت باشد. در واقع Solidity الگوی ارتباطات بین انسانها را شبیهسازی میکند. بنابراین، شما میتوانید با استفاده از این زبان کدنویسی، دستورات خود را به ماشین مجازی انتقال دهید.
قرارداد هوشمند چیست؟
برای شناخت ماشین مجازی اتریوم، نیاز داریم که مفهوم قراردادهای هوشمند را نیز بشناسیم. به بیان ساده، قراردادهای هوشمند توافقنامههایی بین طرفین هستند که به صورت خطوط کد نوشته شدهاند. این قراردادها به صورت خودکار اجرا میشوند و بنابر همین امر نیز نیازی به شخص ثالث مورد اعتماد برای اجرا شدن آنها وجود ندارد.
قرارداد هوشمند به افراد این امکان را میدهد که بهصورت ناشناس و در یک بستر مطمئن با یکدیگر تعامل داشته باشند. در طول این فرایند، به هیچ مرجعی برای تایید تراکنشهای بین این طرفین نیازی نداریم. اجرای چنین تراکنشهایی به هیچ یک از سیستمهای قانونی و یا مکانیزمهای اِعمال قانون وابسته نیست. امکان بهرهبرداری از اسمارت کانترکتها به واسطه شیوه طراحی شبکه Ethereum مهیا شده است. این قراردادها به ماشین مجازی اتریوم یا EVM نیز دسترسی کامل دارند.
این کانترکتها در بستر بلاکچین کار میکنند و غیرقابل تغییر و شفاف هستند. با توجه به اینکه Smart Contractها غیرقابل تغییر هستند و به واسطه چندین نود و بدون هیچگونه دستکاری اجرا میشوند، ماشین مجازی اتریوم از ویژگیهای زیر برخوردار است:
ماشین مجازی اتریوم عملکرد قطعی دارد
هنگامی میتوان گفت یک برنامه قطعی است، که خروجی یکسانی (در صورت ارائه مجموعه ورودی یکسان) داشته باشد، یعنی هر بار که ورودی یکسان به آن داده میشود، خروجی نیز یکسان باشد. مهم نیست چند بار این کد اجرا شود؛ همواره نتایج یکسانی از اجرای این کد حاصل خواهد شد. این امر از اهمیت بالایی برخوردار است، زیرا ممکن است برنامههای غیرمتمرکز یا DAppهای بستر اتریوم، تراکنشهای امور مالیای را مدیریت کنند که شامل مقادیر زیادی پول باشند. بنابراین، دانستن شیوه عملکرد این کد در هر مرحله اجرا بسیار مهم است.
ماشین مجازی اتریوم ایزوله است
یکی دیگر از خصوصیات مهم قراردادهای هوشمند، این است که در محیطهای ایزوله و مجزا اجرا میشوند. دستیابی به این سطح از ایزوله بودن به واسطه دو سیستم حاصل میشود:
- ماشینهای مجازی.
- محفظههای داکر (Docker).
از آنجایی که طراحی قرارداد بر بستر Docker از قابلیت قطعی بودن برخوردار نیست، اتریوم ماشینهای مجازی را برای فراهمسازی این قابلیت مورد استفاده قرار داده است.
ایزوله بودن به این دلیل بسیار مهم است، که سیستمها بتوانند بحرانهای هک و باگهای موجود در قرارداد هوشمند را پوششدهی کنند و جلوی این اتفاقات ناگوار را بگیرند.
ماشین مجازی اتریوم پایانپذیر است
همانطور که پیش از این توضیح دادیم، EVM یک تورینگ کامل است و این بدان معناست که قراردادهای هوشمند این بستر میتوانند هرگونه مشکلی را (حداقل به صورت فرضی) حل کنند. با این حال، هیچ راهی وجود ندارد تا مطمئن شویم که آیا چنین قراردادهای هوشمندی میتوانند عملیات مورد نظر را در بازه زمانی معین به پایان برسانند یا خیر؛ بنابراین لازم است که مکانیزم نهاییسازی یا پایاندهندهای را برای ایجاد چنین محدودیتهایی مورد استفاده قرار دهیم.
در بستر اتریوم، مفهومی به نام گس (Gas) وجود دارد که برای تراکم شبکه مورد استفاده قرار میگیرد (هرچه مقدار گس بیشتر باشد، یعنی شبکه شلوغتر است). همچنین Gas یکی از مکانیزمهای انگیزشی مورد استفاده در این شبکه نیز محسوب میشود و برای ایجاد اولویت در انجام تراکنشها کاربرد دارد (هرچه مقدار گس بالاتر باشد، تراکنش زودتر تایید میشود). محدوده گس قبل از ارسال تراکنش تعیین میشود. این محدودیتها بهعنوان دستورالعمل برای ماشین مجازی اتریوم تعیین میشوند و EVM به راحتی میتواند تصمیم بگیرد که عملیات را متوقف کند و یا روند پردازش را پایان دهد.
اقتصاد اکوسیستم EVM
ماشین مجازی اتریوم توانسته به اقتصاد مختص اکوسیستم خود نیز دست یابد. این ماشین مجازی با بهرهگیری از مکانیزم انگیزشی گس، از منابع دنیای واقعی نیز برای اجرای برنامهها بهره میگیرد. به همین واسطه، اتریوم به هدف خود در راستای تبدیل شدن به «کامپیوتر جهانی» دست پیدا میکند. ماشین مجازی اتریوم از چه جهت برای این پروتکل اهمیت دارد؟ این ماشین به افرادی که به این شبکه ملحق میشوند، اجازه میدهد که کدهای خود را به شیوهای پیادهسازی کنند، که نیازی به وجود فضای اعتماد نداشته باشیم. بنابراین، نتیجه هر اجرا از طریق قراردادهای هوشمند به صورت قطعی تضمین میشود.
با در اختیار داشتن شیوهای برای محاسبه هزینه گس یک قرارداد هوشمند، یک پروتکل میتواند تضمین کند که فی مورد نظر، پیش از اجرای برنامه دریافت خواهد شد. بدین ترتیب، از تمامی عوامل مشوق و اولویتها نیز محفاظت میشود. اتریوم اعتبارسنجها یا ولیدیتورهایی دارد که از تایید اعتبار تمامی اطلاعات در هر یک از تراکنشهای شبکه، اطمینان حاصل میکنند. علاوه بر این، Validatorها فرایند پردازش یک تابع توسط ماشین مجازی اتریوم را نیز مورد بررسی قرار میدهند، تا این ماشین وارد حالتهای پیشبینی نشده و استثنایی نشود.
ارتباط گس با روند اجرای EVM چیست؟
هرگونه اقدامی که در بستر Ethereum صورت میگیرد، نشاندهنده یک تراکنش است. تراکنشها برای انجام شدن به فی یا کارمزد نیاز دارند. همانطور که اشاره کردیم، در بستر این شبکه، تمامی هزینههای مورد نیاز تحت عنوان Gas شناخته میشوند.
در زمانهایی که میزان فعالیت درون این شبکه بسیار بالا بوده و تراکنشهای زیادی در حال انجام هستند، میزان گس فی افزایش پیدا میکند. برخی اوقات میزان گس فی مورد نیاز برای انجام تراکنشهای ساده به ۱۰ یا ۲۰ دلار از ارزش اتر نیز میرسد.
شیوه ذخیرهسازی داده در شبکه اتریوم
دادهها به صورت درختی و به واسطه ساختار داده درختمانند مدیریت میشوند. دیتاهایی مثل میزان موجودی حساب کاربری، به صورت مستقیم در بلاکهای بلاکچین اتریوم ذخیرهسازی نمیشوند و تنها نودهای روت هش (Root Hash) یا هش ریشهای میتوانند تراکنشها، حالات ماشین و دریافتیهای درون این زنجیره را نگهداری کنند.
دو نوع داده متمایز در بستر Ethereum وجود دارد: دادههای دائمی و دادههای موقت.
دادههای دائمی
تراکنشها نمونهای از دادههای دائمی محسوب میشوند. به محض اینکه یک تراکنش به حالت تایید برسد، در درون ساختار داده درختی ذخیرهسازی میشود و هیچگاه تغییر نمیکند.
دادههای موقت
میزان موجودی آدرس حساب کاربری نمونهای از داده موقت است. میزان موجودی نگهداری شده در یک آدرس حساب کاربری، در بخش حالت درختی ذخیرهسازی میشود و هنگامی که تراکنشها توسط فرستنده ارسال میشوند و یا تراکنشی را دریافت میکنند، دچار تغییر میشوند. دادههای دائمی و موقت بهصورت جداگانه ذخیرهسازی میشوند.
شیوه ثبت سوابق اتریوم شباهت زیادی با بانک دارد؛ ممکن است فردی به صورت آنالوگ و به دور از دنیای دیجیتال، از یک کارت اعتباری استفاده کند. بانکها میزان موجودی هر کارت را در زمان درخواست برای خرج کردن پول را ردیابی میکنند. بانک سوابق خود را مورد بررسی قرار میدهد، تا از این موضوع اطمینان حاصل کند که حساب کاربر مورد نظر پیش از تایید تراکنش از میزان موجودی کافی برخوردار باشد. شبکه اتریوم نیز به همین شکل عمل میکند؛ قبل از ارسال تراکنش، موجودی آدرس بررسی میشود و اگر موجودی کافی نباشد، اجازه ارسال داده نمیشود.
ما تمام موارد مربوط به EVM و نحوه کارکرد ماشینهای مجازی، سیستمهای تورینگ کامل، کارکرد قراردادهای هوشمند و خلاصهای از کارمزدهای گس و نحوه ذخیرهسازی اطلاعات در شبکه اتریوم را پوشش دادیم. اکنون زمان آن رسیده که به مزایا و معایب ماشین مجازی اتریوم بپردازیم.
مزایای ماشین مجازی اتریوم
- EVM به همه افراد اجازه میدهد تا بتوانند برنامه غیرمتمرکز مورد نظر خود را بسازند. موارد کاربردی بیشماری برای این نوع نرمافزار وجود دارد و این تکنولوژی به گروه خاصی از مردم و یا افراد ثروتمندی که روابط و ارتباطات خاص دارند، محدود نمیشود.
- مزایا و دستاوردهای زیادی از قراردادهای هوشمند حاصل میشوند. به عنوان نمونهای از کاربردهای این کانترکتها، میتوان به توکنهای بیهمتا (NFT) اشاره کرد. همه افراد میتوانند به واسطه ساخت توکن NFT، به خلق آثار هنری دیجیتال و فروش آنها در بازار غیرمتمرکز بپردازند.
معایب ماشین مجازی اتریوم
- شبکه EVM به صورت کامل غیرمتمرکز نیست و اکثریت نودهای اتریوم روی سرورهای ابری متمرکز مانند آمازون و خدمات مبتنی بر وب میزبانی میشوند. اگر صاحبان چنین خدماتی به این نتیجه برسند که به هر دلیلی به اتریوم علاقهای ندارند، این نودها به راحتی از کار میافتند و این امر به آسیب دیدن و یا از بین رفتن شبکه منجر میشود. این امر در گذشته و در رابطه با برخی از برنامههای رسانه اجتماعی اتفاق افتاده است.
- استفاده از ماشین مجازی اتریوم نیازمند دانش فنی است. افرادی که با زبان برنامهنویسی سالیدیتی آشنایی ندارند، نمیتوانند از EVM بهره زیادی ببرند. البته رابطهای کاربری سازگارتر با این کاربران وجود دارند، که هنوز در دست توسعه هستند. به عنوان مثال میتوان دوباره به NFTها اشاره کرد. لازم به ذکر است که برنامههایی وجود دارند، که دارای رابطهای کاربری گرافیکی (GUI) هستند که به صورت تقریبی به تمامی کاربران این امکان را میدهند که NFT بسازند و از بازارهای مربوط به آن استفاده کنند.
- در زمان ازدحام شبکه اتریوم، میزان گس فی تا میزان زیادی افزایش پیدا میکند. این امر میتواند به منزله نقطه ضعف بزرگی برای کاربران این شبکه محسوب شود. ممکن است در زمان ازدحام شبکه، آسیب زیادی به افرادی که تراکنشهای بزرگ انجام میدهند نرسد؛ اما این امکان وجود دارد که سایر افرادی که تراکنشهای کوچک را به انجام میرسانند (یعنی اکثریت کاربران)، برای مدتی نتوانند از شبکه استفاده کنند. این رویداد به صورت ویژهای برنامههای غیرمتمرکز را تحت تاثیر قرار میدهد. از آنجایی که کاربران در هنگام استفاده از Dappها از قراردادهای هوشمند استفاده میکنند و تراکنشهای زیادی را به انجام میرسانند، در طول بازه زمانی ازدحام شبکه، این امکان وجود دارد که کل فرایند استفاده از دپ دچار اختلال و کند شده یا حتی متوقف شود.
کدام شبکهها با ماشین مجازی اتریوم سازگار هستند؟
به بیانی بسیار ساده، شبکههایی که در کیف پول متامسک اضافه میشوند و آدرس آنها با 0x شروع میشود، با EVM سازگار هستند.
پروژههای بسیاری وجود دارند که کاملا روی ماشین مجازی اتریوم راهاندازی شدهاند و بهصورت لایه ۱ فعالیت میکنند. میتوان گفت که کدهای این بلاکچینها فورکی از کدهای اتریوم است.
یکی از بهترین نمونههای این شبکهها، بایننس اسمارت چین است. تنها تفاوت BSC با اتریوم، الگوریتم اجماع آن است؛ الگوریتم اجماع اتریوم در حال حاضر بهصورت هیبریدی (هم گواه اثبات کار و هم گواه اثبات سهام) است، در حالی که Binance Smart Chain از PoS استفاده میکند.
برخی دیگر از شبکههای سازگار با EVM نیز وجود دارند که بهصورت لایه یک فعالیت میکنند و فورک اتریوم نیستند؛ مانند تلوس (Telos).
شبکههای لایه ۲ نیز وجود دارند که راهکارهایی برای افزایش مقیاس پذیری شبکه اتریوم هستند. یک نمونه از این بلاکچینها، پالیگان است، که از سایدچینها یا زنجیرههای جانبی برای محاسبات آفچین استفاده میکند.
در کنار این شبکهها، برخی بلاکچینها با الگوریتم گواه اثبات سهام نیابتی (dPoS) فعالیت میکنند. همچنین شبکههایی با الگوریتم گواه اثبات خودمختاری (Proof of Autonomy) که به آن زنجیره باثبات یا Stable Chain میگویند، کار میکنند و با ماشین مجازی اتریوم سازگاری دارند (مانند xDAI Chain).
تمام این شبکههای سازگار با ماشین مجازی اتریوم، کارمزد کمتر و سرعت بیشتری نسبت به اتریوم دارند. برخی از معروفترین شبکهها (صرف نظر از نوع الگوریتم اجماع و نحوه کارکرد) این موارد هستند:
- بایننس اسمارت چین
- پالیگان
- آوالانچ
- xDAI
- بوبا نتورک
- فانتوم
- کرونوس
- Aurora
- KCC
- هکوچین
- آربیتروم وان
- آپتیمیزم
- Ubiq
- آنتولوژی
- توموچین
- آکالا
- مون بیم
- هارمونی
پرسش و پاسخ (FAQ)
- ماشین مجازی evm چیست؟
ماشین مجازی اتریوم مسبب اجرای برنامههای غیرمتمرکز شبکه اتریوم است. EVM قراردادهای هوشمندی که روی این شبکه بارگزاری یا دیپلوی شدهاند را اجرا میکند.
- Evm compatible چیست؟
معنی این عبارت، سازگاری با ماشین مجازی اتریوم است و به شبکههایی اشاره دارد که از این ماشین مجازی استفاده میکنند. آدرسهای این شبکهها دقیقا مطابق با استانداردهای اتریوم است. شبکههایی مثل بایننس اسمارت چین، پالیگان و آوالانچ جزو شبکههایی هستند که EVM Compatible هستند.
- برای آموزش evm به کجا مراجعه کنیم؟
در بخش Docs وبسایت اتریوم، ماشین مجازی اتریوم و نحوه استفاده از آن بهطور کامل آموزش داده شده است.
سخن پایانی
ماشین مجازی اتریوم مسبب اصلی اجرای برنامههای غیرمتمرکز و ارائهدهنده قراردادهای هوشمند به کاربران است. EVM ماشینی است که به کاربران اجازه میدهد که بر بستر اتریوم، به ایجاد برنامههای غیرمتمرکز بپردازند. زبان برنامهنویسی سالیدیتی برای کدنویسی این برنامه مورد استفاده قرار گرفته است و یادگیری این زبان نیز نسبتا ساده است. گس فی، هزینه مورد نیاز برای انجام تراکنشهای این شبکه بوده و برای ایجاد انگیزه در ماینرها و اولویتبندی انجام عملیات گوناگون درون سازمانی مورد استفاده قرار میگیرد. در این مقاله به معرفی ماشینهای مجازی و نحوه کارکرد آنها، سیستمهای تورینگ کامل، قراردادهای هوشمند و خلاصهای از کارمزدهای گس و نحوه ذخیرهسازی در شبکه اتریوم پرداختیم، تا بتوانیم به پاسخ این سوال بپردازیم که ماشین مجازی اتریوم چیست و در انتهای مقاله نیز مزایا و معایب EVM را بررسی کردیم. نظر شما در مورد EVM چیست؟ آیا از ماشین مجازی اتریوم به عنوان یک توسعهدهنده استفاده کردهاید؟ نظر خود را در بخش کامنتها با ما در میان بگذارید.