С 09.02.2024 уведомления по изменению объёмов торгов работают в штатном режиме. Если вы заметили ошибку пожалуйста свяжитесь с нами.

Некорректные транзакции наносят вред пользователям биткоин

  • 2 894
  • 0

На этой неделе на различных версиях биткоин клиента наблюдаются сбои, вызванные некорректными транзакциями и, как результат, невозможностью перезапустить ПО.

Проблема впервые всплыла рано утром по американскому времени в понедельник в виде комментария на форуме.

«Только что включил ноутбук, запустил Bitcoin QT и получил сообщение: «цепочка блоков повреждена». Нажал OK, сейчас появилось «Реиндексация блоков – осталось 204 недели. У биткоин единиц появился статус «не подтверждено». Что произошло, почему появляется это сообщение?»

Многие другие пользователи также быстро подтвердили наличие подобной ошибки, причем у сообщивших были разные версии Bitcoin-QT, стандартного графического интерфейса биткоин клиента. Реиндексация блоков с использованием биткоин клиента проблему не решила. Та же участь постигла и Bitcoind, одну из версий клиента без графического интерфейса.

Причиной проблемы стал баг, впервые замеченный в версии биткоин клиента под номером 0.8.0, выпущенной в Феврале. Это был значимый релиз, в котором база данных для хранения цепочки блоков Berkley DB была заменена на LevelDB с целью решения проблемы безопасности.

«Проверка на предмет наличия несоответствия данных после перевода на хранение LevelDB в релизе 0.8.0 – это баг, как и проверка версии при транзакциях», – заявил Гэвин Андресен, главный разработчик. «Несоответствие версий транзакции и вызвало проблемы».

Грегори Максвел, еще один член команды, работающий с ядром, опубликовал обходной путь проблемы вчера утром. Он объяснил CoinDesk, что со времени ввода версии 0.8.0 система хранила транзакции с неправильной версией в локальной версии цепочки блоков неверным образом».

«Это неверное поведение само по себе вредно, и до вчерашнего дня не было транзакций с неправильной версией».

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

Ни Андерсен, ни Максвелл не говорили о наблюдаемых свидетельствах серьезного нарушения работы сети. Андерсен заметил, что это не повлияет на работу крупных и жизненно важных областей инфраструктуры, таких как майнинговые пулы, мерчанты или обмен валют, так как в вышеперечисленных областях биткоин ПО имеет тенденцию работать непрерывно, обычно с множеством узлов.

«Поскольку этот вопрос легко решается (как только вы ознакомитесь с инструкцией), полагаю, чувство разочарования у пользователей затмевает реальные нарушения работы»,– добавил Максвелл.

Так откуда берутся эти транзакции? Максвелл установил связь между транзакциями и вновь использованными адресами, указывая на разработчиков кошелька биткоин, чье ПО не может определить версию, прежде чем отправлять транзакцию. «Эту ошибку тяжело предусмотреть, особенно в коде C#»,– заключил Максвел, добавив, что сайт кошелька Github сейчас оффлайн. «Возможно, из-за этого бага он ее отключил».

Эти баги, быть может, и наделали больше шума, чем нужно; показателен другой момент – получено наглядное представление того, как могут быть организованы сетевые атаки: даже будучи случайностью и не неся в себе злого умысла, просто обрабатывая транзакцию и ставя неразрешимую задачу для системы в виде давней ошибку. В данном случае это было просто некорректная транзакция, хранящая часть данных, которые клиент биткоин активно не использовал.

«Если бы баг был в используемых компонентах, то дело бы приняло очень серьезный оборот», – сказал Максвелл. «В коде могла бы быть соответствующая уязвимость».

Основная команда по разработке ядра в настоящее время трудится над решением. «Как только мы убедимся, что мы можем предложить хороший фикс, и проблема не может быть вызвано каким-то другим обстоятельством, мы выпустим версию 0.8.5»,– заключил Андерсен.

Дата публикации: 19.09.2013
Оставить комментарии

Здесь еще не было комментариев.

Pro banner