حمله ۵۱ درصدی چیست و چرا بیت کوین را زمین نزده

به روزرسانی:
۹ دقیقه مطالعه


۴۱۳بازدید



۱اشتراک



دارای مجوزهای رسمی
انتشار:

برای ثبت سفارش به حساب نیاز دارید. ثبت نام رایگان است.

سوالی که هر بار بعد از یک خبر امنیتی به پشتیبانی می رسد تقریبا همیشه یک شکل دارد: «شنیدم اگر کسی پنجاه و یک درصد شبکه را بگیرد می تواند بیت کوین ما را بردارد. درست است؟»

نه. و این «نه» یک تعارف نیست؛ در مستندات فنی خود بیت کوین به صراحت نوشته شده که مهاجم چه کارهایی می تواند بکند و چه کارهایی نمی تواند. بیشتر ترسی که حول این موضوع ساخته شده، از قاطی شدن این دو فهرست می آید.

مهاجم اکثریت دقیقا چه کار می کند

حمله ۵۱ درصدی یعنی کسی توان محاسباتی بیشتری از بقیه شبکه در اختیار داشته باشد و با آن یک شاخه موازی از زنجیره بسازد.

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

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

فهرستی که کسی نمی خواند

مستندات بیت کوین صریح می نویسد که مهاجم با بیش از پنجاه درصد توان شبکه هم این کارها را نمی تواند بکند:

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

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

یک استثنا هست و صادقانه باید گفت: این محدودیت ها از دید نودهای کامل برقرار است. کیف پول های سبکی که به ماینرها اعتماد مطلق می کنند، در چنین وضعیتی وضع بدتری دارند. برای مبالغ بزرگ، این یکی از دلایلی است که اتکا به یک منبع سبک و کم اطلاع، انتخاب خوبی نیست.

عدد ۵۱ درصد یک آستانه جادویی نیست

این تصور رایج است که زیر پنجاه درصد حمله ممکن نیست و بالای آن قطعی است. هیچ کدام دقیق نیست.

احتمال موفقیت یک تابع است، نه یک کلید. دو متغیر دارد: سهم مهاجم از توان شبکه، و تعداد تاییدهایی که طرف مقابل منتظر می ماند. همان منبع مثال می زند که مهاجمی با ده درصد توان شبکه، مقابل کسی که شش تایید صبر می کند، در حدود یک دهم درصد شانس دارد. همان منبع، مهاجم با چهل درصد توان را مقابل شش تایید حدود پنجاه درصد موفق می داند.

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

و نکته ای که کمتر گفته می شود: دستکاری بلوک های قدیمی به مراتب سخت تر است و هر چه عقب تر بروید، به شکل نمایی سخت تر می شود. کسی نمی تواند برگردد و تراکنش سه سال پیش را پاک کند.

چرا روی بیت کوین جواب نداده و روی شبکه های کوچک داده

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

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

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

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

هزینه این حمله را چه چیزی تعیین می کند

اگر بخواهید ریسک یک شبکه اثبات کار را واقعا بسنجید، به یک سوال می رسید: توان محاسباتی مورد نیازش را می شود خرید یا اجاره کرد یا نه.

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

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

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

لایه ایران

اینترنت داخلی وقتی مختل می شود، زنجیره را تغییر نمی دهد. اما دید شما از زنجیره را تغییر می دهد و این دو تا در عمل شبیه هم به نظر می رسند.

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

پس نگران چه چیزی باید بود

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

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

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

سوال های پرتکرار

حمله ۵۱ درصدی چیست؟

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

آیا با حمله ۵۱ درصدی می شود بیت کوین دیگران را دزدید؟

نه. برای خرج کردن سکه های هر آدرس، امضای کلید خصوصی آن آدرس لازم است و توان محاسباتی این را تولید نمی کند. مستندات بیت کوین صریح می گوید مهاجم نمی تواند سکه ای را که مال او نبوده بفرستد یا سکه جدید از هوا بسازد.

چطور می شود چنین حمله ای را تشخیص داد؟

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

چه خطری برای دارنده ایرانی دارد؟

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