Інфляційний баг або як ледве не загинув біткоїн

Фото - Інфляційний баг або як ледве не загинув біткоїн
Баг, виявлений розробниками Bitcoin Core, дозволяв безкоштовно майнити десятки мільйонів біткоїнів.
У вересні 2018 року розробники таємно виправили вразливість програмного забезпечення, яка, зізнається відомий криптопідприємець Самсон Моу, могла вбити біткоїн.

Як усунули помилку CVE-2018-17144

Інфляційний баг був настільки фатальним, що розробники Bitcoin Core вирішили тримати його в секреті. Криптоспільнота спочатку дізналася лише частину правди: користувачам розповіли, що виявлена вразливість дає відмову в обслуговуванні. З її допомогою хакери могли відключати ноди і навіть спричинити тимчасову несправність значного сегменту мережі. Розробники пояснили, що баг був виявлений у версії Bitcoin Core, яка побачила світ на рік раніше. Виправлену версію випустили протягом 24 годин після інциденту.
Щоб стимулювати швидкі оновлення, було ухвалено рішення негайно виправити та розголосити менш серйозну вразливість одночасно зі зверненням до майнерів, підприємств та інших уразливих систем. Водночас відклали публікацію повної версії, щоб дати системам час для оновлення
, — повідомляється у звіті Bitcoin Core.
Задум спрацював: понад 50% хешрейту майнінгу біткоїна оновилося протягом кількох днів. Адже для багатьох криптанів формулювання «відмова в обслуговуванні» вже звучало досить тривожно. Пізніше їм розповіли, що баг можна було використати для безкоштовного майнінгу щонайменше 21 млн BTC. 

Причини інфляційного багу

Перший звіт про помилку відмови в обслуговуванні був надісланий до Bitcoin Core анонімним користувачем. Через дві години розробник Метт Коралло зрозумів, що помилка насправді є інфляційною. Вона виникла в результаті невдалих спроб розробників підвищити стійкість біткоїна до атаки подвійної витрати. Програмісти знайшли вразливість, яка потенційно викликала масштабний збій нод, коли зловмисник двічі витрачав той самий UTXO (Unspent Transaction Output) в межах однієї транзакції. Оновлення розв’язувало цю проблему масштабного збою системи вкрай невдало. Замість виведення нод з ладу, нова помилка змушувала старих програмних клієнтів розпізнавати транзакції з подвійною витратою як дійсні. 
Баги трапляються. Це правда життя. Я не критикую їх за помилку. Я критикую ідіотів-мінімалістів, які наполягають на тому, що розробники Core — це богоподібні особи і, безумовно, найкращі розробники у світі™
, — сказав провідний розробник протоколу OpenBazaar Кріс Пачія.