آنچه در این مقاله خواهید خواند
ماشین مجازی اتریوم (Ethereum Virtual Machine) یا بهطور خلاصه EVM «قلب تپنده اتریوم» لقب دارد. همانگونه که قلب با پمپاژ خون، اکسیژن و مواد مغذی را در بدن به حرکت درمیآورد، EVM نیز توانایی ساخت قرارداد هوشمند و برنامههای غیر متمرکز را برای توسعهدهندگان زبان برنامهنویسی سالیدیتی (Solidity) فراهم میکند. این ماشین مجازی مسئول ساخت اکثر اپلیکیشنهای غیرمتمرکز امروزی است که تمایز آن از بیت کوین و دیگر دفترهای کل توزیعشده را به دنبال داشته است.
تاریخچهای کوتاه از تکامل اتریوم
پیش از پرداختن به نحوه تولد ماشین مجازی اتریوم، بهتر است کمی با تاریخچه این شبکه آشنا شویم. شبکه اتریوم توسط برنامهنویسی روسی-کانادایی بهنام ویتالیک بوترین (Vitalik Buterin) معرفی شد و هدف آن، گسترش قابلیتهای بیت کوین از طریق فناوری قرارداد هوشمند بود.
شایان ذکر است که خود مفهوم اسمارت کانترکت پیشتر در سال 1996 توسط رمزنگار و دانشمند علوم کامپیوتر بهنام نیک زابو (Nick Szabo) معرفی شده بود. با این حال، در آن زمان این مفهوم کمی از زمان خود جلوتر بود و نتوانست به ابزاری مناسب برای پیادهسازیهای عملی تبدیل شود. بنابراین ویتالیک بوترین تصمیم گرفت با ترکیب تکنولوژی بلاک چین و ایده قرارداد هوشمند، تولد شبکهای بهنام اتریوم، رمز ارز اتر و محیط اسمارت کانترکت EVM را رقم بزند.
در سال 2014، بنیاد اتریوم به تامین سرمایه پرداخت و توانست چهرههای شناخته شدهای که اکنون از بنیانگذاران آن محسوب میشوند را به خود جذب کند. از سال 2014 تا 2016 نیز مفهومی بهنام DAO یا سازمان خودگردان غیر متمرکز ظهور کرد که نحوه جذب سرمایه گذاریها را تغییر داد. همه اینها، رشد قیمت اتریوم و محبوبیت این بلاک چین برای توسعه برنامههای غیرمتمرکز را بههمراه داشت.
ماشین مجازی چیست؟
ابتدا اجازه دهید با مفهوم ماشین مجازی (Virtual Machine) شروع کنیم. ماشین مجازی برنامهای است که با ایزوله کردن اجزاء واقعی و سیستم عامل یک کامپیوتر، عملیات آن را شبیهسازی میکند. بنابراین، یک کامپیوتر فیزیکی قادر به مدیریت چندین کامپیوتر مجازی، یا بهطور دقیقتر، ماشین مجازی است.
ماشینهای مجازی بهخاطر نحوه توسعهشان برای وظایف مختلف، دارای قابلیتهای متفاوتی هستند. مثلا، ماشینهای مجازی نظیر Virtual Box بهطور کامل سخت افزارهای کامپیوتری را شبیهسازی کرده و اجازه اجرای هر سیستم عاملی را به شما میدهند. یا مثلا دیگر ماشینهای مجازی مانند Java Virtual Machine فقط عملکرد پردازنده و برخی از موارد مربوط به حافظه را شبیهسازی میکنند.
با این حال، همه این ماشینهای مجازی صرفنظر از وظایفی که مختص آن طراحی شدهاند، برای تکامل خود دارای ویژگیها و معیارهای مشترک هستند. در ادامه بیشتر به این موارد میپردازیم.
قرارداد هوشمند چیست؟
نتیجه پیادهسازی اولین فناوری بلاک چین، تولد بیت کوین بود و توانست چند سال بعد جایگاه خود را محکم کرده و با وجود ظهور شبکهها و نوآوریهای جدید، همچنان آن را حفظ کند. یکی از این نوآوریها، قرارداد هوشمند (Smart Contract) بود.
اسمارت کانترکتها الگوریتمی از اقدامات خاص لازم برای فعالسازی دنبالهای از تغییرات در وضعیت بلاکهای یک شبکه بلاک چینی هستند. در اصل، این قراردادها شرایط تراکنشی هستند که هر طرف باید آن را برآورده کرده و تنها با استفاده از الگوریتمهای ریاضیاتی و زبانهای برنامهنویسی نوشته میشوند.
دیاپ یا برنامه غیر متمرکز چیست؟
برنامه غیر متمرکز (Decentralized Application) یا دیاپ (DApp) رابطهای کاربری هستند که اجازه تعامل با قراردادهای هوشمند در شبکه اتریوم را به شما میدهند. این اپلیکیشنها در واقع مشابه برنامههای نصبشده روی گوشی هوشمند یا اپهای تحت وب باز روی مرورگر شما هستند، با این تفاوت که بهجای یک سرور مرکزی، دادهها را با یک شبکه بلاک چینی تبادل کرده و از اسمارت کانترکتها برای پردازش داده و مدیریت عملیات استفاده میکنند.
اپلیکیشنهای غیرمتمرکز میتوانند عملکردی مشابه برنامههای مرسوم داشته و در عین حال، از مزایای تمرکززدایی نظیر شفافیت، دسترسی آزاد، آپتایم دائمی و مقاومت در برابر سانسور نیز بهرهمند شوند.
با این وجود، شایان ذکر است که با وجود بلوغ و پیشرفته بودن خود فناوری بلاک چین اتریوم و ماشین مجازی EVM، دیاپها ساختارهایی پیچیدهتر و سطح بالاتر هستند که محبوبیت گستردهای ندارند. این یعنی این تکنولوژی هنوز کامل نیست و با وجود برتری آن نسبت به برنامههای استاندارد، کمبود پذیرش جمعی از محدودیتهای آن محسوب میشود.
ماشین مجازی اتریوم چیست؟
ماشین مجازی اتریوم یک پلتفرم نرم افزاری یا «کامپیوتر مجازی» است که توسعهدهندگان برای ساخت برنامههای غیر متمرکز و همچنین اجرا و استقرار قراردادهای هوشمند روی سیستم این شبکه بلاک چینی از آن استفاده میکنند. شما چه یک برنامهنویس علاقهمند به توسعه دیاپها باشید چه یک سرمایه گذار خواهان یادگیری درباره تکامل پایانناپذیر دنیای EVM، احتمالا نام این ماشین مجازی به گوشتان خورده است. برای درک بهتر اجازه دهید ابتدا کمی به قبل برگردیم.
به گفته ویتالیک بوترین، بیت تورنت (BitTorrent) اولین اپلیکیشن غیرمتمرکز در دنیاست. برم کوهن (Bram Cohen) اولین پروتکل بهاشتراکگذاری فایل را در سال 2001 طراحی کرد و علیرغم تلاشهای فراوان برای نابودی آن، بیت تورنت هنوز به کار خود ادامه میدهد. برای از کار انداختن واقعی بیت تورنت، هر کامپیوتر در هر کجای جهان باید خاموش شود. در واقع بیت تورنت یک ماشین مجازی بدون محدودیتهای فیزیکی است.
همین امر برای ماشین مجازی اتریوم نیز صادق است. EVM نیاز به سخت افزارهای فوق قدرتمند را از بین برده و پلتفرمی ایدهآل برای آغاز برنامهنویسی است. با این حال، داشتن دانش درباره مفاهیم بایت، استک و بلاک چین نظیر تابع هش، گواه اثبات کار و گواه اثبات سهام به درک عمیقتر کدهای سازگار با EVM کمک میکند.
هدف ماشین مجازی اتریوم (EVM) چیست؟
اتریوم مشابه بسیاری دیگر از شبکههای بلاک چینی است که رمز ارز محلی خود یعنی ETH را دارد و در عین تحکیم قوانین خاص مربوط به نحوه فعالیت افراد در شبکه، برای حفظ پایگاه داده تراکنشها از دفتر کل توزیعشده استفاده میکند. با این وجود، اتریوم بهخاطر قابلیت قراداد هوشمند خود دارای یک لایه عملیاتی مضاعف است.
به این لایه ثانویه «ماشین وضعیت توزیعشده (Distributed State Machine)» میگویند. در سادهترین سطح، وضعیت اتریوم یک دیتابیس بزرگ است که حسابها و موجودیهای رمز ارز اتر را در خود نگهدای میکند.
هدف Ethereum Virtual Machine تعیین وضعیت هر بلاک در بلاک چین اتریوم است. بنابراین با اینکه EVMها مشابه دیگر شبکههای مبتنی بر بلاک چین هستند که برای حفظ پایگاههای داده تراکنشها به استفاده از دفتر کل توزیعشده میپردازند، اما بهخاطر قابلیت قرارداد هوشمند خود، لایه عملیاتی مضاعفی را به شبکه میافزایند.
ویژگیهای ماشین مجازی اتریوم چیست؟
ماشین مجازی EVM در ابتداییترین شکل خودش یک پایگاه داده بزرگ برای نگهداری حسابها و موجودیهای این شبکه است و در عین حال، یک ماشین وضعیت با توانایی اجرای کدها و تغییر در راستای هر بلاک جدید اضافهشده به دفتر کل بلاک چین نیز محسوب میشود. قوانین خاصی که تعیینکننده نحوه تغییر EVM همسوی هر بلاک جدید هستند، توسط خود این ماشین تعریف میشوند.
به زبان سادهتر، ماشین مجازی اتریوم یک موتور پردازش و پلتفرم نرم افزاری است که مشابه یک کامپیوتر غیر متمرکز کار میکند. از دیفای و برنامههای کریپتویی EVM گرفته تا بازیها و بازارچههایی نظیر اوپن سی (OpenSea)، توسعهدهندگان از Ethereum Virtual Machine برای ساخت اپلیکیشنهای غیر متمرکز مبتنی بر اتریوم و زبان برنامهنویسی مخصوص آن یعنی سالیدیتی استفاده میکنند.
مهمتر اینکه EVM بخشی از شبکه اتریومِ مسئول در اجرا و استقرار قراردادهای هوشمند است. اینجا همان جایی است که اسمارت کانترکتها و میلیونها دیاپ مبتنی بر اتریوم زندگی میکنند. بلاک چین اتریوم را شبیه به یک ساختار همتابههمتا از نودهای مجزای مختلف در نظر بگیرید. در اینجا، هر نود به نود بعدی متصل میشود که وظیفه تامین امنیت و ثبات کل اکوسیستم را برای آنها به بار میآورد. بنابراین هر نود برای این اتصال و حفظ اجماع در کل بلاک چین اتریوم، از ماشین مجازی EVM استفاده میکند.
تشابه ماشین مجازی اتریوم با CPU در چیست؟
برای درک بهتر مفهوم ماشین مجازی اتریوم، بهتر است درباره نحوه کار برنامههای کامپیوتری صحبت کنیم. تمام این برنامهها به یک زبان برنامهنویسی نظیر جاوا یا ++C نوشته میشوند. با این حال، از آنجایی که CPUها قادر به خواندن زبان جاوا یا ++C نیستند، این کدها کامپایل و به بایتکد (Bytecode) ترجمه میشوند.
اتریوم یک CPU نیست، اما یک شبکه جهانی توزیعشده به همراه 100 CPU است که بهصورت همزمان کار میکنند. با این حال، EVM بهعنوان یک CPU مجازی یا «ماشین» مجازیِ در حال اجرا داخل برنامه GO Ethereum یا “Geth” عمل میکند.
مشابه دیگر برنامههای نرم افزاری، توسعهدهندگان اتریوم نیز با استفاده از یک زبان برنامهنویسی خاص به ساخت دیاپ یا قرارداد هوشمند میپردازند. بهجای جاوا یا ++C، زبان برنامهنویسی اتریوم سالیدیتی نام دارد. با اجرای یک اسمارت کانترکت، هر نود یک کپی از آن را دریافت، بایتکد آن را اجرا و این کد را به هرکسی که استقرار قرارداد آن را فراخوانده است، میدهد که در نهایت، باعث «تغییر وضعیت» میشود. این یعنی وضعیت فعلی بلاک چین تغییر مییابد، که البته تنها در صورت اجماع تمام نودها قابل دستیابی است. به همین خاطر، معمولا به EVM «ماشین وضعیت توزیعشده» میگویند. این ماشین با تغییر هر تراکنش وضعیت بلاک چین را ردیابی میکند.
ماشین مجازی اتریوم (EVM) چگونه کار میکند؟
اگر تا کنون یک آهنگ، فیلم یا نرم افزار را از بیت تورنت دانلود کرده باشید، حتما میدانید که یک شبکه غیر متمرکز چگونه کار میکند. حتی قدرتمندترین مقامات جهان هم قادر به حذف آن نیستند، چراکه چنین کاری به قطع تمام کامپیوترهای متصل به شبکه نیاز دارد.
یکی از بهترین راههای مقیاس پذیری یک شبکه غیرمتمرکز، استفاده از ماشینهای مجازی است. این EVها با فعالیت بهعنوان یک لایه واصل بین ماشینهای کدهای اجراکنندهشان، قادر به اجرا روی سخت افزارها و سیستم عاملهای مختلف از هر جای جهان هستند.
حال ماشینهای مجازی نظیر EVM، مشابه ماشینهای فیزیکی دارای CPU، حافظه و انبار ذخیرهسازی عمل میکنند، اما هیچ عملکرد دیگری بهجز اجرای کد ندارند. از نظر تئوری، هر کسی قادر به اجرای یک ماشین مجازی است که انعطاف و قابلیت حمل لازم برای شبکههای غیر متمرکز را به آن میدهد. ماشین مجازی اتریوم نیز از شبکهای از نودهای غیرمتمرکز برای اجرای اسمارت کانترکتها استفاده میکند. Ethereum Virtual Machine یک استک مجازی پویا و سندباکسشده درون هر نود اتریوم برای اجرای بایتکد قرارداد هوشمند سازگار با EVM است.
برای درک ماشینهای مجازی اتریوم و وظیفهشان در حوزههایی مانند وامدهی دیفای، باید بهیاد داشته باشید که قرارداد هوشمند به زبان سالیدیتی و دیگر زبانهای سطح بالا نوشته شده و سپس به بایتکد ترجمه و نهایتا در EVM کامپایل میشوند. این یعنی کدهای ماشین از فایل سیستم، پردازشها و شبکه کامپیوتر میزبان مجزاست.
در این حالت، هر نود در شبکه اتریوم باید برای اجرای دستورالعملهای مشابه با نود بعدی به توافق برسد. این امر ماشین مجازی اتریوم را به یک تورینگ کامل (Turing Complete) تبدیل میکند که قابلیت اجرای گامهای منطقی برای عملکردهای محاسباتی را برای آن فراهم میسازد. حالا برای هر دستورالعمل پیادهسازیشده توسط ماشین مجازی اتریوم، هزینهای به آن تخصیص داده میشود که اجازه پیگیری هزینههای اجرا را به این سیستم میدهد. هزینه انجام تراکنشهای رمز ارزی در EVM و اجرای دیگر دستورالعملها، بهصورت واحدهای سازگار با این ماشین مجازی بهنام گس (Gas) اندازهگیری میشود.
بنابراین، با فراهمآوری یک اقتصاد مبتنی بر هزینههای دستورالعملهای اجراشده بهجای تراکنشهای مالی اجرایی، مشابه بیت کوین، یک کامل بودن تورینگ (Turing Completeness) حاصل میشود. این مفهوم یعنی Ethereum Virtual Machine یک کامپیوتر بزرگ همتابههمتای متصل از کامپیوترها در سراسر جهان است که میتواند قراردادهای هوشمند، رویدادهای جمعآوری سرمایه جمعی P2P، اقتصادهای بهاشتراکگذاری فایل و موارد بسیار دیگر را بسازد.
کد دستور یا آپ کد (Opcode)
در حال حاضر، ماشین مجازی EVM قادر به اجرای تقریبا 150 آپ کد (Operation Code) مختلف است. اما آپ کد دقیقا چیست و چرا در درک ماشینهای مجازی اتریوم اهمیت دارد؟
علت تورینگ کامل نامیدن EVM بیشتر بهخاطر توانایی آن در اجرای دستورالعملهای سطح ماشین معروف به آپ کد است. هر کد دستور سازگار با EVM در تکمیل وظایف خاص مربوط به قراردادهای هوشمند یا تراکنشهای ارز دیجیتال آن به این ماشین مجازی کمک میکند. با این حال، از آپ کدها برای طیف متنوعی از عملیات، از ثبت داده و وظایف محاسباتی گرفته تا حافظه و بازیابی اطلاعات بلاک، استفاده میشود.
با این وجود، کدهای دستور مستقیما درون خود ماشین مجازی اتریوم نوشته نمیشوند، بلکه بهخاطر تواناییشان در فراهمآوری قابلیت ساخت و تعامل آسان با قراردادهای هوشمند، از زبان سالیدیتی برای نگارش آنها استفاده میشود. با این حال، این زبان اختصاصی برای فهم EVM باید به آپ کدها تبدیل شود. نهایتا به هر کد دستور یک بایت تخصیص داده میشود. این یعنی حداکثر میتوان از 256 آپکد استفاده کرد.
نقش قراردادهای هوشمند در EVM
برای درک بهتر Ethereum Virtual Machine، داشتن دانش عمومی درباره قرارداد هوشمند و نقش آن در رمز ارزها، دیفای و دیگر عملکردهای بلاک چینی از الزامات است. اسمارت کانترکتها که گاهی اوقات به آنها «برنامه ماشین مجازی اتریوم» میگویند، خطوط کدنویسی سازگار با EVM هستند که توسط افراد برای انجام معامله با یکدیگر بدون حضور یک شخص ثالث یا نظارت مقامات مرکزی مورد استفاده قرار میگیرند.
درون هر اسمارت کانترکت فهرستی مشخص از عملیات وجود دارد که در صورت برآرودهسازی شرایط برون زنجیرهای یا درون زنجیرهای خاص، اجرا میشوند. این عملیات شامل طیف متنوعی از انتقال ارز به آدرسهای خاص تا ساخت قراردادهای هوشمند جدید و ارتباط بین قراردادهای موجود هستند. به همین خاطر، بهجای الزام به حضور یک شخص ثالث، هر کسی برای انجام اینگونه عملیات قادر به ارسال ارز به یک آدرس اسمارت کانترکت است.
اتریوم با الهام از مفهوم بیت کوین و ارائه قابلیت توسعه قراردادهای هوشمند روی بلاک چین خود، این مفهوم را بهبود بخشید. گام بعدی در توسعه، ساخت محیطی بود که در آن اسمارت کانترکها قادر به زندگی و تعامل با یکدیگر بودند. اینجا همان جایی است که ماشین مجازی EVM وارد بازی شد.
ماشین مجازی اتریوم نه تنها یک منبع، بلکه هزاران CPU متصل به این شبکه را با یکدیگر ترکیب میکند. این ماشین علاوه بر اعتبارسنجی تراکنشها، آپ کد قراردادهای هوشمند نوشتهشده به زبان سالیدیتی را نیز به بایت کد ترجمه میکند، بنابراین دستورالعملها قابلیت خواندن و عملیات قابلیت اجرا دارند. حال برای انجام قسمت آخر، به گس نیاز است.
ارتباط گس با روند اجرای EVM چیست؟
گس فی اتریوم سوخت پیشران Ethereum Virtual Machine است و برای هر فعالیتی از خرید اتریوم و سرمایه گذاری در یک NFT گرفته تا انتقال ارزها، برای اجرای تراکنشها به گس نیاز دارید. گس در اتریوم، نقش کارمزد محاسبات مورد نیاز برای اجرای اسمارت کانترکتها را بر عهده دارد.
بنابراین، به هر آپ کد یک هزینه گس تخصیص داده میشود و هرچه این کد دستور پیچیدهتر باشد، این فی نیز بالاتر خواهد بود. در حال حاضر، هزینه اولیه آغاز هر تراکنش 21,000 گس است. علت دریافت کارمزدهای گس، جبران زحمت ولیدیتورهایی است که مسئول بررسی و حصول اطمینان از اعتبار اطلاعات تراکنشها و عدم وجود استثناء یا خطا در EVM هستند.
مهمتر اینکه کارمزد گس به جلوگیری از حملات DDoS و حفظ امنیت شبکه کمک میکند. از آنجایی که استقرار قراردادهای پیچیده در مقیاس بزرگ به محاسبات گران و طولانی نیاز دارد، مهاجمان نیز به لحاظ مالی علاقهای به انجام چنین حملاتی ندارند. به همین خاطر، اجرای چنین حملهای بسیار پرهزینه خواهد بود.
مزایا و معایب ماشین مجازی اتریوم
تعامل متقابل بین بلاک چینها خود را بهعنوان یکی از مشکلات بزرگ و جالبتوجه ثابت کرده است. با استمرار مشکلات اتریوم نظیر کارمزدهای بالای گس تراکنشها، توسعهدهندگان نیز برای ارائه تراکنشهای سریعتر و ارزانتر، به ساخت قراردادهای هوشمند و برنامههای غیر متمرکز روی دیگر بلاک چینهای عمومی روی آوردند. متاسفانه، بسیاری از این بلاک چینها شدیدا محدودیت داشته و عاری از قابلیت تعامل متقابل با دیگر شبکهها هستند.
بلاک چینهای سازگار با ماشین مجازی EVM از جمله راههای ساده برای حل این مشکل محسوب میشوند. بنابراین توسعهدهندگان بهجای شروع از پایه و ساخت محیطی مشابه به آنچه که توسعه آن از طریق استفاده از بریجهای میان زنجیرهای برای EVMها ممکن است، قادر به کپی کردن از روی شبکه اتریوم و ساخت دیاپهایی هستند که اجازه انتقال سریع و آسان داراییهای بین هرگونه شبکه EVM را به کاربران میدهد.
بنابراین، بسیاری از بلاک چینهای پراستفاده امروزی نیز بهخاطر وجود چنین تعامل متقابلی از مدل سازگار با Ethereum Virtual Machine بهره میبرند. از جمله بزرگترین بلاک چینهای فعال در فضای EVM میتوان موارد زیر را نام برد:
- زنجیره هوشمند بایننس (BSC)
- آوالانچ (Avalanche)
- فانتوم (Fantom)
- کاردانو (Cardano)
- پالیگان (Polygon)
- ترون (Tron)
تمامی این شبکهها همان مزایای اتریوم را داشته، اما سرعت بالاتر، ظرفیت بیشتر و هزینههای کمتر را نیز ارائه دادهاند. نهایتا اینکه مهمترین مسئله در بلاک چینهای سازگار با EVM، بهینهسازی و ایجاد بهترین تجربه کاربری غیر متمرکز است.
تعامل پذیری اکوسیستم اتریوم
یکی از بزرگترین مزایای ماشین مجازی EVM، تعامل متقابل درون خود اکوسیستم اتریوم بهعنوان بزرگترین شبکه بلاک چینی در دنیاست. بهلطف این ماشین مجازی، دیاپهای مبتنی بر بلاک چین اتریوم قادر به تعامل و برقراری ارتباط با یکدیگر هستند که اجازه تجربه کاربری روانتر و سریعتر را به افراد میدهد.
حال با استفاده از بریجهای بلاک چینی که پلی بین زنجیرهها هستند، دسترسی به تعامل متقابل میان شبکهها امکانپذیر است. کاربران نیز میتوانند داراییها را بهصورت رایگان در شبکههای EVM از یک برنامه غیر متمرکز به اپلیکیشن دیگر انتقال دهند.
انتقال آسان برنامههای غیر متمرکز
ماشینهای مجازی اتریوم مهاجرت و ورود دیاپها به زنجیرههای جدید بدون نگارش مجدد هرگونه کدی را میسر کردهاند. استفاده از نوع دیگر ماشینهای مجازی نظیر Move-Vm یا Wasm به منابع بیشتر نیاز داشته و انتقال اپلیکیشنهای غیرمتمرکز را بسیار دشوارتر میسازند.
موانع ورود کمتر برای توسعهدهندگان
ماشین مجازی اتریوم همچنین دارای موانع ورود پایین برای توسعهدهندگان است. هیچ جای نگرانی درباره ذات و طبیعت EVMها یا سازگاری کدها با این ماشینهای مجازی نیست. همچنین از آنجایی که توسعهدهندگان میتوانند از ابزارهای اتریوم آشنا نظیر Waffle و MetaMask استفاده کنند، نیازی به یادگیری یک زبان برنامهنویسی جدید نیست.
محدودیتهای دانش فنی، گس و تمرکزگرایی
سوای مزایای Ethereum Virtual Machine، این فناوری محدودیتهای خاص خود را نیز دارد. مثلا، استفاده از این ماشین مجازی نیازمند دانش و تجربه فنی است و آشنایی با سالیدیتی، جاوا و دیگر زبانها از ضروریات کار با آن محسوب میشود.
علاوه بر این، EVMها به کارمزد گس بالای خود شهره هستند. بنابراین فرقی ندارد یک EVM چقدر هوشمند است، چراکه باز هم نمیتوان از محبوبیت و ازدحام داده همراه با آن که به کارمزد بالای گس در مقایسه با دیگر زنجیرهها منجر میشود، فرار کرد.
نهایتا، ماشین مجازی EVM کاملا هم غیر متمرکز نیست و 25 درصد از نودهای اتریوم روی آمازون وب سرویس (Amazon Web Service) اجرا میشوند. به همین خاطر، در صورت اخلال در AWS و عدم ادامه ارائه خدمت، ماشینهای مجازی و دیاپهای مربوطه نیز تحت تاثیر شدید قرار خواهند گرفت.
کاربردهای ماشین مجازی اتریوم
اکنون که با EVM و نحوه کار آن آشنا شدید، بهتر است به کاربردهای آن در پروژههای اتریومی نگاهی بیندازیم.
توکنهای ERC20
بسیاری از پروژههای اتریومی و برنامههای غیر متمرکز به کاربران خود توکن ERC20 پاداش میدهند که منحصرا برای انتقال راحت بین آدرسها و حفظ ارزش یکسان در کل شبکه طراحی شدهاند. توکنهای ERC20 توسط قراردادهای هوشمند مطیع ساختارهای داده تعریفشده، ساخته میشوند. این ساختار داده مسئول نامگذاری، توزیع و نظارت بر توکن مربوطه است.
البته این ارزها کاربردی بیشتر از صرفا ماشین مجازی اتریوم دارند. مثلا، Nexus Mutual که ارائهدهنده بیمه برای اسمارت کانترکتهاست، برای فراهمآوری توانایی ادعای خسارت و پوشش خرید، از توکن NXM مبتنی بر استاندارد ERC20 استفاده میکند.
نمونه دیگر، پروژه لایوپیر (Livepeer) است. با اینکه لایوپیر شناختهشدهترین پروژه در مبحث EVMها نیست، اما این شبکه استریم ویدیو غیر متمرکز از توکن ERC20 خود بهنام LPT برای پاداشدهی به کاربران تامینکننده منابع شبکه بهره میبرد. اینها تنها نمونههای کوچکی از طیف گسترده اپلیکیشنهای غیرمتمرکز هستند که به مدیریت توکنهای ERC20 میپردازند.
بازارسازهای خودکار و صرافیهای غیر متمرکز
صرافی غیر متمرکز (DEX) نیز از طریق قرارداد هوشمند امکان تبادل توکنهای ERC20 را فراهم میکند. این اسمارت کانترکتها به کاربران اجازه میدهند تا با ورود به استخرهای نقدینگی، بدون دخالت اشخاص ثالث به مبادله رمز ارزها بپردازند که در واقع آنها را به یک بازارساز خودکار (AMM) تبدیل میکند. یونی سواپ (UniSwap)، سوشی سواپ (SushiSwap) و بسیاری دیگر از صرافیهای غیرمتمرکز در واقع برنامههایی هستند که به استفاده از مدل AMM میپردازند.
مینت و ساخت توکنهای غیر مثلی (NFT)
یکی دیگر از استانداردهای محبوب، ERC721 است. از قراردادهای هوشمند اینگونه ارزهای دیجیتال برای مینت توکن غیر مثلی یا همان ان اف تی (NFT) استفاده میشود که دارای ارزش منحصربهفرد در بلاک چین اتریوم هستند.
امروزه، یک کد توانایی دموکراتیک کردن دسترسی مجازی به بازارهای هنری را دارد. پروژههای گیمینگ نظیر گادز آنچیند (Gods Unchained) و اکسی اینفینیتی (Axie Infinity) نیز از این توکنها برای آیتمها و کالکتیبلهای درون بازی خود استفاده میکنند.
وامدهی در دیفای
اداسواپ (AdaSwap) یک صرافی غیرمتمرکز مبتنی بر شبکه کاردانو بههمراه یک بازار ساز خودکار است. اخیرا، این پروژه از همکاری خود به Milkomeda خبر داده بود. میلکومدا با استفاده از راهحلهای لایه 2 برای ساخت یک زنجیره جانبی یا همان سایدچین (SideChain)، به بلاک چینیهای ناسازگار با ماشین مجازی اتریوم نظیر کاردانو اجازه میدهد تا با آن سازگار شوند. با استفاده از این ساید چین، کاربران نیز قادر به انتقال داراییها و استفاده از دیاپهای کاردانو روی اتریوم و بالعکس هستند. اداسواپ و میلکومدا هر دو از این همکاری برای ادغام و یکپارچگی Ethereum Virtual Machine درون اکوسیستم کاردانو بهره میبرند.
سازمانهای خودگران غیر متمرکز
ماشین مجازی EVM توسط یک سازمان خودگردان غیر متمرکز یا DAO مدیریت میشود. دائو یک نهاد اشتراکی بدون حضور یک مقام مرکزی است. این ویژگی، کنترل شبکه را به جامعه آن میدهد. دائوها نه تنها کاملا خودگردان هستند، بلکه شفافیت نیز دارند. اسمارت کانترکتها نیز قوانین این سازمانها را مشخص کرده و بر اساس دستورالعملهای کد-محور تصمیمات را اجرا میکنند. با این حال، در هر زمانی امکان رایدهی و طرح پیشنهاد نیز از طریق اجماع وجود دارد.
نهایتا، دائوها کاملا توسط اعضای منفردی مدیریت میشوند که بهصورت جمعی به تصمیمگیری روی پروژه میپردازند. از آنجایی که قوانین دارای شفافیت، قابلیت اعتبارسنجی و در دسترس عموم هستند، هر عضو نیز قادر به درک نحوه عملکرد پروتکل است.
انواع ماشین های مجازی اتریوم کدامند؟
ماشین مجازی EVM یک نرم افزار متن بسته خاص نیست، بلکه مجموعهای از مشخصات و چارچوبها برای ساخت ابزارهای بلاک چین اتریوم است. بنابراین، قابلیت نوشتن Ethereum Virtual Machine به هر زبانی وجود دارد. البته تنها نیازمندی این است که باید تمام پیادهسازیهای EVM منطبق بر مشخصات توصیفشده در وایت پیپر اتریوم باشند.
تا به امروز، چندین پیادهسازی از ماشینهای مجازی اتریوم به زبانهای برنامهنویسی مختلف ارائه شده است. هیچ لیست کاملی در حال حاضر وجود ندارد و هر روزه علاقهمندان به این حوزه در حال توسعه و طراحی مدل خود هستند که شاید در آینده بازار را تغییر خواهد دارد. از جمله محبوبترین مدلهای EVM شامل موارد زیر است:
- go-EVM: نوشتهشده کاملا به زبان Golang
- SputnikEVM: نوشتهشده کاملا به زبان Rust
- Py-EVM: نوشتهشده کاملا به زبان Rust
- evmone: اکثر آن به زبان ++C و قسمتی به زبان CMake
- ethereumjs-VM: برخلاف نام آن، تقریبا کاملا به زبان TypeScript و کمی به زبان جاوااسکریپت است.
- eEVM: تقریبا کاملا به زبان ++C و قسمت کمی به زبان CMake
- Hyperledger Burrow: بیشتر به زبان GO، اما همچنین TypeScript، سالیدیتی و دیگر زبانها
- hevm: نوشتهشده به زبان Haskel
اما چرا این تعداد مدل و پیادهسازی مختلف از ماشین مجازی اتریوم وجود دارد؟ علت آن است که هر زبان برنامهنویسی مزایای مختص به خود را دارد. علاوه بر این، برخی از شرکتهای بزرگ (نظیر eEVM با پشتیبانی مایکروسافت)، مایل به استفاده از منابع عظیم و تخصص بلندبالای خود برای توسعه EVM هستند.
مقایسه EVM با سایر ماشین های مجازی
ماشینهای مجازی نقش بنیادینی را در اجرای صحیح قراردادهای هوشمند فعال روی هزاران برنامه غیر متمرکز در اکوسیستم داخل و خارج از اتریوم ایفا میکنند. با توجه به عملکرد حیاتی این ابزارها، در آینده نهچندان دور، منتظر تکامل VMها از یک بازار نوپا بهسوی راهحل اصلی در مسیر مقیاسپذیری اپلیکیشنها هستیم.
پارا استیت اساسویام (ParaState SSVM)
ماشین مجازی پارا استیت برای مقیاس پذیری دیاپها در اتریوم از مشکل ریشهای آن یعنی «اجرای اسمارت کانترکتها» کار را آغاز کرده و با بهبود زمان اجرای این جزء کلیدی در هر برنامه غیر متمرکزی، مشکلات ذاتی EVM را از بین میبرد.
ماژولی بهنام SSVM-Ewasm Substrate در این ماشین مجازی به توسعهدهندگان اجازه میدهد تا اپلیکیشنهای غیرمتمرکزی را بسازند که قادر به پیادهسازی و اجرای قراردادهای هوشمند اتریوم در اکوسیستم پولکادات هستند تا کاربران از مزیت کارمزدهای پایین و سرعت بالای تراکنشها بهرهمند شوند.
ماژول SSVM یک ماشین مجازی تحت استاندارد Ethereum-flavored WebAssembly یا بهطور خلاصه EWASM، یک جزء کلیدی زیرساخت برای بلاک چینهای عمومی است. تمامی اپلیکیشنها فعلی و آتی اتریوم نیز قادر به اجرا روی ماشین مجازی Ewasm پارا استیت هستند. به عبارت دیگر، توسعهدهندگان میتوانند اسمارت کانترکتهای سازگار با اتریوم را نوشته و آنها را روی یک سیستم ساب استریت همتعاملی پرسرعت و مقیاس پذیر اجرا کنند.
بنابراین توسعهدهندگان با پیادهسازی WebAssembly بهعنوان راهحل محوری فناوری خود، قادر به نگارش کدها به بیش از 20 زبان برنامهنویسی از جمله پراستفادهترین زبانها برای پیادهسازی وب 3 هستند.
ماشین مجازی روت استاک (RVM)
پروتکل Rootstock یا بهطور خلاصه RSK که روی بلاک چین بیت کوین ساخته شده است، به توسعهدهندگان اجازه میدهد تا کدهای قرارداد هوشمند خود برای دیاپها را روی اتریوم بنویسند.
ماشین مجازی RSK مسئول فعالسازی عملکرد اسمارت کانترکتهاست و سازگاری فوق بالایی با EVM دارد. این ماشین مجازی یک تورینگ کامل است و بهطور متوسط تراکنشهای قراردادهای هوشمند را زیر 30 ثانیه تایید میکند.
بهلطف سازگاری با Ethereum Virtual Machine، امکان انتقال قراردادهای هوشمند اتریوم به RSK با کمترین زحمت برای بهرهمندی از قابلیتهای فنی این ماشین مجازی (تا 300 تراکنش در ثانیه) و امنیت شبکه بیت کوین وجود دارد.
در آینده، RSK بهدنبال پشتیبانی از ماشینهای مجازی بیشتر با عملکرد بهتر مبتنی بر بایت کدهای جاوا یا Wasm است. با حضور این بهبودها، و موازیسازی عملیات، این ماشین مجازی جدید قادر به اجرای وظایف بهصورت موازی و قالب کد سریعتر و بهینهتر و در نتیجه، بهبود مقیاس پذیری و امنیت است.
ماشین مجازی نئو (NeoVM)
این پروژه از سال 2017 تا کنون بر پشتیبانی از قراردادهای هوشمند و دیاپهای مرتبط با انتقال داراییهای دیجیتال و اعتبارسنجی هویت دیجیتال متمرکز بوده است. نئو 3.0 آخرین بهروزرسانی این شبکه برای اتصال دیجیتال هویتها، قراردادها و داراییها از طریق مدل قیمتگذاری بهروز و اوراکلهای داخلی دارای پشتیبانی اسمارت کانترکتهای جدید از طریق ماشین مجازی نئو است.
این ماشین مجازی به بهبودهایی تجهیز شده که عملکرد، کاربرد و قابلیتهای توسعه در شبکه نئو را افزایش داده و باعث سادهسازی هرچه بیشتر معماری فنی و برخی از ویژگیهای نوآورانه نظیر NeoFS و NeoID شده است. ماشین مجازی نئو برای پشتیبانی از تعامل متقابل و دیگر زنجیرهها برای حل چالشهای دنیای واقعی طراحی مجدد شد. از طریق NeoVM، قراردادهای هوشمند پشتیبانی توسعه کافی را برای مهندسان سازنده برنامههای غیرمتمرکز در اکوسیستم نئو فراهم کردهاند.
پروتکل اسمارت کانترکت نئو بهنام NeoContract، با استفاده از زبانهای برنامهنویسی محبوب نظیر استانداردهای صنعت همچون پایتون، جاوا، ++C و جاوااسکریپت، توانایی اجرا و مدیریت قراردادهای هوشمند را دارد. این یعنی تقریبا تمامی توسعهدهندگان قادر به استفاده از این سیستم هستند.
نئو ویام یک ماشین مجازی استکمحور است. علاوه بر این، NeoVM اسمارت کانترکتها را در فایلهای بایت کد متحدالشکل NVM کامپایل میکند که سپس دیکد و توسط ماشین مجازی مربوطه اجرا میشوند.
ماشین مجازی الگورند (AVM)
در ماشین مجازی الگورند، قراردادهای هوشمند با عنوان “Stateful” شناخته میشوند. این قراردادها حاوی منطقی هستند که قابلیت پیادهسازی و سپس فراخوانی از راه دور آنها از هر نودی در بلاک چین الگورند وجود دارد. AVM سپس یک زبان مشترک بهنام Transaction Execution Approval Language یا بهطور خلاصه TEAL را ترجمه میکند. زبان TEAL را میتوانید بهمثابه شکر مصنوعی برای بایت کدهای AVM در نظر بگیرید.
قراردادهای هوشمند نیز به زبان سطح بالاتری نوشته و برای اجرا توسط لایه 1 ماشین مجازی الگورند، درون بایت کدها کامپایل میشوند. فریمورک آسان برای این کار اتریوم است که در آن اسمارت کانترکتها به زبان سالیدیتی نوشته و برای اجرا توسط ماشین مجازی EVM درون بایتکدها کامپایل میشوند.
نسخه پیشرفته AVM، یعنی آپدیت پروتکل لایه 1 که جهت بهبود مقیاس پذیری برنامههای غیر متمرکز برای توسعهدهندگان و سازمانها طراحی شده، اخیرا با هدف افزایش سرعت تراکنشها عرضه شده است.
الگورند امیدوار است تا با این ماشین مجازی جدید، توسعهدهندگان قادر به نگارش قراردادهای هوشمند به زبان پایتون یا ریچ (Reach)، زبانی ساده شبیه به جاوااسکریپت، باشند. از آنجایی که تعاملپذیری با Ethereum Virtual Machine در اکوسیتم ماشینهای مجازی امری ضروری است، ماشین مجازی الگورند نیز امکان نگارش اسمارت کانترکتها با زبانهای تورینگ کامل را فراهم کرده است.
جمعبندی ؛ آینده ماشین مجازی EVM
ماشین مجازی اتریوم (Ethereum Virtual Machine) یک پلتفرم نرم افزاری و مجموعهای از مشخصات برای ساخت برنامههای غیر متمرکز روی این بلاک چین است که از فناوری قرارداد هوشمند استفاده میکند. سوخت این شبکه نیز گس نام دارد که برای پرداخت هزینه تراکنشها و مخافظت از شبکه در برابر حملات DDoS استفاده میشود. ماشین مجازی EVM روح استقرار و اجرای اسمارت کانترکتهاست که امروزه مدلهای متنوع آن به زبانهای برنامهنویسی مختلفی نظیر ++C، جاوااسکریپت، هسکل، تایپ اسکریپت، CMake و بسیاری دیگر نوشته شده است.
در رابطه با Ethereum Virtual Machine و بلاک چین اتریوم، تازه در ابتدای مسیر هستیم و مشابه بسیاری از اتفاقات دیگر نظیر تکامل کامپیوترهای شخصی در دهه 90 میلادی به سوی موجودیتهای پردازنده قدرتمند امروزی، در آینده نزدیک نیز سرعت، پیچیدگی و توانایی ماشین مجازی این شبکه افزایش خواهد یافت.
با این حال، EVMها کامل نیستند و چالشهای مربوط به توان عملیاتی شبکه و سرعت تراکنشها همچنان یکی از مشکلات بزرگ این سیستم بهشمار میرود. در حال حاضر، این مسائل نقاط تمرکز اصلی جامعه توسعه اتریوم هستند و بهبود آنها، نقشه راهی برای ادامه استفاده و موفقیت این بلاک چین خواهد بود. اگر قرار باشد اتریوم به وعده برپایی انقلاب در نحوه تعامل و ارتباطات ما عمل کند، قطعا این کار نیاز به بهبود و پیشرفت در ماشین مجازی خود خواهد داشت.
تهیه شده در بیت 24