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