ماشین مجازی چیست؟
بیت کوین در سال ۲۰۰۹ با ایدهی ایجاد یک دفترکل غیرمتمرکز متولد شد. ساتوشی ناکاموتو، خالق بیت کوین، سیستمی طراحی کرد که در آن دادهها بدون نیاز به مدیریت یک نهاد مرکزی ثبت و صحتسنجی میشدند. بهترین کاربرد این سیستم، ثبت و ذخیرهی اطلاعات تراکنشهای مالی بود. برای مثال، در بلاکچین ثبت میشود که سپهر به اشکان مقداری پول داده است و زمانی که اشکان این پول را خرج میکند، وضعیت جدید مالی او نیز در بلاکچین ثبت میشود.
پس از این نوآوری جذاب، اتریوم با ایدهای انقلابی شکل گرفت. ایدهی اصلی اتریوم این بود: حالا که توانستیم دادهها را در یک فضای ذخیرهسازی غیرمتمرکز ساماندهی کنیم، چرا قابلیتهای جدیدی به آن اضافه نکنیم؟ ویتالیک بوترین، خالق اتریوم، مفهوم «قراردادهای هوشمند» را به دنیای بلاکچین معرفی کرد. بلاکچینی که او طراحی کرد، مانند یک کامپیوتر عمل میکرد؛ یعنی نهتنها دادههای مربوط به حساب افراد را ذخیره میکرد، بلکه پردازشهایی نیز روی این دادهها انجام میداد. برای مثال، با استفاده از یک قرارداد هوشمند میتوان برنامهای نوشت که بهصورت خودکار، پس از دریافت وجه از سپهر، همان وجه را به اشکان ارسال کند.
بنابراین، اگر بیت کوین یک دفترچهی یادداشت غیرمتمرکز بود، اتریوم مانند یک کامپیوتر عمل میکرد که علاوه بر ثبت و ذخیرهسازی دادهها بهصورت غیرمتمرکز، امکان پردازش و اجرای توابع مختلف روی این دادهها را فراهم میساخت. این کامپیوتر، که قراردادهای هوشمند را پردازش میکند، «ماشین مجازی اتریوم» یا EVM نامیده شد.

آیا ماشین مجازی همان لایه اجرایی است؟
در واقع، هر نود اعتبارسنج (Validation Node) در اتریوم یک کامپیوتر است که نرمافزار اتریوم روی آن نصب شده است. هنگامی که کاربری درخواستی را در بلاکچین اتریوم ثبت میکند، این درخواست به نودها ارسال میشود. نودها این درخواستها را، که میتواند یک تراکنش ساده یا یک الگوریتم پیچیدهی مالی باشد، پردازش میکنند، دادهها را میخوانند، تغییرات لازم را روی آنها اعمال میکنند و سپس وضعیت جدید بلاکچین را به نودهای دیگر مخابره میکنند. اگر تضادی در دادهها وجود نداشته باشد، دادههای جدید در یک بلاک در بلاکچین ثبت میشوند و این روند به همین شکل ادامه مییابد. به ماشین مجازی هر بلاکچین، لایه اجرایی (Execution Layer) آن بلاکچین نیز گفته میشود؛ زیرا این لایه مثل یک CPU است که کدها را میخواند و پردازشها را اجرایی میکند.
ماشین مجازی سولانا چطور کار میکند؟
ماشین مجازی سولانا یا SVM، دقیقا همان کار ماشین مجازی اتریوم (Ethereum Virtual Machine) را انجام میدهد؛ اما با سرعت و بهرهوری بسیار بالاتر. توسعهدهندگان ماشین مجازی سولانا، تغییراتی در معماری این کامپیوتر ایجاد کردهاند که باعث شده تراکنشها در آن با سرعت بالاتری اجرا شوند. همچنین کامپیوترها منابع خود را به شکل بهینهتری برای پردازش قراردادهای هوشمند مصرف میکنند که باعث میشود کارمزدها در این شبکه بسیار کمتر از شبکههای مشابه باشد. در مجموع، ویژگیهایی که بلاکچین سولانا، به لطف ماشین مجازی سولانا به آنها دستیافته طبق جدول زیر است:
ویژگی | توضیحات |
---|---|
حداکثر سرعت (به صورت تئوری) | حدود ۶۵ هزار تراکنش در ثانیه |
حداکثر سرعت (در عمل) | بین ۲ تا ۵ هزار تراکنش در ثانیه دیده شده است |
میانگین زمان تولید بلاک | حدود ۴۰۰ میلی ثانیه |
میانگین کارمزد هر تراکنش | حدود ۰.۰۰۰۱ دلار |
زمان نهایی شدن هر تراکنش | کمتر از یک ثانیه |
تراکنشها در SVM چطور پردازش میشوند؟
فرض کنید یک تراکنش به بلاکچین سولانا ارسال میشود. مثلا سپهر ۰.۵ سولانا به اشکان ارسال میکند. این درخواست (کسر ۰.۵ سولانا از حساب سپهر و افزایش ۰.۵ سولانا به حساب اشکان) وارد ماشین مجازی سولانا میشود. حالا بررسیهای لازم انجام میشود: آیا سپهر اصلا ۰.۵ سولانا موجودی دارد؟ آیا سپهر با کلیدخصوصی خود تراکنش را امضا کرده است؛ یعنی مالک دارایی بوده است؟ پس از انجام این بررسیها، کامپیوتر کوچک سولانا که همان ماشین مجازی سولانا است، تغییرات لازم را اعمال میکند؛ یعنی از موجودی سپهر میکاهد و به موجودی اشکان میافزاید. سپس این تغییرات را به نودهای دیگر نیز خبر میدهد. آن نودها نیز در همین زمان در حال پردازش همین دادهها بودهاند، بنابراین اکثر نودهای شبکه وضعیت جدید بلاکچین را به یکدیگر ارسال میکنند. در صورتی که این نودها به اجماع برسند، طبق الگوریتم اجماع سولانا که نوعی از اثبات سهام (Proof of Stake) است، یک ولیدیتور انتخاب میشود تا بلاک جدید را در بلاکچین ثبت کند و این روند به همین شیوه تکرار میشود.
تا اینجا، همه چیز شبیه به اتریوم بود. پس تفاوت کجاست؟
پردازشهای موازی: Sealevel چه نقشی در ماشین مجازی سولانا دارد؟
حال میخواهیم با Sealevel، برگ برنده ماشین مجازی سولانا آشنا شویم. Sealevel، موتور و مکانیزمی است که به ماشین مجازی سولانا امکان میدهد چند تراکنش را به صورت همزمان پردازش کند. فرض کنید چند تراکنش و قرارداد هوشمند که مربوط به یک حساب است به شکل زیر به بلاکچین ارسال شده است:
- سپهر ۰.۵ سولانا استیک میکند.
- سپهر ۰.۲ سولانای دیگر را در ازای یک توکن جدید، با شرط زیر میفروشد.
- توکن جدید تنها در صورتی خریداری میشود که قیمتش به ۰.۱ سولانا برسد.
- اگر تا ۲۴ ساعت قیمت توکن به ۰.۱ سولانا نرسید، باقی دارایی سپهر به یک استخر نقدینگی واریز شود.
در این تراکنشها و الگوریتمها، عوامل مختفی وجود دارد که رخ دادن یا ندادن هر کدام میتواند وضعیت تراکنشها را به سمت و سویی جدید ببرد. پس نیاز است که این گامها به صورت بهترتیب و پشت سر هم اجرا شوند. مثلا اگر تمام دارایی سپهر استیک شود، دیگر سولانایی باقی نمیماند که توکن فرضی خریداری شود؛ در صورتی که در گام دوم ذکر شده که در صورت رسیدن قیمت توکن فرضی به ۰.۱، این توکن باید خریداری شود. پس تمام این مراحل باید پشت سر هم و به صورت سری اجرایی شوند. اما همیشه اینطور نیست!
حال تراکنشهای زیر را نگاه کنید:
- سپهر ۰.۱ سولانا به اشکان میدهد.
- شبنم ۰.۳ سولانا استیک میکند.
- اشکان ۰.۱ سولانا میفروشد تا یک توکن جدید بخرد.
این دستورات میتوانند به صورت موازی و در کنار هم اجرا شوند؛ زیرا مربوط به حسابهای مختلفی هستند و نیاز نیست از نظر زمانی پشت سر هم اجرا شوند.

تفاوت اصلی ماشین مجازی سولانا و اتریوم در چیست؟
ایده جذاب SVM اینجا پیادهسازی شده است؛ یک ساز و کار برای فیلتر کردن دستورات، که تشخیص میدهد کدامها میتوانند به موازات هم اجرایی شوند و کدامها باید پشت سر هم اجرا شوند. این تکنیک باعث شده تا تراکنشها و قراردادهای هوشمند سولانا در کنار هم و به صورت موازی پردازش شوند و سرعت شبکه بسیار بالا برود. در ماشین مجازی اتریوم تمام تراکنشها، حتی آنهایی که با هم تداخلی ندارند، به صورت سری و خط به خط اجرا میشوند. این ویژگی حتی در نحوه استفاده از سختافزار نیز بهینهسازی شده است. به صورتی که ماشین مجازی اتریوم، تنها از یک هسته سختافزار استفاده میکند؛ اما ماشین مجازی سولانا، از تمام هستههای CPU کامپیوتر استفاده میکند و تراکنشها و پردازشها را به صورت موازی در کنار هم و با استفاده از تمام هستههای سختافزار، اجرایی میکند.
بازار محلی کارمزدها در ماشین مجازی سولانا
حالا نوبت به ایده جذاب دوم ماشین مجازی سولاناست: بازار محلی کارمزدها. همانطور که میدانید، فعالیتهای مختلفی در بلاکچین انجام میشود. بعضیها میخواهند یک انتقال ساده پول انجام دهند، برخی میخواهند از یک صرافی غیرمتمرکز خرید کنند و هنرمندان نیز مشغول ثبت ان اف تیهای خود هستند. در ماشین مجازی اتریوم، تمام این فعالیتها در کنار هم سنجیده میشوند، کارمزدها مقایسه میشوند و در نهایت کسانی که کارمزد بیشتری دادهاند در اولویت قرار میگیرند و نودهای اعتبارسنج، تراکنشها و پردازشهایشان را انجام میدهند. ماشین مجازی سولانا اما کمی عادلانهتر عمل میکند.
نقل است که کارل مارکس، فیلسوف آلمانی، شعاری داشته:
از هرکس به اندازه تواناییاش، به هرکس به اندازه نیازش.
این جمله هرچند در بستر اقتصاد سیاسی گفته شده و اشاره به ایدههای برابریخواهانه او دارد؛ اما به شکل جالبی میتواند در توضیح معماری بلاکچین سولانا نیز به کار رود. در سولانا، به لطف ماشین مجازی Sealevel و ساختار پردازش موازی آن، کارمزد تراکنشها به صورت محلی و متناسب با نوع فعالیت کاربر تعیین میشود. یعنی اگر کاربری تنها یک تراکنش ساده انتقال توکن انجام دهد، لازم نیست وارد رقابت کارمزدی با کسی شود که مشغول ثبت NFT یا تعامل پیچیده با قراردادهای هوشمند است. این تکنیک باعث شده کارمزدها منصفانهتر محاسبه شوند و هر کاربر فقط با همتایان خودش به رقابت بر سر کارمزد بپردازد.

مقایسه EVM و SVM

تا اینجا، توضیح دادیم که ماشین مجازی سولانا چطور کار میکند و چه برتریهایی نسبت به ماشین مجازی اتریوم دارد. حال، بیایید این مقایسه را کمی عمیقتر کنیم.
- SVM با استفاده از Sealevel تراکنشهایی را که همپوشانی ندارند، به صورت همزمان اجرا میکند؛ در نتیجه سرعت بالاتر و هزینه کمتری دارد.
- EVM تنها یک تراکنش یا قرارداد را در هر لحظه پردازش میکند که باعث تشکیل صف برای پردازش و هزینههای بیشتر میشود.
- SVM ابتدا مشخص میکند هر قرارداد هوشمند نیاز به خواندن و تغییر چه دادههایی را دارد. سپس متوجه میشود که کدامها را میتواند به صورت موازی پردازش کند و کدامها باید پشت سر هم بررسی شوند.
- EVM از زبان برنامهنویسی Solidity استفاده میکند که برای قراردادهای هوشمند طراحی شده است. سولانا و SVM از زبان Rust استفاده میکند که در عملکرد و ایمنی سطح بالاتری دارد.
- مدل بازار محلی کارمزدها در SVM باعث میشود فعالیتهای سنگینتر مثل ضرب NFT، بر سایر تراکنشها اثر نگذارد، در حالی که در EVM، همه تراکنشها در یک بازار کارمزدی رقابت میکنند و نتیجه این میشود که در دوره هایپ ان اف تیها در سال ۲۰۲۱، یک تراکنش ساده اتریوم میتوانست ۲۰ دلار کارمزد داشته باشد.
ویژگی | ماشین مجازی سولانا یا SVM | ماشین مجازی اتریوم یا EVM |
---|---|---|
سرعت پردازش تراکنشها | پردازش موازی و سریع | پردازش تکی و کند |
نحوه مدیریت دادهها | ابتدا نیازهای یک قرارداد هوشمند بررسی میشود، سپس آنهایی که با هم تداخل ندارند به صورت موازی پردازش میشوند. | تمام پردازشها به ترتیب و به صورت خطی پردازش میشوند. |
زبانهای برنامهنویسی | Rust و C++ | Solidity, Vyper, JavaScript |
کارمزدها | فعالیتهای یکسان در کنار هم دستهبندی میشوند و با هم رقابت میکنند. | تمام فعالیتها با یکدیگر رقابت میکنند. |
نودها | نیاز به پردازندههای قوی، هر کسی نمیتواند نود سولانا شود | به علت پردازشهای غیرموازی، برای اعتبار سنجی نیاز به سختافزار قوی نیست |
مزایای و معایب ماشین مجازی سولانا
ماشین مجازی سولانا، با پردازشهای موازیای که با کمک Sealevel انجام میدهد، به سرعت بالا و کارمزد پایین دست یافته است. با این حال، کار کردن با SVM به علت پیچیدگیهای بیشتری که معماری آن دارد، کمی سختتر است و برنامهنویسان آن باید درک عمیقتری از معماری بلاکچین داشته باشند. همچنین سولانا در حال حاضر فقط سه سال دارد! بنابراین اکوسیستم توسعهدهندگان آن به اندازه اتریوم و EVM بزرگ نیست و ابزارهای برنامهنویسی زیادی برای آن ساخته نشده است.
این نکته هم نباید فراموش شود که سولانا تا به حال چندین بار با شکست مواجه شده؛ یعنی بار پردازشی لایه اجرایی (همین کامپیوتر ماشین مجازی) به قدری زیاد شده است که نودها نتوانستهاند به اجماع برسند؛ دادهها طوری در هم تنیده شدهاند که کل سیستم متوقف شده و این کلاف سردرگم به صورت دستی باز شده و وضعیت بلاکچین با مداخله تیم توسعهدهنده سامان یافته است. این مشکل، خطر بسیار زیادی برای تمرکززدایی این بلاکچین دارد و اگر این گونه مشکلات تکرار شود، اعتماد به سولانا کم خواهد شد. از طرفی، نودهای سولانا باید پردازشهای زیادی را در لحظه انجام دهند؛ پس برای این که بتوانید یک نود سولانا شوید باید سختافزارهای مرغوب در اختیار داشته باشید. این نیاز باعث شده سولانا به نسبت بلاکچینهای دیگر مثل اتریوم، متمرکزتر عمل کند.
مزایا | معایب |
---|---|
سرعت بالا | تجربه چندین شکست و تنظیم دوباره بلاکچین به صورت دستی |
کارمزدهای پایین | متمرکزتر بودن به نسبت رقبا |
زبان برنامهنویسی با عملکرد بالا (Rust) | نیاز به سختافزارهای قدرتمند |
پروژههایی که از ماشین مجازی سولانا استفاده میکنند
پس از این که از ماشین مجازی اتریوم رونمایی شد، بسیاری از پروژهها شروع کردند به استفاده از آن. برخی از این پروژهها از نوآوری جذابی به نام Rollup استفاده کردند. رولآپها، بلاکچینهای مجزایی هستند که میتوانند قوانین و تنظیمات شخصیسازیشدهی خودشان را داشته باشند و بر بستر یک بلاکچین دیگر ساخته میشوند. حتما نام دو بلاکچین لایه دو آربیتروم و آپتیمیسم را شنیدهاید، این دو بلاکچین لایه دو از ماشین مجازی اتریوم استفاده میکنند. لایه دو ها، تراکنشها و قراردادهای هوشمند را پردازش میکنند و در نهایت نسخهای جمعبندیشده از آنها را به بلاکچین مادر (در اینجا اتریوم) ارسال میکنند. با این کا بار از روی بلاکچین اصلی برداشته میشود و مقیاسپذیری آن افزایش پیدا میکند.
با ظهور سولانا و SVM، چند پروژه شروع کردند به استفاده از قابلیتهای جذاب این ماشین مجازی و رولآپهای خودشان را طراحی کردند. تعداد رولآپهایی که از SVM استفاده میکنند هنوز به اندازه اتریوم نیست؛ اما میتوان انتظار داشت که با ویژگیهای منحصر به فرد این ماشین مجازی، به زودی شاهد پروژههای دیگری خواهیم بود که از ساز و کار ماشین مجازی سولانا استفاده میکنند تا ایدههای خودشان را بر پایه آن عملی کنند. همانطور که نیوتن زمانی گفته بود:
اگر فاصله دورتری را دیدهام با ایستادن بر شانههای غولها بوده است.
در واقع تمام این تکنولوژیها، مثل غولهایی بر شانههای یکدیگر ایستادهاند و باعث شدهاند فناوری بلاکچین مقیاسپذیرتر و تعاملپذیرتر شود.
Nitro: استفاده از SVM به عنوان یک لایه دوم بر بستر Sei
یکی از این نمونهها، Nitro است. نیترو از ماشین مجازی سولانا استفاده میکند تا توسعهدهندگان سولانا بتوانند اپلیکیشنهای غیرمتمرکز (dApp) خود را به اکوسیستمهای مختلف منتقل کنند. نیترو، مثل یک ماشین مجازی کوچک عمل میکند که عملیاتهای پردازشی را با کمک SVM انجام میدهد، سپس آنها را به بلاکچین Sei ارسال میکند و فرآیند اجماع نهایی (اعتبارسنجیها) روی این بلاکچین انجام میشود.
Eclipse: ساخت رولآپهای شخصیسازی شده، بر بستر بلاکچینهای دیگر
رولآپ دیگری که بر پایه SVM در حال توسعه است، Eclipse نام دارد که هدف آن تسهیل راهاندازی رولآپهای سفارشیسازیشده است. با کمک Eclipse میتوانید بلاکچین کوچک لایه دوم خود را بسازید که با ماشین مجازی سولانا در لایه اجرایی کار میکند؛ در حالی که در لایه اجماع از امنیت شبکههای معتبری مانند کازمس (Cosmos)، پالیگان یا اتریوم بهرهمند میشود. پس پروژه اکلیپس، امکان استفاده از ماشین مجازی سولانا را در بلاکچینهای دیگر مثل اتریوم فراهم میکند. در این معماری، SVM وظیفه اجرای تراکنشها را بر عهده دارد و در همین حال تسویه تراکنشها (Settlement یا حسابرسی نهایی، جمعبندی کردن تراکنشها پیش از ارسال به بلاکچین مادر) توسط Eclipse انجام میشود و اجماع و صحتسنجی نهایی دادهها بر عهده شبکه لایه اولی است که توسط توسعهدهنده انتخاب شده است.

جمعبندی
سولانا با وجود پنج سال فعالیت، با عملکرد چشمگیر و توسعه راهحلهای مقیاسپذیر مانند Nitro و Eclipse، توانسته کارآمد بودن معماری خود را در اجرای تراکنشها به اثبات برساند. این شبکه با درس گرفتن از چالشهای بیت کوین و اتریوم -مانند نبود پشتیبانی از قراردادهای هوشمند در بیت کوین و ناتوانی اتریوم در پردازش سریع تراکنشها- زیرساختی ایجاد کرده که پردازش سریع و موازی تراکنشها را ممکن میکند. دسترسی توسعهدهندگان به SVM نیز روزبهروز آسانتر میشود. به عنوان مثال، Neon Labs با فراهم کردن سازگاری Solidity به سولانا و نسخه جدید Runtime v2 که امکان استفاده از زبانهایی مانند Move را فراهم میکند، به رشد اکوسیستم سولانا و پذیرش بیشتر ماشین مجازی سولانا کمک کرده است.
سولانا با سرعت بالای پردازش تراکنشها و کارمزدهای بسیار اندک و پشتیبانی از برنامههای غیرمتمرکز پیچیده، بستری بینظیر برای ورود گسترده کاربران به دنیای کریپتوکارنسی فراهم کرده است. به یاد بیاورید که چطور پلتفرم Pump.fun توانست میلیونها دلار سرمایه برای خود جذب کند؛ زیرا امکان ضرب ارزان میمکوینها را به لطف ماشین مجازی سولانا فراهم کرده بود. پس باید چشم به راه بود و تماشا کرد که آیا توسعهدهندگان سولانا میتوانند راهحلهایی برای پایدارتر کردن این شبکه بیابند و ایرادات آن را رفع کنند؟
سوالات متداول
آیا ماشین مجازی سولانا بهتر از ماشین مجازی اتریوم است؟
ماشین مجازی سولانا سرعت بیشتری برای انجام تراکنشها دارد. اما باید در نظر داشته باشید که اتریوم حجم تراکنش بیشتری دارد و باید در یک مقیاس مشابه این دو فناوری را با یکدیگر مقایسه کرد.
آیا بیت کوین ماشین مجازی دارد؟
خیر بیت کوین ساختار متفاوتی نسبت به اتریوم و سولانا دارد و شامل ماشین مجازی نمیشود.
اولین نفری باشید که نظر می دهید