در مورد ماشین مجازی (Virtual Machine) بلاکچین فکر کرده اید؟
ماشین مجازی بلاکچین یک دستگاه فزیکی نیست — بلکه مانند یک کمپیوتر درون کمپیوترهای یک شبکه بلاکچین است.
شما حتا اگر متخصص در دنیای بلاکچین نیستید، برای تصمیم بهتر سرمایهگذاری نیاز به شناخت و چگونگی کارکرد آن را دارید. به همین دلیل، این پُست را باید تا آخر بخوانید.
پس از خواندن این پُست شما خواهید فهمید که ماشین مجازی بلاکچین:
- چیست
- چگونه کار میکند
- چرا برای قراردادهای هوشمند الزامی است
- و چگونه با ماشینهای مجازی معمولی فرق میکند.
ماشین مجازی بلاکچین چیست؟
قبل از اینکه ماشین مجازی بلاکچین را توضیح دهیم، اول بخوانیم که ماشین مجازی چیست.
یک ماشین مجازی یک کمپیوتر است که: شما با چند کلیک و بدون سختافزار اضافی در کمپیوتر دیگر که بنام میزبان یاد میشود تنظیم میکنید.
شما میتوانید سیستم عامل نصب کنید، فایل ذخیره کنید، اپلیکیشن راهاندازی کنید، و اینترنت وصل بسازید — اما در داخل کمپیوتر میزبان.
سیستم میزبان شما، کارهای سنگین پُشت صحنه را؛ با در اختیار گذاشتن حافظه موقت، قدرت پردازش، وحافظه اصلی خود به ماشین مجازی انجام میدهد.
در صورت که شما یک ماشین مجازی مانند سیستم عامل در کمپیوتر خود داشته باشید — ممکن است یک برنامه امنیتی را بار اول در آن امتحان کنید. چرا؟ چون نمیخواهید روی کمپیوتر اصلی خود ریسک کنید. پس از موفقیت روی کمپیوتر مجازی (ماشین مجازی) در کمپیوتر اصلی خود نصب با خیال راحت میتوانید نصب کنید.
نمونه دیگر ماشین مجازی؛ سرور خصوصی مجازی (Virtual Private Server — VPS) است که فارکس تریدرها از آن استفاده میکند.
ماشین مجازی بلاکچین هم دقیق مانند مثال ما است با این تفاوت که: این ماشین/موتور وظیفه اجرای قرارداد هوشمند را دارد که در تمام کمپوترهای شبکه بلاکچین کار میکند.
ماشین مجازی بلاکچین با تمام کمپیوترهای شبکه در ارتباط است. و اطمینان حاصل میکند که تمام اعضا عین قوانین را در زمان تعامل با قراردادهای هوشمند رعایت میکند.
چگونه یک ماشین مجازی بلاکچین کار میکند؟
ماشین مجازی یک بلاکچین سیستم عامل آن است — همانگونه که ویندوز سیستم عامل کمپیوتر است. طوری که شما میتوانید یک برنامه روی ویندوز نصب کنید، روی بلاکچین میتوانید قرارداد هوشمند راهاندازی کنید. قراردادهای هوشمند نیز برنامههای ویندوز دارای انواع و اقسام است. کیف پول هوشمند، سازمان مستقل غیرمتمرکز، و دیفای نمونههای بارز آن است.
در هر صورت؛ وظیفه عمده ماشین مجازی بلاکچین کار با قراردادهای هوشمند است — از استقرار آنها گرفته تا اجرا و بروزرسانی آنها.
1. استقرار قرارداد هوشمند (Smart Contract Deployment)
استقرار یک قرارداد هوشمند مانند راهاندازی یک برنامه کوچک روی بلاکچین است که به کمک ماشین مجازی انجام میشود. این قرارداد خودکار فعالیت کرده و نیاز به واسطهای ندارد. قوانین آن از قبل تعریف شده و خلاف آن عمل کرده نمیتواند. پس از راهاندازی یک قرارداد هوشمند؛ تغییرناپذیر، خودمختار، و در دسترس عموم کاربران شبکه مربوط قرار میگیرد.
2. اجرای تراکنشها
زمانی که یک تراکنش آغاز میگردد، ماشین مجازی بلاکچین آن را پردازش، و وضعیت بلاکچین را مطابق آن بروزرسانی میکند.
(از یاد نبریم که ماشین مجازی — مجازی است. برای پردازش از سختافزار اعتبارسنجها در شبکه استفاده میکند. و مانند یک کمپیوتر در درون کمپیوترها اما به شکل مجازی است)
یک مثال دیگر:
تصور کنید که شما با یک دیفای (DeFi) که یک قرارداد هوشمند است، برای تبدیل اتریوم به تتر ارتباط میگیرید. و این دیفای یونیسوپ (UniSwap) است. شما مقدار اتریوم سکه پرداختنی — و تتر سکه دریافتنی را انتخاب میکنید. پس از ارسال تراکنش؛ ماشین مجازی اتریوم تراکنش شما را اینگونه پردزاش میکند:
- ورودیها را بررسی میکند — آیا امضأ فرستنده درست است؟ آیا گس فی دارد؟
- تراکنشها را اجرا میکند — اگر ورودیها با اعتبار بود
- بلاکچین را بروزرسانی میکند — برای نمونه بالانس را بروزرسانی میکند
3. وضع هزینه تراکنش (گس فی)
به دلیل منابع بلاکچین محدود است، دریافت هزینه برای پردازش تراکنشها ضروری است. در غیر آن، شبکه میتواند مورد سو استفاده قرارگیرند.
اگر یک قرارداد هزینهای برای اجرا نداشته باشد رد و تغییراتِ ذخیره نمیگردد.
ماشینهای مجازی بلاکچین متمایز از دیگر ماشینهای مجازی است
اجرای قطعی، انزوا و امنیت، قابلیت تعامل پذیری، و قدرت نامتمرکز ماشین مجازی بلاکچین را از دیگر ماشینهای مجازی متمایز میسازد.
1. اجرای قطعی
هر نود (گرِه) در شبکه باید عین محاسبه را برای یک تراکنش انجام داده و نتیجه آن یکی باشند. برای اینکه یک تراکنش با موفقیت انجام شود باید نتیجه محاسباتی حد اقل 51 درصد در بیتکوین و 66 درصد اکثریت بلاکچینهای یکی باشند. به دلیل اینکه تعداد کمپیوترهای شبکه خیلی زیاد است، نتیجه قطعی است حتا اگر تعدادی قصد کلاهبرداری یا غیرفعال باشند.
در ماشینهای مجازی معمولی اینگونه نیست. چرا؟ چون این ماشینها منبع دادههای آن یکی بوده و به تنهایی محاسبه را انجام میدهد ممکن است اشتباه کند. در ضمن، ممکن است منبع اطلاعات آنها نیز نادرست باشند که میتواند سبب نتیجه نادرست باشند.
2. انزوا سازی و امنیت
منظور از انزوا جدا بودن محیط یک قرارداد هوشمند از دیگر قراردادها است. به این معنا که:
- هر قرارداد هوشمند در محیط بسته خود (سندباکس) اما درون ماشین مجازی بلاکچین کار میکند
- این جدایی سبب میگردد که بدون اجازه به منابع بیرونی و دیگر قراردادها دسترسی نداشته باشند
- کُدهای مخرب در محیط بسته کنترل شده و از خرابی کُل سیستم جلوگیری میکند
همهای موارد ذکر شده سبب میگردد که امنیت شبکه حفظ گردد — حتا اگر قراردادهای مخرب مستقر شوند.
3. قابلیت تعاملپذیری
قابلیت تعامل (Portability یا Interoperability) ویژگی ماشین مجازی بلاکچین است که اجازه میدهد یک قرارداد در محیط چندین بلاکچین کار کند.
برنامه تلگرام را در نظر بگیرید. تلگرام در همه سیستم عامل (اندروید، آیاواس، ویندوز، و مرورگر) کار میکند. در این قیاس، سیستمهای عامل را ماشینهای مجازی بلاکچینها و تلگرام را قرارداد هوشمند در نظر بگیرید.
4. تمرکز زدایی
ماشین مجازی یک شبکه تنها در یک کمپیوتر راهاندازی نشده است — بلکه در بین هزاران کمپیوتر پخش است.
اگر قدرت تصمیمگیری را وارد سازیم، هیچ کمپیوتری حق تصمیمگیری ویژه را ندارد. باید حداقل اکثریت موافق باشند تا یک تصمیم گرفته شود.
نمونههای ماشین مجازی
هر بلاکچین از خود نوع بخصوص ماشین مجازی دارد. به همینخاطر است که سرعت و کیفیت آنها متفاوت است.
در اینجا صرف از ماشینهای مجازی بعضی از شبکههای مشهور نام میبریم:
- ماشین مجازی بیتکوین (Bitcoin Virtual Machine — BVM)
- ماشین مجازی اتریوم (Ethereum Virtual Machine — EVM)
- ماشین مجازی رشتهای (Threaded Virtual Machine — TVM) بلاکچین ونوم
- وب اسمبلی ماشین مجازی پولکادات (WebAssembly Virtual Machine — WASM)
- ماشین مجازی موف (Move Virtual Machine — MoveVM) شبکه سوی
- ماشین مجازی تُن (Ton Virtual Machine — TVM)
- ماشین مجازی سولانا (Solana Virtual Machine — SVM)
محدودیتهای ماشین مجازی بلاکچین
1. سنگینی کار
ماشینهای مجازی یک لایه اضافی بین سخت افزار و اجرای کُد ایجاد میکند. این میتواند سرعت اجرا را کاهش داده و یا نیاز به منابع بیشتر برای پردازش داشته باشد. در مقابل، برنامههای دیگر روی یک دستگاه کمپیوتر، از منابع آن بطور مستقیم استفاده کرده و سرعت پردازش دادهها بیشتر میباشد.
2. پیچیدگی کار
راهاندازی و بروزرسانی ماشینهای مجازی روی شبکههای بلاکچین و زیرساختهای ابری نیاز به زمان بیشتر دارد. این مورد نیز به دانش و ابزار بخصوص نیاز دارد.
3. تعامل پذیری
قراردادهای هوشمند معمولا برای بلاکچین مشخص مانند تُن یا اتریوم ساخته میشود. کدُهای بکار گرفته شده روی یک بلاکچین ممکن است روی بلاکچین دیگر خوب کار نکند. به همین دلیل؛ نیاز است که کُدها را دوباره بنویسند. این به این معنا است که توسعه دهندگان نیاز به منابع مالی و زمان بیشتر دارند تا یک قراردادی بنویسند که روی چندین ماشین مجازی بلاکچین بدون تکلیف کار کند.
سخن پایانی
ماشینهای مجازی شبکههای بلاکچین قراردادهای هوشمند را اجرا و برنامههای غیرمتمرکز را راهاندازی و اجرا میکند.
به دلیل اینکه، ماشین مجازی بلاکچین — مجازی و در عین حال غیر متمرکز است، نسبت به دیگر ماشینهای مجازی پیچیدهتر است.
اما؛ به گونهای ساخته شده است که دارای امنیت بیشتر و حکومتداری غیرمتمرکز باشند.
هر بلاکچین از خود دارای ماشین مجازی است. و همین تفاوتها است که یک بلاکچین را از بلاکچین دیگر از نگاه تمرکززدایی و ظرفیت متمایز میسازد.