258 / 736BWH

Block Withholding Attack

Атака приховуванням блокових розв’язків

Уявімо майнера, який регулярно надсилає пулу докази роботи. Та коли знаходить результат, потрібний для дійсного блоку, приховує його. На панелі він виглядає активним учасником, а пул втрачає шанс отримати винагороду. Так працює класичний Block Withholding Attack. Це атака на співпрацю майнерів, сліди якої можуть нагадувати звичайне невезіння. Щоб її зрозуміти, потрібно розрізняти поточні докази роботи, справжні блоки та правила розподілу грошей.

Block Withholding Attack — це атака, за якої майнер передає пулу звичайні докази роботи, але навмисно не надсилає знайдене рішення дійсного блоку. Пул може зараховувати його роботу, не отримуючи відповідних можливостей заробити блокову винагороду.

Mining Pool об’єднує роботу майнерів і розподіляє винагороди за узгодженими правилами. Він не може чекати, доки кожен малий учасник знайде цілий блок. Як пояснює Bitcoin Developer Guide, для цього використовують shares: результати, що відповідають простішій умові та регулярно засвідчують виконану роботу. Рідкісний результат відповідає також суворішій умові мережі Bitcoin. Зловмисник надсилає звичайні shares, але відкидає ціннішу знахідку. Машина справді обчислює та споживає електроенергію; це не безкоштовна імітація майнінгу. [3]

Це залежить від моделі виплат. Meni Rosenfeld розрізняє Pay Per Share (PPS), де оператор платить за прийняті shares, і Pay Per Last N Shares (PPLNS), де фактичні блокові винагороди розподіляють за нещодавно прийнятими shares у визначеному діапазоні. Отже, за PPS нестачу доходу від прихованих блоків несе оператор, якщо виконує обіцяні платежі. За PPLNS залишається менше грошей для всіх учасників, включно зі зловмисником. Одна й та сама відкинута знахідка може позбавити доходу різних учасників. Важливі конкретні правила пулу, а не лише напис «майнінг» на панелі. [1]

Саме відкидання знахідок може бути дорогим саботажем. Зловмисник платить за обладнання й електроенергію та відмовляється від доходу, який міг отримати чесно. Ittay Eyal досліджує і складніший випадок: конкурентний пул частиною потужності майнить чесно, а іншою атакує чужий пул. За певних припущень такий розподіл може збільшити його загальний дохід. Але результат математичної моделі не обіцяє прибутку після всіх витрат. Сам збиток жертви не показує, чи заробив зловмисник на операції загалом. [2]

В обох випадках є неопублікований блок, але його подальша доля різна. Eyal і Emin Gün Sirer описують Selfish Mining як майнінг на приватній гілці ланцюга зі стратегічним оприлюдненням її блоків. Зловмисник прагне зробити свою гілку основною та отримати винагороди. Класичний Block Withholding Attack усередині пулу натомість відкидає знайдені блоки; будувати переможну приватну гілку йому не потрібно. Інші варіанти лише затримують передачу. Тому, читаючи аналіз, слід з’ясувати, яку саме стратегію він досліджує. [4]

Уявімо період, за який чесний майнер із певною потужністю та складністю знаходив би в середньому 1 блок. Модель Poisson, яку використовує також Rosenfeld, описує незалежні випадкові знахідки зі сталою очікуваною частотою. Вона дає приблизно 37% імовірності не знайти жодного. За очікуваних 3 блоків це близько 5%. Це не ймовірність вини: ми обчислюємо шанс нульового результату за чесного майнінгу, а не шанс обману після спостереження нуля. Приклад передбачає відповідні стабільні умови й заздалегідь визначений період. Середнє не є строком, до якого блок обов’язково з’явиться. [1]

Eyal наголошує, як важко пов’язати атаку з конкретним малим майнером. Самого облікового запису без знайдених блоків недостатньо. Потрібно порівняти прийняті shares із блоками за той самий період, ураховуючи складність shares, тобто роботу, яку вони представляють. Hashrate означає швидкість обчислень; її оцінка за цими доказами також коливається. Слід перевірити перебої, відсутні записи та зміни умов. Пул може мати підстави розслідувати проблему, але ще не мати достатніх доказів проти конкретної людини. [2]

Eyal розглядає бонус за знайдений блок, формування репутації та тестові завдання з відомим рішенням. Проте кожна пропозиція щось змінює. Бонус віддає більшу частку винагороди тому, хто знайшов блок, і може посилити коливання доходів малих майнерів. Репутаційні правила ускладнюють перехід між пулами; тестові завдання потребують підтримки й надійного оцінювання. Це не універсальний захист, який досить увімкнути. Оператор має оцінити ефективність і побічні наслідки та чесно пояснити, що його заходи здатні виявити. [2]

Bitcoin Developer Guide розрізняє знаходження блоку та його перевірку мережею. Прихована знахідка не змінює правил дійсності транзакцій і сама не дозволяє витрачати чужі монети чи переписувати підтверджену історію. Вона шкодить передусім економіці та довірі всередині майнінгової співпраці. Допомагають три запитання: що приховали, хто втратив гроші за узгодженими правилами та які докази ми маємо? Опис механізму не є звинуваченням жодного нинішнього пулу. [3]

Для повної картини прочитайте також Mining Pool, Pay Per Last N Shares, Hashrate, Selfish Mining.

DOC · 001Rosenfeld — Analysis of Bitcoin Pooled Mining Reward SystemsПервинне джерело DOC · 002Eyal — The Miner’s DilemmaПервинне джерело DOC · 003Bitcoin Developer Guide — MiningДокументація DOC · 004Eyal and Sirer — Majority is not EnoughПервинне джерело
Переглянуто: Спочатку джерела · Не інвестиційна порада