Для початку, варто розібратися в тому, за якими принципами взагалі функціонує мережа криптовалюта, заснована на системі блокчейн. Зробимо це на прикладі мережі Bitcoin.
В основі біткоіна лежить децентралізована мережа, в якій робота і взаємодія між окремими вузлами регулюється протоколом. Однак оскільки система постійно змінюється, вузли повинні регулярно погоджувати між собою поточний стан мережі. Крім того, консенсусу доводитися притримуватись і в процесі майнінгу, і в справі підтвердження окремих транзакцій, і навіть в актуальності програмного забезпечення, яке застосовується.
У ситуації майнінгу, наприклад, це виглядає наступним чином. Будь-який учасник мережі може перевірити, чи є хеш нового видобутого блоку актуальним. Якщо так, майнер виконав певну обчислювальну роботу, за яку він отримує право на нагороду. І цей процес куди простіше, ніж самостійне обчислення хеша блоку, тому перевірку можна здійснювати незалежно від обчислювальної потужності.
Логічно припустити, що чим вище обчислювальна потужність (або хешрейт) кожного конкретного майнера, тим вище його шанси підібрати рішення для додавання нового блоку в ланцюжок. Однак вузлів безліч, тому їм доводиться постійно конкурувати між собою. Або, навпаки - об'єднуватися в загальні майнінг-пули, щоб підвищити власну обчислювальну потужність.
І не виключено, коли більше половини обчислювальної потужності мережі виявиться зосередженим в одному місці. Чим менше мережа - тим вище шанс подібного розвитку подій. І володіючи «більшістю голосів», недобросовісні учасники можуть почати порушувати нормальну роботу блокчейна - це і називається «атакою 51 відсотка».
Результати атаки
Можливість контролювати хешрейт відкриває перед зловмисниками безліч можливостей.
- Виняток свіжих транзакцій із загального пулу пам'яті
- Повна відмова від обсаджування мережі (неможливість підтвердження нових транзакцій)
- Зміна порядку і пріоритету транзакцій
- Дублювання або «Повторне відтворення»
- Майнінгова монополія
Однак з деякими речами навіть домінуюча обчислювальна потужність не дозволяє впоратися. Так, наприклад, шанси того, що будуть дубльовані або скасовані попередні транзакції - малоймовірний. Як і банальне «відключення» всієї мережі. Та й зловмисники не зможуть «намалювати» собі довільну кількість нових монет, як і змінити встановлену величину винагороди.
Вже здійснені транзакції вкрай складно змінити, оскільки інформація про них прописана у всіх наступних блоках. Це, втім, реально, але не варто забувати, що ланцюжок постійно добудовується, так що доведеться міняти ще й нові блоки, щоб отримати криптографічно послідовну і пов'язану структуру. Так що підвищений ризик зміни без повідомлень зберігається хіба що для транзакцій, які перебувають на відстані в пару підтверджених блоків.
Що стосується відключення системи або «руйнування мережі», то це неможливо через швидку адаптацію програмного забезпечення. Для цього буде достатньо згоди більшості учасників, що залишилися в мережі. Це може призвести до створення двох незалежних ланцюжків - перекрученого, в якому залишаться тільки вузли-зловмисники, які працюють за старими протоколами, і нового, що помітно поступається за обчислювальною потужністю, але вільного від шкідливого впливу.
Ризики і ймовірності, пов'язані з атакою
Як вже було сказано, отримання більш 51 відсотка обчислювальної потужності мережі - ситуація цілком реальна. Особливо високий ризик для нових і малих мереж альткоінів, в яких ще недостатньо вузлів для підтримки підвищеної стабільності. Крім того, не варто забувати, що обчислювальні потужності систем постійно зростають. Так, наприклад, навіть на зорі свого створення, мережа біткоін вже була стійкою до «перехоплення управління» - чисто в силу складності і енерговитратності процесу. А на даний момент, навіть маючи в своєму розпорядженні ресурси цілої держави, вже неможливо досягти домінуючого хешрейта. Сучасним альткоінам пощастило менше - з «атаками більшості» вже зіткнулися такі мережі, як Monacoin , Bitcoin Gold і ZenCash.
Крім того, «атака більшості» не працює в ситуаціях, в яких консенсус не залежить від величини обчислювальної потужності. Так, наприклад, алгоритми Proof-of-Stake частково від нього захищені. Однак у них є свої власні dразливості, з якими ще теж досить складно впоратися.