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