بررسی تأثیر مکانیزمهای اجماع بر امنیت بلاکچین
مکانیزمهای اجماع بلاکچین، امنیت و پایداری شبکه را با جلوگیری از حملات و تمرکززدایی تضمین میکنند. در این مقاله، تأثیر مکانیزمهای مختلف مانند PoW، PoS و PoH بر امنیت بلاکچین بررسی میشود.
ماشین مجازی اتریوم یا همان EVM در اصل ستون فقرات و یا ساختار اصلی شبکه اتریوم به حساب میآید که به عنوان یک محیط Run-Time (زمان اجرا) برای برنامه های DApps و سایر برنامهها در اختیار توسعه دهندگان قرار گرفته است. امروزه با ورود دیگر شبکههای بلاکچین به سطح بازار ارزهای دیجیتال، شناخت و آشنایی با ماهیت و جزییات این برنامه که به عنوان یکی از موثرترین دلایل موفقیت شبکه اتریوم به حساب میآید، اهمیت پیدا میکند؛ چرا که برای سرمایه گذاران مهم است که بدانند میتوانند در چه محیطی به صورت امن سرمایه گذاری کرده و آینده سرمایه گذاری آنها چگونه ترسیم میشود. چنانچه شما نیز در خصوص ماشین مجازی اتریوم با ابهاماتی رو به رو هستید، وبلاگ کریپتوباز این مقاله تخصصی را با هدف کمک به شما مخاطبان گرامی، در جهت آشنایی و درک مفهوم ماشین مجازی اتریوم و جزییات مربوط به آن نظیر مزایا و معایب، آینده کاری و همچنین نحوه کارکرد و عملکرد آن آماده کرده است.
اتر ETH که به عنوان دومین ارز دیجیتال بزرگ از نظر سهم و ارزش در بازار به حساب میآید، به دلیل توکن بومی خود یعنی ETH توانسته محبوبیت بسیاری را در میان کاربران و سرمایه گذاران ارز دجیتال به دست آورد؛ اما این تنها دلیل محبوبیت این شبکه نیست؛ چرا که ماشین مجازی اتریوم (Ethereum Virtual Machine) و زبان برنامه نویسی بومی Solidity باعث شده تا این شبکه بیش از پیش مورد تحسین فعالان این حوزه قرار بگیرد. شبکه اتریوم موفقیت خود را به عنوان یک بلاکچین مناسب و ترجیحی برای توسعه برنامه های غیر متمرکز DApps (برنامههایی که از ترکیب قراردادهای هوشمند، یک ارز دیجیتال، بلاکچین و یک برنامه تشکیل شدهاند و با هدف حذف واسطهها به صورت غیرمتمرکز فعالیت میکنند.) را مدیون ماشین مجازیاش بود که توسط گاوین وود (Gavin Wood) در زمان تصدیاش در اتریوم ساخته شد (در اصل در سال 2013 توسط برنامه نویس ویتالیک بوترین (Vitalik Buterin) مفهوم سازی شده بود). ماشین مجازی اتریوم در واقع ساختار اصلی شبکه اتریوم محسوب میشود و چنان که ستون فقرات، تعادل و کارایی سیستم بدنی ما را تضمین میکند، این ماشین مجازی نیز باعث ادامه حیات اتریوم میگردد. ماشین مجازی اتریوم در اصل هسته مرکزی بلاکچین اتریوم را تشکیل داده و در اصل برنامهای است که کد برنامهها یا به عبارتی قراردادهای هوشمندی که مبتنی بر این محیط طراحی شدهاند را با ارائه یک محیط ران تایم (وضعیتی در ماشین مقصد است که شامل کتابخانهها و متغیرهای محیطی بوده که به کد برنامه نویسی شده کمک میکند تا اجرا شود)، در بخش بالایی بلاکچین اجرا میکند.
برای آنکه نحوه کارکرد ماشین مجازی اتریوم را درک کنیم، نیاز داریم تا به هر یک از عملکردهای متفاوتی که این ماشین انجام میدهد تا از اجرای هر چه بهتر و روانتر برنامهها در شبکه اتریوم اطمینان حاصل کند، آگاه شویم. ماشین مجازی اتریوم یا EVM که به زبان سیپلاسپلاس (C++) نوشته شده و از کامپایلر پروژه LLVM (پروژهای بر اساس تکنولوژی Compiler و Toolchain ها که با زبان C++ پیاده سازی شده است) استفاده میکند، یک ماشین حالت ویژه است که به صورت مداوم به فعالیت خود ادامه میدهد و طبق عملیاتی که تغییرناپذیر هستند، وضعیت هر بلوک را در شبکه بلاکچین اتریوم مشخص میکند. این برنامه نه تنها کنترل میکند که نودها (گرهها) چه اعمالی را باید و نباید نسبت به دفتر کل توزیع شده که توسط شبکه بلاکچین نگه داری میشوند، انجام دهند؛ بلکه قوانین خاصی را در خصوص تغییر حالت از بلوکی به بلوک دیگر تعریف میکند. در واقع این ویژگی ماشین مجازی اتریوم باعث ایجاد بستری شده تا قراردادهای هوشمند بتوانند در این محیط قابلیت اجرا پیدا کنند و همین موضوع سبب محبوبیت روز افزون شبکه اتریوم میشود.
اگر بخواهیم سازوکار این برنامه را با جزییات بیشتری توضیح دهیم، باید گفت که ماشین مجازی اتریوم برای هر ورودی که دریافت میکند یک خروجی تولید میکند که ماهیت قطعی دارد و از یک تابع ریاضی با ساده ترین معنا پیروی میکند. همچنین این برنامه مانند یک ماشین استک (پشته) که دادهها را به پایین هدایت میکند، دارای عمقی برابر با 1024 قسمت است که هر قسمت در اصل یک عبارت 256 بیتی را تشکیل میدهد. به علاوه، ماشین مجازی اتریوم یک حافظه موقت به شکل حافظه بایتی دارد که اطلاعات آن بین دو تراکنش بلاک چین اتریوم تغییر میکند. از طرفی، کدهای قرادادهای هوشمند که توسط این برنامه کامپایل و خوانده شدهاند به صورت مجموعهای از 140 کد دستوری استاندارد اجرا میشوند و این در حالی اتفاق میافتد که ماشین مجازی اتریوم سایر عملیات مربوط به استک شبکه بلاکچین را به صورت همزمان پیاده سازی میکند. پس EVM ماشینی است که دارای یک وضعیت ناپایدار در طول تراکنش هاست و اطلاعات حسابهایی که در شبکه بلاک چین اتریوم در سراسر جهان نگه داری میشوند را شامل میشود. به عبارتی دیگر ماشین مجازی اتریوم مسئولیت حفظ یک محیط انتزاعی بین گرههای شبکه اتریوم و کدهای اجرایی آنها را به عهده دارد و با عملکرد تابعی خود، نتایج ثابت را بدون فاش کردن اطلاعات محرمانه در اختیار کاربران قرار میدهد.
یکی از مهمترین اهدافی که ماشین مجازی اتریوم در دستور کاری خود دنبال میکند، انعطاف پذیری بالا و تطبیق پذیری برنامه با انواع قراردادهای هوشمندی است که به زبانهای برنامه نویسی متفاوتی نوشته میشوند. برای توسعه دهندهها (Developers) ماشین مجازی اتریوم در اصل مانند یک برنامه فراگیر که برنامههای کوچکتر را اجرا میکند، عمل میکند. این برنامههای کوچک که در این شبکه به عنوان قراردادهای هوشمند شناخته میشوند، میتوانند به هر زبانی از جمله زبانهای Solidity، Vyper، Python و Yul نوشته شوند. ماشین مجازی اتریوم تمام برنامههایی که در شبکه اتریوم اجرا میشوند را بدون هیچ گزارش خرابی پشتیبانی میکند. این انعطاف پذیری باعث شده تا بلاک چین اتریوم تبدیل به بستری برای ایجاد برنامههای DApps در فضای مالی غیرمتمرکز (DeFi) و همچنین بازار توکنهای غیرقابل تعویض یعنی NFT ها شود. مستقل کردن اجرای کدهای قراردادهای هوشمند این شبکه نیز از دیگر اهداف ماشین مجازی اتریوم به حساب میآید. هر برنامه و قرارداد هوشمندی که از آن برنامههای DApps ساخته میشوند با تبدیل شدن به بایت کد به ماشین مجازی اتریوم تغذیه میشوند و در نودها (گرهها) سراسر شبکه توزیع میگردند. در اصل در زمانی که یک قرارداد مستقر و اجرا میشود، ماشین مجازی اتریوم وظیفه دارد تا با برقراری ارتباط با تمامی گرههای دخیل در قرارداد، هر تغییراتی که در قرارداد به وجود میآید، در آنها اعمال کند. به این ترتیب ماشین مجازی اتریوم با استفاده از بایت کد به جای زبان برنامه نویسی پایه، قرارداد را اجرا میکند و همین باعث میشود که کامپیوتر و یا دستگاه هوشمند میزبان در هر گره، از اجرا و دست کاری کدهای قرارداد حاضر در شبکه اتریوم محروم بماند.
با توجه به نحوه عملکرد ماشین مجازی اتریوم و عدم دخالت دستگاههای میزبان در اجرای کدهای قرارداد که از اهداف اصلی راه اندازی این سیستم است، توسعه دهندگان میتوانند بدون داشتن نگرانی از بابت تاثیر گذاشتن قسمتهای دیگر شبکه بر روی کدها، آنها را اجرا کنند و از خطراتی نظیر امکان بازی با دادهها و اثرگذاری فایلهای شخصی میزبان بر روی کدهای قرارداد به دور هستند. علاوه بر این، توسعه دهندگان این سیستم میتوانند قراردادهای هوشمند پیچیده را به وسیله ماشین مجازی اتریوم در محیطهای مختلف محاسباتی طبق الگوریتمهای اجماع توزیع شده اجرا کنند. این موضوع باعث میشود که خرابی هیچ گرهای باعث ایجاد تاثیر منفی بر نحوه اجرای برنامههای DApps نشود؛ چرا که کد EVM در تمام گرهها یکسان و بدون تاثیرگرفتن از کامپیوتر میزبان باقی میماند. همچنین به دلیل اینکه دادههای ماشین مجازی اتریوم به صورت جهانی نگه داری میشوند، توسعه دهندگان آن را به عنوان مبنایی برای نوشتن قراردادهای هوشمند و ایجاد برنامههای DApps متمایز، مناسب میدانند؛ چرا که میتوانند به دادههای جهانی آن اعتماد کرده و خروجی مطلوبی را به دست آورند. به علاوه، کتابخانههای حاوی کدهای استاندارد برای توسعه دهندگان ساخته شدهاند، افزایش تعداد بلاک چینهای دولایهای که با ماشین مجازی اتریوم سازگاری دارند و همچنین موارد بسیار دیگر، از پتانسیل بالقوه این سیستم هستند. با در کنار هم قرارگیری این مزایا از ماشین مجازی اتریوم، عجیب نیست که شبکه اتریوم به عنوان محیطی برای توسعه پایدار برنامههای DApps و اکوسیستم قراردادهای هوشمند مناسب تلقی میشود.
ماشین مجازی اتریوم علاوه بر مزایای بسیاری که دارد، دارای برخی نقاط ضعفی است که باید توسط توسعه دهندگان و کارآفرینان شبکه اتریوم مورد بازبینی قرار بگیرند. مهمترین عیبی که متوجه سیستم ماشین مجازی اتریوم و شبکه آن است هزینه کارمزد بالا این شبکه و یا هزینه سوخت (gas- یک واحد ضمنی در پتلفرم اتریوم است که مشخص میکند چه میزان کارمزد باید بر حسب پیچیدگی قرارداد از توسعه دهنده دریافت شود) مربوط به اجرای یک قرارداد هوشمند روی شبکه است. در شبکه اتریوم، توسعه دهنده ملزم است تا برای اجرای هر قرارداد نسبت به پیچیدگی یا سهولت کدهای آن و همچنین ازدحام شبکه در زمان اجرای آن هزینه و کارمزدی پرداخت کند. این هزینهها در اتریوم پرداخت میشوند و کارآفرینان عموما خدمات خود را بر اساس این کارمزدها ارائه و قیمت گذاری میکنند و هرچه این کارمزدها بالاتر باشد، هزینه خدمات افزایش مییابد. علاوه بر این موضوع از آنجایی که Solidity به عنوان مناسبترین زبان برای کد نویسی در ماشین مجازی اتریوم انتخاب شده است، توسعه دهندگان باید تجربه کافی برای کار با این زبان را به منظور نوشتن برنامهها و کدهای قراردادی بهینهتر داشته باشند؛ چرا که هر گونه عملیات محاسباتی اضافی در قراردادها منجر به بالارفتن پیچیدگی کدها شده و به تبع هزینه کارمزد و سوخت بیشتری را به توسعه دهنده تحمیل میکند و این موضوع میتواند به موفقیت پروژه ضربه بسیاری وارد کند. حتی اگر توسعه دهندگان زبان برنامه نویسی دیگری را برای ایجاد یک قرارداد انتخاب کنند، باز هم باید درباره عدم وجود کدهای تکراری هوشیار باشند تا از هزینههای اضافه جلوگیری شود. از طرفی، با وجود اینکه میتوان یک قرارداد را در مراحل بعدی ارتقا داد؛ اما با ایجاد یک قرارداد هوشمند واسطه که به آدرس قرارداد هوشمند اصلی اشاره میکند، در اصل امنیت سیستم به خطر میافتد که این هم از دیگر معایب ماشین مجازی اتریوم به شمار میآید.
بیشتربخوانید: 10 زبان مهم برنامه نویسی بلاکچین
ماشین مجازی اتریوم برنامهای بود که توانست تغییراتی انقلابی را در اکوسیستم بلاکچین ایجاد کند و طی سالها به واسطه پروژههای بلاکچین متفاوت، فناوری خود را برای خواندن و اجرای کدها بهبود بخشد. از آنجا که قابلیت همکاری میان زنجیرهای از مهمترین ویژگیهایی است که توجه توسعه دهندگان را جلب میکند، امروزه بلاکچینهای بسیاری در این حوزه شروع به کار کردهاند که با ماشین مجازی اتریوم سازگاری دارند؛ اما موضوع در اینجا از حساسیت بیشتری برخوردار است؛ چرا که این بلاکچینها بر خلاف شبکه بلاکچین اتریوم، از هزینه کارمزد و سوخت پایینتری برخوردارند و همچنین تراکنشها را با سرعت بالاتری به سرانجام میرسانند. این مسئله میتواند برای شبکه اتریوم به عنوان یک زنگ خطر باشد؛ چرا که این بلاکچینها در حال حاضر میتوانند به طور یکپارچه با اتریوم تعامل داشته و با استفاده از پلهای بلاکچین انتقال وجه و سرمایه را از شبکه اتریوم به شبکه خود تسهیل کنند. این انتقال وجههای پی در پی میتوانند به شبکه اتریوم آسیب بسیاری وارد کنند و آینده آن را به خظر بیندازند؛ به همین خاطر بعد از عملیات ادغام در سال 2022، هدف بعدی این شرکت تبدیل ماشین مجازی اتریوم به Ethereum WebAssembly (eWASM) است. (eWASM) به گونهای طراحی شده است که بسیار مستقل نسبت به پلتفرم عمل میکند و میتواند سرنوشت بازی شکست بار در بازار ارز را برای اتریوم به صورت دیگری رقم بزند؛ به طوریکه با تشویق و جذب سایر بلاکچینها برای استفاده از یک محیط ران تایم، قراردادهای خود را در شبکه اتریوم طراحی و اجرا کنند. البته اینکه (eWASM) میتواند جایگزین ماشین مجازی اتریوم، به عنوان مورد اعتمادترین مکانیسم برای قراردادهای هوشمند به حساب بیاید، از سوالاتی است که تنها زمان قادر به پاسخگویی آن است.
ماشین مجازی اتریوم برنامهای است که در اصل ساختار اصلی شبکه بلاکچین اتریوم به حساب میآید و به عنوان یک محیط ران تایم برای برنامههای DApps در اختیار توسعه دهندگان قرار گرفته تا آنها بتوانند هرچه آسانتر قراردادهای هوشمند خود را در محیطی مناسب اجرا و وارد بازار کنند. این ماشین با کنترل تمامی نودهای دخیل در یک قرارداد هوشمند و با در نظر گرفتن اهدافی نظیر سازگاری بالای شبکه با انواع قراردادها که به زبانهای مختلف نوشته شدهاند، هم اکنون به فعالیتش ادامه میدهد. همچنین ماشین مجازی اتریوم میتواند با قطع دسترسی دستگاههای هوشمند کاربران به کدهای قرارداد، مزایایی نظیر عدم تاثیرگذاری خرابی گرهها بر پروژه را به همراه بیاورد. به علاوه، EVM به دلیل نگه داری اطلاعات به صورت جهانی میتواند منبع قابل اعتماد دادههای ورودی برای ایجاد قراردادهای جدید به حساب بیاید؛ چرا که میتواند خروجیهای مطمعنتری تولید کند. در کنار مزایا، این ماشین مجازی معایبی دارد که قابل چشم پوشی نیستند نظیر هزینه بالای کارمزد و سوخت برای ایجاد قراردادها و همچنین درخطر افتادن پروتکلهای امنیتی در صورت ایجاد یک قرارداد واسطه. در هر صورت ماشین مجازی اتریوم با تمام جزییاتش اگر به فعالیت این چنینی خود ادامه دهد با وجود اینکه فواید بسیاری را برای اعضای بازار ارز به همراه دارد؛ اما میتواند برای شبکه اتریوم خطر آفرین باشد و این شبکه در حال برنامه ریزی برای جایگزین کردن آن با سیستم (eWASM) هستند که رویکردی متفاوت دارد.
ماشین مجازی اتریوم برنامهای است که به عنوان ستون فقرات شبکه اتریوم و با هدف ایجاد یک محیط ران تایم برای اجرای قراردادهای هوشمند ساخته شده است.
از مزایای ماشین مجازی اتریوم میتوان به سازگاری سیستماتیک آن با انواع قراردادهای هوشمند با زبانهای برنامه نویسی متفاوت و همچنین بی تاثیر بودن کامپیوتر میزبان و فایلهای مضر احتمالی بر روی نحوه اجرای کدها در نودها اشاره کرد.
ماشین مجازی اتریوم با توجه به تاثیری که بر فعالیت میان شبکه اتریوم و دیگر بلاکچینها میگذارد، اگر به فعالیت این چنینی خود ادامه دهد، باعث نابودی اتریوم خواهد شد؛ از این رو اتریوم قصد دارد تا آن را با (eWASM) جایگزین کند.