در مقاله های قبلی درباره این موضوع که وقتی اقدام به خرید بیت کوین می کنید، چه مراحلی طی می شود و تراکنش بیت کوین چگونه تایید و انجام می شود، صحبت کردیم. اما چه میشود اگر شخصی اقدام به فروش بیت کوین کرده و پول آن را نیز دریافت کند ،سپس دوباره آن بیت کوین ها را برگرداند و بتواند آنها را خرج کند؟ آیا ممکن است چنین اتفاقی بیفتد؟
جواب مثبت است. اما چگونه؟
بلاک چینهای بزرگی مانند شبکه بیت کوین و اتریوم، از نظر امنیت در مقابل حملات مقاومترند. شبکه بلاک چین شامل نودهایی است که تراکنشها را ایجاد و اجرا میکنند. ماینرها تراکنشهای تایید شده را به بلاکهای زنجیره اضافه میکنند. در این حین اگر عامل خاصی کنترل بخش قابل توجهی از شبکه را به دست بیاورد، امنیت بلاک چین به خطر میافتد. اگرچه شبکه بیت کوین یکی از کامل ترین و امن ترین شبکه های موجود در بلاکچین است اما از لحاظ تئوری، تمام شبکه ها یک یا چند راه نفوذ دارند و بلاکچین نیز از این قاعده مستثنی نیست. هکرها دائما در کمین و در پی یافتن راهی برای آسیب زدن و استفاده از باگ های هر شبکه و سوء استفاده از آن هستند.
یکی از خطرناکترین حملاتی که بلاک چین و رمز ارزها را تهدید میکند، حمله 51 درصد یا حمله دوبار خرج کردن یاdouble spending است. حمله 51 درصدی اتفاقی است که اگر رخ دهد، گروه خاصی قادر خواهند بود یک شبکه را کنترل کنند و اعتبارش را از آن بگیرند. اما حمله 51 درصدی دقیقا چیست و چگونه کار می کند؟
حمله 51 درصدی مربوط به ماینر یا گروهی از ماینرهاست که سعی می کنند ارزهای دیجیتال خود را در بلاک چین دوبار خرج کنند. هدف آن ها البته، همیشه این نیست که آنها را دوبار خرج کنند، بلکه اغلب سعی می کنند با از بین بردن تمامیت بلاک چین اعتبار آن شبکه را تحت الشعاع قرار داده و به آن لطمه وارد کنند.
اما آنها چگونه می توانند به بیت کوین و شبکه بلاکچین نفوذ داشته باشند؟
بیایید با مثالی ساده دوبار خرج کردن را توضیح دهیم.
فرض کنید من 5 بیت کوین را برای خرید یک خانه خرج کرده ام. آن خانه چند روز بعد به من تحویل داده می شود و بیت کوین ها نیز به شرکت فروشنده منتقل می گردد. با انجام حمله 51 درصد در بلاک چین بیت کوین، می توانم انتقال این بیت کوین ها را معکوس کنم. در نتیجه علاوه بر خانه ای که اکنون برای من است، بیت کوین هایم را نیز دارم که می توانم دوباره آن ها را برای خرید چیز دیگری خرج کنم.
ابتدا با یک توضیح کوتاه، دیدی وسیع از چگونگی این حمله می دهیم:
پیش از آنکه به خود حمله 51 درصدی بپردازیم، باید بدانیم که بلاک چین چیست و چه اهمیتی در شبکه دارد.
به طور کلی بلاک چین یک نوع سیستم ثبت اطلاعات و گزارش است. تفاوت آن با سیستمهای دیگر این است که اطلاعات ذخیره شده روی این نوع سیستم، میان همه اعضای شبکه به اشتراک گذاشته میشوند و با استفاده از رمزنگاری (Cryptography) امکان حذف و دستکاری اطلاعات ثبت شده تقریبا غیرممکن است.
خب حالا که می دانیم بلاکچین، همه چیز در دنیای ارزهای دیجیتال است، پس می توان نتیجه گرفت که پروتکل های بلاک چین اساس قالبی از حاکمیت هستند. بلاک چین بر دفتر کلی از اطلاعات، مثلا اطلاعات تراکنشها، حکومت میکند. از آنجایی که پروتکل بلاک چین قادر است حاکمیت را برای ما انجام دهد، دیگر به نهادهای شخص ثالث، نظیر دولتها یا بانکها، نیازی نداریم. همین عامل است که باعث میشود بلاک چین ها غیرمتمرکز باشند. پروتکل بلاک چین بیت کوین بر اساس ایده دموکراسی عمل میکند، یعنی اکثریت مشارکتکنندگان (ماینرهای) شبکه میتوانند تصمیم بگیرند که کدام نسخه از بلاک چین نسخه حقیقی است.
حالا به بررسی مراحل این حمله می پردازیم:
وقتی یک مالک بیت کوین تراکنشی را امضا میکند، تراکنش او در استخری محلی از تراکنشهای تاییدنشده قرار میگیرد. ماینرها تراکنشها را از این استخر انتخاب میکنند تا بلاکی از تراکنشها را به وجود بیاورند. آنها برای افزودن این بلاک به بلاک چین باید پاسخ یک مسئلهی سخت ریاضی را بیابند. برای پیدا کردن این پاسخ از توان رایانش استفاده میشود. به این کار هشینگ میگویند. هرچه توان رایانش ماینر بیشتر باشد، شانس او برای یافتن پاسخ مسئله پیش از سایر ماینرها بیشتر میشود. وقتی یکی از ماینرها پاسخ را پیدا کرد، آن را (به همراه بلاک) برای همه ارسال میکند تا در صورتی که همه تراکنشهای داخل بلاک بر اساس سوابق موجود در بلاک چین معتبر بود، آنها بلاک را تایید کنند. به یاد داشته باشید که ماینرهای خرابکار هرگز نمیتوانند برای بقیه تراکنش بسازند چون برای انجام این کار به امضای دیجیتالی (یعنی همان کلید خصوصی) کاربر نیاز است. در نتیجه ارسال بیت کوین از اکانت یک شخص دیگر عملا بدون دسترسی به کلید خصوصی او غیرممکن میشود.
حالا به این بخش دقت کنید. ماینرهای خرابکار میتوانند سعی کنند تراکنشهای موجود را برگردانند. وقتی یک ماینر پاسخی برای مسئله موجود پیدا میکند، انتظار میرود این پاسخ برای سایر ماینرها ارسال شود تا آنها بلاک را تایید و آن را به بلاک چین اضافه کنند. ولی یک ماینر خرابکار میتواند با عدم انتشار عمومی راهکار بلاک خودش شاخه جدیدی از بلاک چین بسازد. بدین ترتیب دو نسخه از بلاک چین به وجود میآید.
نسخهای که توسط ماینرهای عادی به کار گرفته میشود، و نسخهای که توسط ماینر خرابکار مورد استفاده قرار میگیرد. ماینر خرابکار به فعالیت روی نسخه دوم بلاک چین ادامه میدهد و پاسخهایش را به سایر اعضای شبکه نمیفرستد. مابقی شبکه از وجود این شاخه جدید مطلع نمیشوند. در نتیجه این شاخه از بخش دیگر شبکه جدا میماند. حالا ماینر خرابکار میتواند همه بیت کوین های خود را در نسخه حقیقی بلاک چین خرج کند. اگر فرض کنیم او با بیت کوینهایش یک لامبورگینی خریده باشد، همهی دارایی او در بلاک چین اصلی خرج شده است. ولی او این تراکنشها را در شاخه بلاک چین خودش اعمال نمیکند. به همین خاطر او در آن شاخه هنوز همه بیت کوینهایش را دارد.
در عین حال، او همچنان در بلاک چین خودش به بررسی و تایید بلاکها ادامه میدهد. اینجاست که مشکل اصلی به وجود میآید. بلاک چین بر اساس مدل حاکمیت دموکراتیک طراحی شده، یعنی رای اکثریت اهمیت دارد. بلاک چین این کار را با پیروی دائمی از بلندترین زنجیره (در واقع سنگینترین زنجیره، اما بگذارید بحث را خیلی پیچیده نکنیم) انجام میدهد، چرا که اکثر ماینرها زودتر از بقیه بلاکها را به نسخه بلاک چین خودشان اضافه میکنند (بنابراین بلندترین زنجیره = اکثریت). بدین ترتیب بلاک چین متوجه میشود که کدام نسخه از زنجیرهاش حقیقی است و بر همین اساس تراز مالی کیف پولها را تعیین میکند. در این مرحله رقابت آغاز میشود. هر کسی که از بیشترین توان هش برخوردار است سریعتر بلاکها را به نسخه زنجیره خودش اضافه میکند.
پس ماینر خرابکار به جهت توان هش قدرتمندتری که دارد، سریعتر بلاکها را به زنجیره خودش اضافه میکند.
ماینر خرابکار حالا سعی میکند بلاکها را سریعتر از بقیه به بلاک چین خودش اضافه کند و به محض این که موفق شد بلاک چین بلندتر را بسازد، او بلاک چین خودش را برای بقیه شبکه مخابره میکند. سایر اعضای شبکه با بررسی این نسخه از بلاک چین متوجه میشوند که این زنجیره از زنجیره خودشان بلندتر است، در نتیجه پروتکل شبکه آنها را مجبور میکند تا از آن زنجیره استفاده کنند.
بلاک چین دستکاریشده حالا به عنوان بلاک چین حقیقی در نظر گرفته میشود و همه تراکنشهایی که در این زنجیره ثبت نشده بود بلافاصله معکوس میگردد. مهاجم قبلا با بیت کوینهایش لامبورگینی خریده بود، ولی این تراکنش در زنجیره مخفیانه او ثبت نشد؛ حالا همین زنجیره روی کار آمده است. بنابراین بیت کوینها مجددا به حساب ماینر خرابکار برمیگردد و او میتواند دوباره آنها را خرج کند.
به این اتفاق حمله خرج دوباره میگویند و نام دیگر آن حمله 51 درصد است، چون ماینر خرابکار برای این که بتواند سریعتر بلاکها را به بلاک چین خودش اضافه کند، باید توان هش بیشتری نسبت به مجموع توان هش سایر اعضای شبکه داشته باشد.
ورج، زنکش، موناکوین، بیت کوین گلد و لایت کوین کش از حملات ۵۱ درصد آسیب دیدند. در هر یک از این موارد، مجرمان سایبری به اندازهای قدرت هش شبکه را دست گرفتند که امنیت آن را به خطر بیاندازند و میلیونها دلار به جیب بزنند.
آیا با تمام چیزهایی که گفته شد، باز هم خرید بیت کوین کار درست و امنی است؟ انجام این حملات در واقعیت بیاندازه دشوار است. همان طور که گفتیم کسی که میخواهد این کار را انجام دهد باید توان هشی بیشتر از مجموع توان هش سایر اعضای شبکه داشته باشد. با توجه به این که در بلاک چین بیت کوین احتمالا بیش از صدها هزار ماینر وجود دارد، مهاجم باید پول هنگفتی را صرف تهیه تجهیزات استخراجی کند تا بتواند با توان هش سایر اعضای شبکه رقابت کند. حتی قویترین کامپیوترهای دنیا هم نمیتوانند مستقیماً از پس مجموع توان رایانشی کل شبکه بربیایند. علاوه بر این، ایرادات مختلفی به حمله 51 درصد وارد است. مثلاً ریسک لو رفتن و محکوم شدن، یا هزینههای مربوط به برق، محل نگهداری از تجهیزات، و پولشویی بسیار بالاست. عملیاتی مثل حمله 51 درصد در مقابل چیزی که به مهاجم برمیگرداند، حداقل در بلاک چین بیت کوین، زحمت و تلاش خیلی زیادی میطلبد.
علیرغم تمام مطالب گفته شده در رابطه با احتمال مورد حمله قرار گرفتن شبکه بیت کوین و با در نظر گرفتن هزینه بسیار بالایی که باید صرف این حمله شود، شخص یا اشخاصی که برای در اختیار داشتن این قدرت هش ریت تا این حد هزینه کنند قطعا به فکر سود بردن خود خواهند بود و دریافت سود هرچه بیشتر را به لطمه زدن و بی اعتبار کردن شبکه ای که تا این حد برای ورود به آن خرج کرده اند، ترجیح خواهند داد.