Атака 51%

Матеріал з Вікіпедії — вільної енциклопедії.
(Перенаправлено з Атака 51% (Криптовалюти))
Перейти до навігації Перейти до пошуку

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

Сутність проблеми[ред. | ред. код]

У Криптовалютах «електронна монета» містить кількісну інформацію («номінал») та вказівку на поточного власника (точніше, його адресу). Для передачі «електронної монети» власник підписує своїм закритим ключем транзакцію з зазначенням криптовалютної адреси нового власника[1]. Тепер тільки власник закритого ключа від нової адреси зможе передати «монету» далі — здійснити нову транзакцію з нею. Але через можливість копіювання одержувач не зможе визначити, скільки разів колишній власник вже витратив цю «монету»[1] (проблема подвійної витрати).

Для запобігання подвійній витраті було запропоновано об'єднувати транзакції в блоки, з яких утворюють безперервний ланцюжок — формують блокчейн. Для отримання права додати новий блок треба довести виконання роботи (Proof of work), тобто знайти рішення специфічній задачі, складність якої регулює витрачений на неї час. Чим більше обчислювальної потужності зосереджено в руках, тим більше шансів знайти вірне рішення першим. Фактично, включення транзакції в блок посвідчує її дійсність. Одержувач може легко переконатись у коректності ланцюга попередніх передавань «електронної монети». Така перевірка дозволяє переконатись, що запропонована продавцю «електронна монета» не витрачалась раніше. Будь-які транзакції з цією «монетою» тепер можливі лише за підписом закритим ключем, що відповідає новій адресі, а інші система ігноруватиме.

Але контрагенти можуть перевірити лише наявність у відправника активів станом на деякий час у недавньому минулому. Якщо досить швидко зробити кілька платежів, які передають одну «монету» на користь кількох різних адрес, то інформація про жоден з низки платежів ще не отримає підтвердження (не потрапить до чергового блоку) і кожен зможе пересвідчитись у правомірності транзакцій. Лише після того, як одна з транзакцій (не обов'язково здійснена першою за часом) потрапить до чергового блоку, решта транзакцій з цією «монетою» буде відкинута. Але є відносно значна ймовірність, що через тимчасове розгалуження ланцюжка блоків у паралельних гілках можуть бути транзакції, в яких одну й ту саму «монету» отримають різні адреси. Кожна з гілок рівноправна, не є хибною. У процесі формування нових блоків якась із гілок рано чи пізно стане довшою за іншу. Вона отримає перевагу, а коротша гілка «помре» і всі транзакції, що знаходяться в її блоках, якщо вони раніше не опинились у паралельній гілці, потрібно буде розміщувати в нових блоках[2]. Так як одна з версій спірної транзакції залишиться в раніше сформованому блоці, то версія транзакції з гілки, що «померла» при спробі додати її в новий блок буде відкинута. Ймовірність існування паралельних ланцюжків вкрай мала і експоненційно зменшується зі зростанням довжини ланцюжка[2]. Чим більше підтверджень має транзакція (чим далі від краю відійшов її блок в загальному ланцюжку), тим менш ймовірне скасування транзакції через відмирання гілки, що її містить. Тому угоди з нульовим підтвердженням потенційно ризиковані, що змушує багатьох продавців встановлювати вимогу на мінімальну кількість підтверджень. Зазвичай, шість підтверджень є гарним балансом між часом очікування (для біткойну це близько однієї години) і впевненістю в тому, що транзакція не буде фальсифікована[3].

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

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

Якщо при майнінгу підконтрольна потужність менше 50 % загальної потужності мережі, то ймовірність успіху експонентно знижується з кожним новим блоком. Наприклад, при 30 % потужності ймовірність створення додаткової гілки на 6 блоків становить всього 18 %.

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

Наслідки[ред. | ред. код]

Навіть якщо атака буде успішною, це не призведе до:

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

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

Вплив на ринок криптовалют[ред. | ред. код]

Атака 51 % не завжди здійснюється з метою отримання прибутку. Прибуток можуть принести тільки популярні криптовалюти з високими фінансовими показниками. Атаки маловідомих альткоїнів зазвичай мають одну метою — прибрати конкурента. Заробити суттєво на подвійній витраті в невеликій мережі навряд чи вдасться, а ось скомпрометувати криптовалюту і завдати удару по її репутації — цілком[5].

Захист від атаки[ред. | ред. код]

Кращий захист криптовалюти від атаки 51 % у дуже великій потужності мережі, що можливо лише при значній популярності та великій аудиторію користувачів.

Інше рішення — перехід на використання алгоритму підтвердження частки (Proof-of-stake), де навіть володіння 51 % криптовалюти не гарантує успішність подібної атаки.

Відомі випадки атаки 51 %[ред. | ред. код]

Подвійна витрата біткойнів на практиці ніколи не була зафіксована. На травень 2015 року паралельні гілки ніколи не перевищували 5 блоків[6].

Створення 1 серпня 2017 року Bitcoin Cash фактично роздвоїло спершу єдиний блокчейн біткойну. Це дало змогу легальної подвійної витрати одних і тих самих «монет» на різних платформах. Але це не атака, а особливість створення нової криптовалюти шляхом відділення від раніше існувавшої.

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

У 2016 році відразу дві криптовалюти, що функціонують на базі Ethereum, Krypton і Shift зазнали атаки від групи хакерів, які іменують себе «Команда 51». В результаті атаки зловмисникам вдалося здійснити подвійне списання коштів і вкрасти 22000 монет через сервіс обміну криптовалют Bittrex.

07.01.2019 розробники Ethereum Classic, спочатку заперечували атаку 51 % на мережу цієї криптовалюти, але визнали цей факт, припустивши, що вона пов'язана з тестуванням нового ASIC обладнання[7]

1 серпня 2020 року на блокчейн Ethereum Classic невідомими хакерами була проведена атака 51 %. Вони змогли отримати до 807 260 ETC (5.7 млн дол).[7] 6 серпня була нова атака. Вкрали 1,68 млн дол. Обчислювальні потужності хакери орендували на маркетплейсі NiceHash.[8] В середині серпня мальтійський сервіс обміну OKEx заявив, що зловмисники, можливо, із Росії, оскільки 4 з 5 екаунтів, задіяних у крадіжці криптовалюти за допомогою атаки 51 %, були з Росії.[9]

Примітки[ред. | ред. код]

  1. а б Bitcoin: A Peer-to-Peer Electronic Cash System, 2008, раздел № 2 «Transactions».
  2. а б Bitcoin: A Peer-to-Peer Electronic Cash System, 2008, раздел № 4 «Proof-of-Work».
  3. Arthur Gervais, Hubert Ritzdorf, Ghassan O. Karame, Srdjan Capkun. [https://eprint.iacr.org/2015/578.pdf Tampering with the Delivery of Blocks and Transactions in Bitcoin]. Архівовано з джерела 28 вересня 2017.
  4. Bitcoin: A Peer-to-Peer Electronic Cash System, 2008, раздел № 11 «Calculations».
  5. Атака 51 %: насколько опасна и как влияет на рынок криптовалют. Архів оригіналу за 15 січня 2019. Процитовано 15 січня 2019.
  6. Number Of Orphaned Blocks. Blockchain.info. Архів оригіналу за 7 березня 2016. Процитовано 6 січня 2018.
  7. а б Сеть Ethereum Classic подверглась второй атаке за неделю [Архівовано 4 жовтня 2020 у Wayback Machine.], ForkLog, 6 серпня 2020
  8. Ущерб от второй за неделю атаки на Ethereum Classic оценили в $1,68 млн [Архівовано 8 серпня 2020 у Wayback Machine.], ForkLog, 7 серпня 2020
  9. Следы атаки 51 % на Ethereum Classic могут вести в Россию [Архівовано 27 вересня 2020 у Wayback Machine.], BLOOMCHAIN, 17 серпня 2020