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

نسخهای که توسط ماینرهای عادی به کار گرفته میشود، و نسخهای که توسط ماینر خرابکار مورد استفاده قرار میگیرد. ماینر خرابکار به فعالیت روی نسخه دوم بلاک چین ادامه میدهد و پاسخهایش را به سایر اعضای شبکه نمیفرستد. مابقی شبکه از وجود این شاخه جدید مطلع نمیشوند. در نتیجه این شاخه از بخش دیگر شبکه جدا میماند. حالا ماینر خرابکار میتواند همه بیت کوین های خود را در نسخه حقیقی بلاک چین خرج کند. اگر فرض کنیم او با بیت کوینهایش یک لامبورگینی خریده باشد، همهی دارایی او در بلاک چین اصلی خرج شده است. ولی او این تراکنشها را در شاخه بلاک چین خودش اعمال نمیکند. به همین خاطر او در آن شاخه هنوز همه بیت کوینهایش را دارد.
در عین حال، او همچنان در بلاک چین خودش به بررسی و تایید بلاکها ادامه میدهد. اینجاست که مشکل اصلی به وجود میآید. بلاک چین بر اساس مدل حاکمیت دموکراتیک طراحی شده، یعنی رای اکثریت اهمیت دارد. بلاک چین این کار را با پیروی دائمی از بلندترین زنجیره (در واقع سنگینترین زنجیره، اما بگذارید بحث را خیلی پیچیده نکنیم) انجام میدهد، چرا که اکثر ماینرها زودتر از بقیه بلاکها را به نسخه بلاک چین خودشان اضافه میکنند (بنابراین بلندترین زنجیره = اکثریت). بدین ترتیب بلاک چین متوجه میشود که کدام نسخه از زنجیرهاش حقیقی است و بر همین اساس تراز مالی کیف پولها را تعیین میکند. در این مرحله رقابت آغاز میشود. هر کسی که از بیشترین توان هش برخوردار است سریعتر بلاکها را به نسخه زنجیره خودش اضافه میکند.

پس ماینر خرابکار به جهت توان هش قدرتمندتری که دارد، سریعتر بلاکها را به زنجیره خودش اضافه میکند.
برگرداندن تراکنشها با مخابره همگانی زنجیره جدید
ماینر خرابکار حالا سعی میکند بلاکها را سریعتر از بقیه به بلاک چین خودش اضافه کند و به محض این که موفق شد بلاک چین بلندتر را بسازد، او بلاک چین خودش را برای بقیه شبکه مخابره میکند. سایر اعضای شبکه با بررسی این نسخه از بلاک چین متوجه میشوند که این زنجیره از زنجیره خودشان بلندتر است، در نتیجه پروتکل شبکه آنها را مجبور میکند تا از آن زنجیره استفاده کنند.

بلاک چین دستکاریشده حالا به عنوان بلاک چین حقیقی در نظر گرفته میشود و همه تراکنشهایی که در این زنجیره ثبت نشده بود بلافاصله معکوس میگردد. مهاجم قبلا با بیت کوینهایش لامبورگینی خریده بود، ولی این تراکنش در زنجیره مخفیانه او ثبت نشد؛ حالا همین زنجیره روی کار آمده است. بنابراین بیت کوینها مجددا به حساب ماینر خرابکار برمیگردد و او میتواند دوباره آنها را خرج کند.

به این اتفاق حمله خرج دوباره میگویند و نام دیگر آن حمله ۵۱ درصد است، چون ماینر خرابکار برای این که بتواند سریعتر بلاکها را به بلاک چین خودش اضافه کند، باید توان هش بیشتری نسبت به مجموع توان هش سایر اعضای شبکه داشته باشد.
بیت کوین چطور با این حمله مقابله میکند؟
انجام این حملات در واقعیت بیاندازه دشوار است. همان طور که گفتیم کسی که میخواهد این کار را انجام دهد باید توان هشی بیشتر از مجموع توان هش سایر اعضای شبکه داشته باشد. با توجه به این که در بلاک چین بیت کوین احتمالا بیش از صدها هزار ماینر وجود دارد، مهاجم باید پول هنگفتی را صرف تهیه تجهیزات استخراجی کند تا بتواند با توان هش سایر اعضای شبکه رقابت کند. حتی قویترین کامپیوترهای دنیا هم نمیتوانند مستقیماً از پس مجموع توان رایانشی کل شبکه بربیایند. علاوه بر این، ایرادات مختلفی به حمله ۵۱ درصد وارد است. مثلاً ریسک لو رفتن و محکوم شدن، یا هزینههای مربوط به برق، محل نگهداری از تجهیزات، و پولشویی بسیار بالاست. عملیاتی مثل حمله ۵۱ درصد در مقابل چیزی که به مهاجم برمیگرداند، حداقل در بلاک چین بیت کوین، زحمت و تلاش خیلی زیادی میطلبد.

آیا سایر بلاک چین ها آسیبپذیرند؟
با وجود همه سختیها و مشکلاتی که پیش روی حملات ۵۱ درصد وجود دارد، نمونههای این حمله را قبلا چند بار تجربه کردهایم. در حقیقت، جدیدترین آنها همین چند ماه پیش (در آوریل ۲۰۱۸) و در بلاک چین Verg اتفاق افتاد. در این حمله، مهاجم باگی را در کد پروتکل بلاک چین Verge پیدا کرده بود که به او اجازه میداد بلاکهای جدید را با سرعت بسیار زیادی تولید کند و بتواند در مدت زمان خیلی کوتاهتری نسخهی طولانیترِ بلاک چین Verge را بسازد. این مثال نشان میدهد که چه مشکلات و باگهایی میتواند به حمله ۵۱ درصد منجر شود. باگی که در صورت وجود تیمی مجرب از توسعهدهندگان به هیچ عنوان به وجود نمیآمد یا به موقع جلوی سوء استفاده از آن گرفته میشد.
اگر الگوریتم «اثبات کار» را بررسی کنیم، این الگوریتم به ما میگوید که توان هش فعال یا توان رایانشی قویتر به ایمنی بیشتر در برابر حملات ۵۱ درصد منجر میشود. با این حال بلاک چین های کوچکتری که از این الگوریتم استفاده میکنند، میتوانند با شدت بسیار بیشتری در برابر این حملات آسیبپذیر باشند، چون توان کافی برای رقابت با توان مهاجم در شبکه وجود ندارد. به همین دلیل است که حملات ۵۱ درصد معمولا در بلاک چین های کوچک (مثلا بیت کوین Gold) اتفاق میافتد. لازم به ذکر است که بلاک چین بیت کوین تاکنون هیچگاه قربانی حمله ۵۱ درصد نشده است.
استخراج با ASIC
با این تعاریف به آخرین مبحث جذاب در حوزه بلاک چین میرسیم: استخراج با ASIC. استخراج با ASIC نوعی فنآوری است که توسط شرکتهای مختلف استخراج بیت کوین برای بهبود سختافزارهای استخراج این ارز طراحی شده تا قدرت آنها را افزایش دهد. در حال حاضر بحثهای زیادی وجود دارد مبنی بر این که آیا سختافزارهای ASIC باعث افزایش افراطی توان برخی افراد یا گروهها شده است یا نه. بلاک چین مونرو (XMR) اخیرا با انتشار آپدیتی در پروتکلش استخراج با ASIC را در این بلاک چین ممنوع اعلام کرد. در نتیجه، ۸۰ درصد از مجموع توان هش این شبکه از بین رفت. (به نمودار زیر دقت کنید.)

این اتفاق نشان میدهد که چه مقدار از توان شبکه مونرو در اختیار ماینرهایی بوده که از ASIC استفاده میکردند. اگر همه مشارکتکنندگان شبکه از سختافزارهای ASIC استفاده میکردند، این مسئله مشکلی به حساب نمیآمد. ولی مشکل زمانی به وجود میآید که شرکتهای بزرگی مثل Bitmain مشکوک به کنترل حجم عظیمی از فعالیت استخراج مبتنی بر ASIC هستند. اگرچه این شرکتها فنآوری خود را در اختیار کاربران عادی هم قرار میدهند، ولی معمولا زمانی دست به انجام این کار میزنند که خودشان مدتها از آن فناوری استفاده کرده باشند. بحثی که اینجا وجود دارد این است که آیا این اتفاق باعث میشود آنها بیش از حد قدرتمند شوند یا نه. در حالت ایدهآل، یک بلاک چین باید توسط حداکثر تعداد ماینرهای ممکن اداره شود. همین عامل است که بلاک چین را غیرمتمرکز میکند.