Logo
Поділитися цією статтею

Шахрайська транзакція завдає шкоди випадковим користувачам програмного забезпечення для Bitcoin

Помилка розробника Bitcoin гаманця не дозволила людям цього тижня перезапустити програмне забезпечення для Bitcoin клієнтів.

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

Проблеми вперше виникли рано вранці в понеділок за американським часом, коли a повідомлення на форумі Bitcoin Talk.

Продовження Нижче
Не пропустіть жодної історії.Підпишіться на розсилку Crypto for Advisors вже сьогодні. Переглянути Всі Розсилки
«Щойно відкрив свій ноутбук і запустив Bitcoin QT і отримав повідомлення blockchain corrupt, я натиснув «ОК», і тепер з’являється «Переіндексація блоків – 204 тижні», — сказав постер. «Крім того, мої біткойни не підтверджені. Що сталося, чому повідомлення?»

Інші швидко повідомили про ту саму помилку на кількох комп’ютерах із різними версіями Bitcoin-QT, що є стандартною версією Bitcoin клієнта з підтримкою графічного інтерфейсу користувача (GUI). Переіндексація блоків за допомогою Bitcoin клієнта не вирішила проблему. Ця ж проблема торкнулася Bitcoind, який є версією клієнта без графічного інтерфейсу.

Проблема виникла в результаті помилки, спочатку представленої у версії 0.8.0 Bitcoin клієнта, яка була вперше випущений у лютому. Ця версія була основним випуском, у якому база даних, що використовується для зберігання ланцюга блоків, перейшла з Berkeley DB на LevelDB, щоб вирішити проблему безпеки.

«Це помилка в нашому коді, яка перевіряє невідповідності бази даних LevelDB, з’явилися, коли ми перейшли на сховище LevelDB у випуску 0.8.0, у поєднанні з помилкою, яка перевіряє номер версії в транзакціях», — сказав Гевін Андресен, головний розробник. «Проблему викликала транзакція з неправильним номером версії».

Грегорі Максвелл, інший член CORE команди розробників, опублікував a обхідний шлях за проблему вчорашнього ранку. Він пояснив CoinDesk , що з версії 0.8.0 програмне забезпечення неправильно зберігає транзакції з негативними номерами версій у локальній версії ланцюга блоків.

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

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

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

«Оскільки проблему легко вирішити (якщо ви знайдете вказівки), я підозрюю, що це означає, що це, ймовірно, набагато більше джерело розчарування, ніж це фактичний збій», — сказав Максвелл.

Отже, звідки взялися транзакції? Максвелл простежив їх за деякими повторно використаними адресами. Він вказав на розробника Bitcoin гаманця, програмне забезпечення якого не змогло ініціалізувати версію перед відправкою транзакції. «Цю помилку важко зробити, особливо в коді C», — сказав він, додавши, що сторінка гаманця на Github зараз офлайн. «Можливо, він вимкнув його в автономному режимі через цю помилку».

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

«Якби помилка була в тому, що було використано, це була б дуже серйозна помилка, що створює розгалуження», — сказав Максвелл. Однак для цього знадобиться відповідна вразливість у коді.

Зараз CORE команда розробників працює над виправленням. «Коли ми будемо впевнені, що маємо гарне виправлення, і проблему T спровокувати іншим способом, ми випустимо версію 0.8.5», — підсумував Андресен.

Danny Bradbury

Денні Бредбері є професійним письменником із 1989 року, а з 1994 року працює позаштатно. Він розповідає про Технології для таких видань, як Guardian.

Picture of CoinDesk author Danny Bradbury