Утримання блоків: атака, яку пул не бачить в окремій шарі
Майнер надсилає справжні шари й приховує ту, що стала б блоком. Дізнайтеся, скільки це коштує, хто платить, навіщо це роблять і як це виявляють.
Що таке атака приховування блоків?
Це майнер, який надсилає кожну звичайну шару, але приховує ту, що стала б блоком. Пул платить за шари. Блок так і не надходить.
Кожна шара, яку ви надсилаєте пулу, є справжнім рішенням, що не досягло цілі блоку. Ціль блоку це складніша планка, яку має пройти хеш, щоб утворити блок. Зрідка рішення проходить і її, і тоді ця шара є цілим блоком.
Така шара виглядає як будь-яка інша, доки пул її не перевірить.
Нападник чесно виконує роботу й надсилає кожну звичайну шару. Він тихо викидає ту, що стала б блоком. Пул рахує шари й платить за них. Блок, який пул мав отримати, так і не надходить.
Чому одна шара не може цього видати?
На жодній окремій шарі в нападнику немає нічого підозрілого. Обладнання справжнє, і хешрейт теж. Шари дійсні й надходять у правильному темпі. Пул може вивчити одну шару й не побачити взагалі нічого.
Бракує саме відсутності, а відсутність видно лише з часом. Майнер із певною часткою хешрейту пулу має знаходити приблизно таку саму частку його блоків.
За годину це нічого не каже. Пошук блоків випадковий, і тихі періоди звичайні. На достатньо довгому проміжку це каже дуже багато.
Скільки це коштує і хто платить?
Пул втрачає нагороду за блок, яку мав отримати. Але насправді втрата лягає не на пул. Саме цю частину варто розуміти в будь-якому пулі.
- У пропорційній схемі раунд триває, доки блок не знайде хтось інший. Усі в раунді працювали в раунді, який тривав довше, ніж мав. Тож кожен заробляє трохи менше за одиницю роботи. Збиток розподіляється між чесними майнерами.
- У схемі з оплатою за шару для оператора це гірше. Пул уже заплатив за кожну шару з власної кишені й розраховує, що блоки надійдуть. Тривала атака прямо виснажує оператора. Історично саме цей випадок турбував людей найбільше.
Навіщо комусь це робити?
Нападник викидає й нагороду за блок. На перший погляд це чиста шкода собі. Сенс це має лише тоді, коли нападник виграє десь, де пул цього не бачить.
Звичайний мотив це конкуренція. Той, хто має власний пул, може орендувати хешрейт або спрямувати його на суперника й погіршити його результати. Тоді його власний пул виглядає порівняно вдалішим. Шари, які нападник усе ж отримує, оплачують цю диверсію.
У хитрішому варіанті нападник не викидає блок, а притримує його. Він продовжує приватно майнити поверх нього, а потім надсилає його в зручний для себе момент. Це складніше здійснити. Щоб це мало сенс, потрібна велика частка хешрейту.
Як це виявляють?
Виявлення статистичне, бо іншого сигналу немає. Порівняйте блоки, які знайшов учасник, із блоками, які він мав знайти за кількістю своїх шар. Робіть це на проміжку, достатньо довгому, щоб удача усереднилася.
Найскладніше вибрати проміжок.
- Зробіть його коротким, і звичайне невезіння виглядатиме як атака. Чесних майнерів звинувачували б постійно.
- Зробіть його довгим, і справжній нападник діятиме якийсь час, перш ніж цифри щось покажуть.
Хитрого способу обійти цей компроміс немає. Він походить від випадковості, а не від програми.
Тож серйозний детектор не діє сам, а передає питання людині. Автоматичний бан на основі статистики одного дня забанить когось, кому просто не пощастило. Відключити легітимного майнера гірше, ніж сама атака.
Що це означає для чесного майнера?
Майже нічого, і це варто сказати прямо.
Ваші шари рахують і оплачують однаково в будь-якому разі. Невезіння не є порушенням і не може ним бути. На будь-якому короткому проміжку більшості майнерів не щастить.
Серія раундів, у яких ви внесли багато, а пул нічого не знайшов, це звичайне коливання. Показник удачі в статистиці пулу показує, наскільки це звично.
Ця атака є однією з причин, чому пулам не байдуже, хто спрямовує на них хешрейт. Тому ж пулу, який чесно публікує свої блоки й удачу, легше довіряти. Усе, що потрібно для перевірки пулу, є на сторінці блоків.