Що таке атака 51%?

Що таке атака 51%?Атака 51% - це вразливість PoW-блокчейнів, за допомогою якої зловмисник захоплює контроль над підтвердженням транзакцій і генерацією блоків.

Що буде, якщо володіти 51% потужності мережі?

Маючи в розпорядженні 51% потужності, атакувальники:
  • не дають іншим майнерам (валідаторам) знаходити блоки (selfish mining);
  • проводять подвійну витрату монет, щоб красти у постачальників послуг, бірж або обмінників (double spend);
  • можуть зробити форк основного блокчейна, розділяючи мережу на два конкурентних ланцюжка;
  • не дають транзакціям або блокам підтверджуватися;
  • під час атаки збирають всі нагороди за блок і комісії з транзакцій.
Атака носить більш серйозний характер, якщо атакувальники контролюють значно більше, ніж 51% мережі. Тоді вони:
  • крадуть з будь-яких контрактів типу deposit-challenge-verify і каналів стану/Lightning Network, якщо атакувальники були їх учасниками;
  • зменшують і маніпулюють складністю мережі;
  • крадуть монети, що не датовані генезис-блоком (шляхом відкату старих блоків, наново отримуючи нагороди за ці блоки);
  • видаляють контракти або історію транзакцій (шляхом відкату старих блоків і редагування списку чинних транзакцій).
Атака 51% сама по собі не дозволяє атакувальникам:
  • роздобути ваш приватний ключ або підробити підпис;
  • роздобути монети, отримані в результаті неправильної роботи контракту;
  • відправляти, заморожувати в стейкінг або спалювати ваші монети замість вас (за винятком технік, згаданих вище);
  • керувати рішеннями власників повних вузлів (валідаторів).
Скільки ресурсів потрібно, щоб виконати атаку 51%?

Зловмисний майнінговий пул може найняти додаткові ресурси й запустити атаку на обрану криптовалюту.
 скільки коштує атака 51
Дані отримані в січні 2020 року. Як бачимо, щоб атакувати біткоїн, потрібно витрачати по $724 532 на годину. Атака на BitcoinGold коштує всього $ 784 на годину.

Що таке егоїстичний майнінг (selfish mining)?

Стратегія, що дозволяє майнерам збільшити свій прибуток шляхом приховування блоків від публічної мережі. Майнери не відправляють блок в мережу кожен раз після генерації, а продовжують майніти нові блоки поверх будь-яких самостійно знайдених блоків. Поки конкуренти майнять поверх старіших блоків, егоїстичний майнер отримує перевагу.

Відбуваються негласні перегони між публічним ланцюгом «чесних майнерів» і приватним ланцюгом «егоїстичних майнерів». У атакувальників має бути досить обчислювальної потужності, щоб зробити таємний ланцюжок довшим ніж публічний.

Як тільки приватний блокчейн стає довшим публічного, зловмисники випускають його в мережу, щоб отримати нагороди за знаходження блоків і комісії користувачів. Якщо потужність приватної мережі становить більш ніж 25% потужності всієї мережі, егоїстичні майнери будуть продовжувати вигравати перегони ланцюжків, поки їх не витіснить інший егоїстичний майнер або ображена меншість.

У працюючих на алгоритмі Proof-of-Work (PoW) блокчейнах важливий не найдовший ланцюжок, а самий «підкріплений».

Найдовший ланцюжок представляє більшість обчислювальної потужності тільки якщо в мережі немає монополіста (володаря 51% і більше потужності). Якщо він є, то найдовший ланцюжок може й не представляти волю більшості майнерів.

Як відбувається подвійна витрата криптовалют (double spend)?

Уявімо, що зловмисник має значну обчислювальну потужність. Він розплачується за товар або послугу з постачальником, той приймає велику суму в криптовалюті й угода майже завершена. Транзакція відправляється в загальний блокчейн і після трьох підтверджень учасники угоди прощаються.

Коли лиходій переконаний, що жертва його не знайде, він «повертає» монети собі. Для цього атакувальник після переказу грошей повертає блокчейн до попереднього стану.

Інший, більш потайний варіант: атакувальник майнить паралельний ланцюжок блоків, по типу егоїстичного майнінга. Туди замість чесної транзакції була включена транзакція подвійної витрати. Така транзакція відправляє ті ж монети на іншу адресу, що належить шахраю. Залишається «згодувати» валідному ланцюжку альтернативну порцію блоків (з правильним PoW), в очікуванні, що мережа їх прийме.

Таким чином, мережа «виключить» вірну транзакцію з історії. Постачальник заглядає в гаманець і бачить, що втратив свої монети й доказів угоди немає. Він навіть не зробив скріншоти гаманця, що не скопіював ID транзакції, коли отримав монети.

У теорії, якщо у транзакції є одне й більш підтверджень, подвійна витрата виключена.

Завдяки таким «схемами», монети раз у раз повертаються в гаманець атакувальника, й можна їх витрачати двічі, тричі, і так далі. Часті подвійні витрати призводять до загрози зняття криптовалюти з торгів на постраждалих від подвійної витрати біржах. Крім того, атаковані криптовалюти втрачають ринкову капіталізацію після атаки. Наприклад, криптовалюта Verge піддалася атаці в травні 2018 року, й втратила з того часу понад 95% своєї вартості.

Хардфорк після атаки 51% як метод створення нового активу

За допомогою атаки 51% можна створити нову криптовалюту. Алгоритм консенсусу PoW розроблявся для доказу цілісності ланцюжка, не для запобігання появи відгалужень.

Припустимо, атакувальники приховано майніли кілька блоків, а потім «скидають» їх на основну мережу. Якщо за атакувальником немає підтримки спільноти, чесна меншість з інших 49% відкине такий ланцюжок. Але кілька таємно знайдених блоків дозволяють атакувальнику відокремитися від мережі і продовжувати майніти свій власний ланцюжок, тоді як інші майнери продовжать стару. Так з'являються два активи, один - всім відомий, а інший - новий.

Поки майнерів достатньо, щоб блокчейн працював, навіть утворені в результаті хардфорка нові блокчейни не завдадуть суттєвої шкоди.
Чи можливо виконати атаку 51% не володіючи 51% потужностей?

Відомий «біткоїн-гуру» Андреас Антонопулос вважає, що мережа біткоїна більше не схильна до ризику атаки 51% через ресурси, які витрачають майнери на підтримку мережі. Андреас заявляє, що атакувати біткоїн вже немає сенсу, це буде занадто витратно навіть для урядів. Проте можна атакувати менш потужні альткоїни, уточнює Андреас.

Щоб здійснити атаку на блокчейн, зловмиснику не завжди необхідно мати 51% і більше обчислювальної потужності. Імовірність успіху розраховується виходячи з часу атаки й кількості обчислювальних потужностей.

Навіть якщо атакувальник контролює 40% мережі, він зможе провести атаку протягом двох блоків з 40% ймовірністю успіху.

Приклади атаки 51% з історії криптовалют

Атака 51% не є нездійсненною. Майнінговий пул Ghash.io протягом короткого періоду часу в липні 2014 року володів понад 50% обчислювальної потужності Bitcoin. Це призвело до того, що пул добровільно спробував зменшити свою частку в мережі. У заяві було сказано, що в майбутньому він не досягне 40% від загального обсягу видобутку.

У серпні 2016 група хакерів з «51 crew» зламала блокчейн проекти Krypton і Shift. За допомогою серії подвійних витрат їм вдалося вивести приблизно 20 000 токенів Krypton.

У травні 2018 року група зловмисних хакерів отримала контроль над 51% мережі альткоїна Bitcoin Gold, що дозволило їм вкрасти $18 млн доларів в криптовалюті у Bittrex, Binance, Bitinka, Bithumb і Bitfinex. Bittrex звинуватила розробників в халатності й зажадала від них компенсації, в іншому випадку біржа обіцяла закрити торги в BTG. Розробники відповіли, що це відомий тип загрози. Біржа Bittrex не подбали про запобіжні заходи та сама винна в тому, що трапилося.

У червні 2018 року Monacoin, Zencash, Verge, і Litecoin Cash, піддалися атаці 51%. Це призвело до багатомільйонних втрат. В результаті атаки деякі біржі втратили приблизно $90 000 на Monacoin, $500 000 в ZenCash і $1,7 мільйона в Verge.

У листопаді 2018 року внаслідок атаки 51% на Aurum Coin з біржі Cryptopia викрадено понад $500 000.

У травні 2019 два великих майнінгових пулів здійснили атаку 51% на мережу Bitcoin Cash. За їх словами, вони запобігли крадіжці незахищених монет SegWit, які зберігалися на адресах, звідки їх міг забрати хто завгодно. Ці монети залишилися в мережі після відділення від Bitcoin у 2017 році, але були заблоковані розробниками. Поки не опинилися випадково розблокованими хардфорком в травні 2019.

Висновок

Оскільки blockchain мережа підтримується розподіленою мережею вузлів, всі учасники співпрацюють в процесі досягнення консенсусу. Великі мережі мають сильний захист від атак і спотворення даних.

Як тільки blockchain стає досить великим, перспектива того, що одна людина або група, що отримала достатню обчислювальну потужність для придушення всіх інших, швидко стає недосяжною.

Хоча для зловмисника досить складно отримати більшу кількість обчислювальної потужності, ніж у решти мережі Bitcoin, цього не так складно домогтися у випадку з іншими криптовалютами. У порівнянні з Bitcoin, альткоїни мають відносно низьку хеш потужність, що забезпечує їх blockchain, досить низьку, для реалізації можливої атаки 51%.