سولانا بهعنوان یک بلاک چین نسل جدید با مقیاسپذیری بسیار بالا، توجه زیادی را به خود جلب کردهاست. این بلاک چین بهواسطه عملکرد فوقالعادهای که دارد، میتواند هزاران تراکنش در ثانیه را با کارمزد بسیار ناچیز پردازش کند. یکی از عناصر کلیدی فناوری پیشرفته سولانا محیط اجرای آن یعنی ماشین مجازی سولانا یا (Solana Virtual Machine) SVM است.
ماشین مجازی اتریوم (EVM) برای مدت زیادی استاندارد غالب ماشین مجازی در دنیای کریپتو بود. به دلیل ویژگیهای خلاقانه ماشین مجازی سولانا بررسی خواهیم کرد که این ماشین مجازی چگونه بهواسطه راهحلهای رول آپ (rollup) مانند نیترو (Nitro) و اکلیپس (Eclipse) به تدریج در حال گسترش و سبقتگرفتن از رقیب اتریومی خود است. در این مقاله به بررسی ماشین مجازی سولانا و زیرساخت نوآورانهی آن میپردازیم که این بلاک چین را نسبت به بلاک چینهای مبتنی بر ماشین مجازی اتریوم قادر به ارائه عملکردی بهتر میسازد.
ماشین مجازی سولانا، یک محیط اجرایی است که تراکنشها و قراردادهای هوشمند را در شبکه سولانا پردازش میکند. هنگام پردازش تراکنش، ماشین مجازی کد قرارداد هوشمند را به فرمتی تبدیل میکند که قابل اجرا توسط سختافزار اعتبارسنجها (validators) باشد.
در سولانا، زبانهای اصلی برای نوشتن قراردادهای هوشمند سی (C)، راست (Rust) و سی پلاس پلاس (++C) هستند. ماشین مجازی سولانا کدهای نوشته شده در این زبانها را به بایت کد BPF تبدیل میکند. این بایت کدها امکان اجرای بهینه تراکنشها توسط نودهای شبکه را فراهم میکنند.
بیشتر بخوانید: نود یا گره (Node) چیست؟
نودهای شبکه سولانا، که به عنوان اعتبارسنجها شناخته میشوند، هرکدام یک محیط مجزای از ماشین مجازی سولانا را اجرا میکنند تا توافق و هماهنگی در سراسر بلاک چین بهوجود بیاید. هنگامی که یک قرارداد هوشمند منتشر میشود و وضعیت شبکه را تغییر میدهد، تغییرات لازم در وضعیت را به محیط اجرایی اعلام میکند.
محیط اجرایی سولانا این تغییرات را به نمونههای ماشین مجازی سولانا که در هر سیستم اعتبارسنج فعال هستند، منتقل میکند؛ بهطوری که همه نودهای تأییدکننده نسخهای از آن را دریافت، تفسیر و سپس بلاک چین را بهروزرسانی میکنند.
توزیع نمونهها در میان اعتبارسنجها منجر به ایجاد یک شبکه غیرمتمرکز میشود و خطر حملات دی داس (DDoS) یا تعطیلی شبکه را کاهش میدهد. همچنین، این جداسازی تضمین میکند که در صورت وجود باگها یا آسیبپذیریهای احتمالی در یک قرارداد هوشمند، امنیت یا پایداری کل شبکه سولانا به خطر نمیافتد.
در مجموع، این نمونههای ماشین مجازی سولانا را میتوان بهعنوان مینی کامپیوترهایی در نظر گرفت که عملیات لازم برای بهروزرسانی وضعیت شبکه سولانا را بر اساس دستورالعملهای ارائهشده توسط تراکنشها انجام میدهند. در حالی که بسیاری از بلاک چینها امروزه به ماشین مجازی اتریوم متکی هستند، سولانا ماشین مجازی خود را توسعه داده که با قابلیتهای منحصربهفردش عملکرد بهتری را ارائه میدهد.
برای درک بهتر ماشین مجازی سولانا، باید بفهمیم یک ماشین مجازی چگونه در شبکه کار میکند. بهطور سنتی، کاربران از ماشین مجازی بهعنوان محیطهای ایزوله و کاملاً جدا از سیستمعامل اصلی کامپیوتر خود استفاده میکنند. در حالی که ماشینهای مجازی سنتی محیطهای ایزوله هستند، ماشینهای مجازی بلاک چینی به عنوان لایه اجرایی شبکه برای برنامههای غیرمتمرکز عمل میکنند.
ماشینهای مجازی بلاک چینی به صورت غیرمتمرکز هستند، بهطوری که هر گره در شبکه یک نمونه از ماشین مجازی بلاک چین را روی دستگاه خود اجرا میکنند. در واقع، ماشین مجازی (VM) یک نرمافزار است که برنامهها را اجرا میکند و بیشتر بهعنوان محیط اجرای قراردادهای هوشمند در یک شبکه شناخته میشود.
هنگامی که یک تراکنش ارسال میشود، ماشین مجازی شبکه مسئولیت پردازش آن و مدیریت وضعیت بلاک چین (وضعیت فعلی کل شبکه) را که تحت تأثیر اجرای این تراکنش قرار گرفته است، بر عهده دارد. در واقع تغییرات حالت را محاسبه کرده و برای دستیابی به اجماع و اطمینان از ثبت صحیح سوابق تراکنشها در شبکه نظارت میکنند. قوانین خاص برای تغییر وضعیت شبکه توسط ماشین مجازی تعریف میشوند.
مولفه اصلی ماشین مجازی سولانا موتور سی لول است. این موتور امکان مقیاسپذیری افقی (Horizontal Scaling) را در محیط اجرای سولانا فراهم میکند. همچنین قراردادهای هوشمند را بدون اینکه بر عملکرد یکدیگر تأثیر بگذارند بهطور همزمان اجرا میکند. به این مفهوم پردازش موازی میگویند.
این امر به دلیل قابلیت قراردادهای هوشمند سولانا در توصیف وضعیت دادههایی است که در محیط اجرایی خوانده یا نوشته میشوند. این امکان به تراکنشها اجازه میدهد که بدون تداخل و بهطور همزمان اجرا شوند.
بهواسطه این قابلیت، سی لول به ماشین مجازی سولانا کمک میکند که دهها هزار تراکنش را بهطور همزمان پردازش کند؛ برخلاف ماشین مجازی اتریوم که تراکنشها را بهصورت تکبهتک پردازش میکند.
شبکه سولانا با ماشین مجازی خود مسیر جدیدی را برای خود ایجاد کردهاست. با رشد اکوسیستم ماشین مجازی سولانا، این ماشین مجازی در زمینه کاربرد و پذیرش با رقیب اتریومی خود رقابت خواهد کرد. هر دو ماشین مجازی قادر به پردازش تراکنشهای قرارداد هوشمند برای شبکههای بلاک چین هستند. هر دو نیز در شبکههای بلاک چینی مختلف بهکار گرفته میشوند. در ادامه، تفاوتهای کلیدی این دو بررسی میشود.
زبان برنامهنویسی سالیدیتی (Solidity) بهطور خاص برای ماشین مجازی اتریوم توسعه یافته و اقتباسی از زبان جاوا اسکریپت (Java Scrypt) است که یادگیری آن را آسانتر میسازد. سالیدیتی،مانند جاوا اسکریپت و بسیاری از زبانهای برنامهنویسی سطح بالا، شیگرا است و متغیرها با استفاده از اشیا و کلاسها تعریف میشوند. این زبان با تمرکز بر امنیت بهعنوان زبان برنامهنویسی قراردادهای هوشمند و ماشین اتریوم طراحی شدهاست.
بیشتر بخوانید: زبان برنامه نویسی سالیدیتی چیست؟
در مقابل، راست (Rust) یک زبان برنامهنویسی عمومی است که برای قراردادهای هوشمند و دیگر کاربردها قابل استفاده است. اگرچه یادگیری راست دشوارتر است، این زبان بهخاطر چابکی، بهرهوری حافظه و توانایی اجرای همزمان شناخته شدهاست که با تمرکز سولانا بر مقیاسپذیری همخوانی دارد.
بیشتر بخوانید: مقیاس پذیری در بلاک چین چیست؟
بر اساس اطلاعات شبکه، شبکه سولانا سرعت تراکنشی بیش از ۳۷۰۰ TPS (تراکنش بر ثانیه) دارد و کارمزد تراکنشها حدود ۰.۰۰۱ دلار است. در مقایسه با شبکههای اتریوم مانند بیس نتورک (Base Network) با سرعت حدود ۴۷ TPS و کارمزد تراکنش حدود ۰.۰۳ دلار، شبکه سولانا بهطور قابل توجهی از نظر هزینه و زمان کارایی بالاتری دارد.
در حالی که هر دو ماشین مجازی عملکردی مشابه دارند اما ماشین مجازی سولانا بسیار کارآمدتر و سریعتر است. در نمونه اتریومی، هنگامی که یک قرارداد هوشمند یک دلار را از موجودی کاربر انتقال میدهد، این تراکنش در فضای ذخیرهسازی قرارداد ذخیره میشود. این طراحی میتواند در تراکنشهای همزمان و با تعداد بالا تاخیر و مشکلات دیگری ایجاد کند.
بهعنوان مثال، دو قرارداد هوشمند مختلف ممکن است بهطور همزمان سعی در خرج کردن موجودی یک کاربر داشته باشند که این یعنی موجودی در حال بهروزرسانی است. حالا فرض کنید قرارداد دیگری بخواهد همان موجودی را بخواند. این تداخل باعث ناسازگاری و ایجاد مشکل در عملکرد میشود.
در مقابل، مدل سولانا دادههایی مانند موجودی کاربران را برای سازماندهی و کارایی بهتر از یکدیگر جدا میکند. یک تراکنش در سولانا باید دادههایی که قرار است قبل از اجرا در ماشین مجازی خوانده یا تغییر دهد را بهصورت واضح و صریح مشخص کند. همانطور که قبلا هم گفتیم، این امکان به برنامههایی که با دادههای یکسان تعامل ندارند اجازه میدهد همزمان اجرا شوند. از مزایای این امکان میتوان به کاهش ازدحام تراکنشها و کارمزد اشاره کرد.
یکی از دلایلی که ماشین مجازی اتریوم در پردازش همزمان چندین تراکنش مشکل دارد، تکریسمانی بودن محیط اجرایی آن است که تنها قادر به پردازش یک قرارداد در هر لحظه است. بهدلیل این طراحی، ماشین مجازی اتریوم نمیتواند از سختافزارهای چند هستهای بهطور بهینه استفاده کند؛ در نتیجه تنها یکی از هستههای سختافزار اعتبارسنج به پردازش تراکنشها مشغول است؛ در حالی که دیگر هستهها بلااستفاده باقی میمانند.
این محدودیت اغلب به ازدحام شبکه و کارمزدهای بالاتر منجر میشود. البته باید توجه داشت که عوامل دیگری هم در محدودیتهای ماشین مجازی اتریوم نقش دارند. بهعنوان مثال این ماشین مجازی تمایل دارد پیشنیازهای سختافزاری برای اجرای نودها را در حداقل مقدار ممکن نگه دارد.
در مقابل، سی لول عملکرد محیط اجرایی سولانا را با استفاده بهینه از منابع سختافزاری در دسترس بهبود میدهد. ماشین مجازی سولانا یک محیط اجرایی چند ریسمانی است که برای پردازش همزمان چندین تراکنش با استفاده از تمامی هستههای موجود در دستگاه اعتبارسنج طراحی شدهاست.
این ویژگی به سولانا اجازه میدهد تا متناسب با بهبود سختافزار اعتبارسنجها، مقیاسپذیری خود را افزایش دهد. همچنین معماری ماشین مجازی سولانا مدیریت کارمزد تراکنشها را بهبود دادهاست.
این معماری اجازه میدهد کارمزدها برای هر قرارداد هوشمند بهصورت جداگانه و محلی تعیین شوند؛ در حالی که زنجیرههای مبتنی بر ماشین اتریوم به کارمزدهای جهانی متکی هستند. به این معنی که مینت کردن NFT میتواند بر تراکنشهای دیگری مانند سواپ یا تراکنشهای دیفای تأثیر بگذارد، حتی اگر این تراکنشها هیچ ارتباطی با هم نداشته باشند.
به همین دلایل، قابلیتهای پردازش موازی به سولانا امکان میدهد که به نرخ تراکنشهای (TPS) بالاتری دست یابد. نرخ تراکنش بالاتر منجر به سرعت تراکنش بالاتر و کارمزدهایی تقریباً ناچیز نسبت به معماری اتریوم است.
این ویژگیها ماشین مجازی سولانا را بهعنوان یک محیط بلاک چین نسل جدید معرفی میکند که بسیار کارآمدتر و با عملکرد بهتر است. با افزایش آگاهی توسعهدهندگان از این مزایا، شاهد پذیرش بیشتر ماشین سولانا بهعنوان محیط اجرایی قراردادهای هوشمند هستیم. در واقع یک اکوسیستم در حال ظهور از رول آپهای ماشین مجازی سولانا نیز در حال شکلگیری است.
ماشین مجازی سولانا | ماشین مجازی اتریوم | |
---|---|---|
پردازش تراکنشها | محیط چند ریسمانی پردازش تراکنشها | محیط تک ریسمانی پردازش تراکنشها |
مدیریت دادهها | قراردادهای هوشمند سولانا تمام حالتهایی را که یک تراکنش در طول اجرا میخواند یا مینویسد توصیف میکنند. | تراکنشها بهصورت ترتیبی اجرا میشوند، بنابراین، نیازی به اعلام حالتها پیش از اجرا نیست. |
زبان برنامهنویسی | Rust و C++ | Solidity، Vyper، JavaScript |
سرعت | سریع | کند |
موارد استفاده | سولانا، اکلیپس و نیترو | مورد استفاده در بسیاری از زنجیرههای جانبی، شبکههای لایه اول و لایه دوم |
بازار کارمزد | جهانی و محلی | جهانی |
رول آپ نوعی راهحل مقیاسپذیری برای بلاک چین است که تراکنشها را خارج از بلاک چین لایه ۱ (مثلاً سولانا) پردازش میکند. سپس دادهها را بهصورت برگشتی به لایه ۱ میفرستد. هدف رول آپها کاهش ازدحام شبکه و کارمزدهای تراکنش است، بهطوری که چندین تراکنش را در قالب یک «اثبات» تجمیع کرده و سپس به زنجیره اصلی ارسال میکنند.
بزرگترین مزیت ساخت رول آپ، قابلیت سفارشیسازی کامل زنجیره است. این سفارشیسازی امکان استفاده در موارد مختلف را فراهم میکند. بهعنوان مثال طراحی دفتر سفارشات یا اوردربوک خاص، ممپولهای رمزگذاری شده برای کاهش MEV (بیشترین ارزش قابل استخراج توسط ماینر) یا برنامههای دارای مجوز که برای تأمین نیازهای خاصی طراحی شدهاند.
ماشین مجازی به توسعهدهندگان کمک میکند که اجرای برنامه روی زنجیرههای دیگر با همان ماشین مجازی سادهتر انجام شود. این اثر شبکهای به نفع اتریوم و ماشین مجازی آن است چون اولین محیط اجرایی برای قراردادهای هوشمند رمزنگاری بود.
از میان دو نوع رول آپ، یعنی آپتیمیستیک (Optimistic) و زی کی (Zk)، رول آپهای آپتیمیستیک مانند آربیتروم رایجتر هستند. اخیراً، ماشین مجازی سولانا در فراهمسازی فناوری رول آپ برای توسعهدهندگان سولانا پیشرفتهای قابل توجهی داشتهاست. پروژههای اصلی که در حال ساخت رول آپ برای سولانا هستند، شامل نیترو و اکلیپس میشوند.
بیشتر بخوانید: آربیتروم چیست؟
نیترو مثل آربیتروم یا آپتیمیسم یک راهحل رولآپ آپتیمیستیک است که از ماشین مجازی سولانا استفاده میکند تا به توسعهدهندگان سولانا امکان دهد که برنامههای غیرمتمرکز (dApp) خود را به اکوسیستمهای مختلف منتقل کنند.
بیشتر بخوانید: آپتیمیزم (Optimism) چیست؟
نیترو ابتدا بر روی سی (Sei)، یک زنجیره تجاری خاص در کازماس (Cosmos)، راهاندازی میشود و سپس به زنجیرههای دیگر گسترش خواهد یافت. این راهحل برای اجرای تراکنشهایی با موازیسازی از ماشین مجازی سولانا استفاده میکند؛ به این معنی که کاربران قادر خواهند بود همانند سولانا عمل کنند، در حالی که نیترو از سی برای تسویه و توافق استفاده میکند.
با توجه به اینکه سی بخشی از اکوسیستم کازماس است، پروژهها و کاربران نیترو میتوانند از فناوری بینزنجیرهای IBC بهرهمند شوند و به داراییها و نقدینگی کازماس دسترسی داشته باشند.
راهحل رولآپ بعدی، اکلیپس است که هدف آن تسهیل اجرای رول آپهای قابل سفارشیسازی است. رولآپهای آپتیمیستیک اکلیپس به پروژهها این امکان را میدهند که زنجیرههای اپلیکیشن خاص خود را بسازند و در عین حال از امنیت شبکههای معتبر (مانند اپ چینهای کازماس، پالیگان، اتریوم) بهرهمند شوند و از ماشین مجازی سولانا استفاده کنند.
ماشین مجازی سولانا به عنوان محیط اجرایی عمل میکند. در حالی که اکلیپس مسئول تسویه، توافق و مدیریت دسترسی به دادهها (DA) با استفاده از شبکه لایه ۱ انتخابی توسط توسعهدهنده است. در حال حاضر، اکلیپس راهحلهای رولآپ آپتیمیستیک ارائه میدهد، اما در حال کار بر روی رول آپهای زی کی نیز هستند.
اکلیپس تاکنون دو راهحل رول آپ که بر پایه ماشین مجازی سولانا ساخته شدهاند را معرفی کردهاست:
همه این راهحلها استفاده از ماشین مجازی سولانا را سادهتر میکند و دسترسی به آن را گسترش میدهد. کاربران از زنجیرههای دیگر هم قادر خواهند بود که بدون هیچ مشکلی از پردازش موازی سولانا استفاده کنند. این کار میتواند برتری ماشین مجازی سولانا را به کاربران سایر شبکهها اثبات کرده و کاربران بیشتری را برای سولانا جذب کند.
با وجود اینکه تنها چهار سال از آغاز فعالیت سولانا میگذرد، این شبکه عملکرد چشمگیری از خود نشان دادهاست. توسعه راهحلهای مقیاسپذیری مانند نیترو و اکلیپس بر بستر ماشین مجازی آن موفقیت این معماری نوآورانه را برجسته کردهاست.
سولانا از چالشهای شبکههای قدیمیتر مانند بیت کوین و اتریوم درس گرفتهاست. بیت کوین برای قراردادهای هوشمند طراحی نشده بود و این محدودیت به ظهور اتریوم منجر شد. به همین ترتیب، اتریوم برای پذیرش گسترده و تراکنشهای سریع آماده نبود که راه را برای سولانا و پردازش موازی هموار کرد. افزون بر این، دسترسی به محیط ماشین مجازی سولانا برای توسعهدهندگان آسانتر شده است.
نئون لبز (Neon Labs) سازگاری سالیدیتی (Solidity) با محیط اجرایی سولانا را بیشتر کردهاست. همچنین ارتقا آتی Runtime v۲ به توسعهدهندگان این امکان را میدهد که برنامههای غیرمتمرکز سازگار با سولانا را با استفاده از زبانهای برنامهنویسی متنوعی مانند موو (Move) بسازند.
محیط اجرایی پیشرفتهای که با قابلیت پردازش موازی، تراکنشها و قراردادهای هوشمند را در شبکه سولانا با سرعت و کارمزد پایین پردازش میکند.
موتور اصلی ماشین مجازی سولانا که اجازه میدهد قراردادهای هوشمند بهطور همزمان و بدون تداخل اجرا شوند.
سولانا از پردازش موازی چندریسمانی استفاده میکند، در حالی که اتریوم تکریسمانی است و تراکنشها را یکییکی پردازش میکند.
زبانهای راست (Rust)، سی (C) و سیپلاسپلاس (++C).
بیش از ۳,۷۰۰ تراکنش در ثانیه با کارمزد حدود ۰.۰۰۱ دلار.
ماشین مجازی سولانا یک محیط پیشرفته برای ساخت برنامههای نسل بعدی ارائه میدهد. پردازش موازی تراکنشها نرخ بالاتری از تراکنشها را ممکن میسازد. مشابه آنچه که در امور مالی سنتی وجود دارد، در این ماشین مجازی توسعهدهندگان میتوانند بدون نگرانی درباره محدودیتهای سرعت یا کارمزدها، هر نوع محصولی بسازند.
ساخت برنامههای غیرمتمرکز بر زنجیرهای با نرخ ۱۵ تراکنش در ثانیه، نمیتواند ارزهای دیجیتال را به پذیرش عمومی برساند. با بهرهگیری از ماشین مجازی سولانا و سی لول ، سولانا هماکنون قادر است هزاران تراکنش را بدون ازدحام یا کارمزد قابل توجه پردازش کند و محیطی ایدهآل برای ساخت برنامههای جدید فراهم کند. با بهبود سختافزار اعتبارسنجها، سولانا قادر خواهد بود تراکنشهای بیشتری را به صورت موازی پردازش کند. همین امر فاصله بین سولانا و اتریوم را افزایش داده و کاربران بیشتری را جذب سولانا خواهد کرد.