Уязвимости Bitcoin

Материал из Bitcoin Wiki
Перейти к: навигация, поиск

Bitcoin является потенциально уязвимым к некоторым видам атак.

Потенциальные проблемы[править]

Кошелек слабо защищен от краж[править]

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

Новый кошелек можно вскрыть старым паролем через бэкапы[править]

Старую копию кошелька со старым паролем часто можно легко восстановить с помощью создания программы восстановления (например, Apple Time-Machine): восстановление старого кошелька с паролем восстанавливает текущий кошелек и текущий пароль. Поэтому частая смена пароля не является гарантией полной безопасности.

Решение проблемы. Создатели криптовалюты должны внести изменения так, чтобы смена пароля кошелька автоматически создавала новый кошелек с новым паролем, и накопленные сбережения должны автоматически переноситься на новый кошелек. При этом при попытке восстановления копии старого кошелька и пароля будут нерабочими. С другой стороны, пользователи, не разбирающиеся в технических тонкостях создания кошельков, не смогут восстановить данные своих сбережений криптовалюты и потеряют биткоины вместе с кошельком.

Прослеживание истории денежных транзакций[править]

Основная статья: Анонимность

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

Атака Сибиллы[править]

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

  • Атакующий блокирует транзакции от других пользователей, отсоединив вас от общей сети.
  • Атакующий подсоединяет вас только к блокам, которые создает он, в отдельной сети. В результате этого будут появляться транзакции, которые будут пересылать деньги повторно (double-spending).
  • Атакующий может видеть все ваши транзакции с помощью специальных программ.

Атака 51%[править]

На ранних этапах своего развития Биткоин и любая подобная ей валюта уязвима к так называемой «Атаке 51%»: пока в распоряжении атакующего находятся мощности большие, чем у всей остальной сети, то он сможет не подтверждать чужие блоки, подтверждая только свои, а значит получать 100 % всех новых биткоинов и блокировать по своему усмотрению любые транзакции. (Однако проводить любые транзакции по своему усмотрению он не сможет, полкольку у него не будет чужих приватных ключей, чтобы эти транзакции подписать.) На данный момент для осуществления такой атаки в сети Bitcoin требуется вычислительная мощность во много раз превышающая мощность всех суперкомпьютеров из рейтинга TOP-500 (500 самых мощных в мире суперкомпьтеров), после массового перехода майнеров с видеокарт на специально разработанные для добычи биткоинов интегральные схемы(asic), защита от такой атаки стала ещё сильнее.

Атаки Denial-of-Service (DoS)[править]

Отправка большого количества "мусорных" данных на узел, обрабатывающий транзакции, может усложнить его работу. Bitcoin имеет встроенную защиту от атак типа «отказ в обслуживании», но современные атаки такого типа в каждым разом становятся все сложнее для блокировки.

Например, клиент Bitcoin Satoshi версии 0.7.0 блокирует все подозрительные узлы и транзакции, не позволяет дублировать транзакции, контролирует появление атаки DoS, ловит в системе злоумышленников, исправляет ошибки и т.д. В последней версии 8-ой клиента Bitcoin Satoshi добавили возможность отлова нестандартных транзакций (больше 100 килобайт) и возможность деления информации от распределения ее в память и на диск.

Замедление времени[править]

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

Уязвимость транзакций[править]

Основная статья: Уязвимость транзакций

Несмотря на то, что транзакции в Bitcoin подписываются, эта подпись охватывает не всю информацию, которая хешируется для получения хеша транзакции. Фактически, существуют возможность изменить параметры транзакции так, что изменится хеш, но подпись останется прежней.

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

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

Нелегальные данные в цепи блоков[править]

В некоторых странах передача определенных данных считается нелегальной. В транзакции Биткоин могут вноситься такие данные, что, в свою очередь, может привести к проблемам с законом. В каждом узле существуют правила, запрещающие произвольные данные (нестандартные), но небольшое количество «брака» в сеть попадает время от времени.

Проблемы с безопасностью и баги[править]

Баги могут привести к нестабильности в защите системы. Например, в узле информация должна обновляться за короткий отрезок времени. Если из-за бага это не произошло, в цепочке не появилась нужная информация, неправильные данные начали распространяться по сети и т.д. Все это может стать причиной остановки работы сети на несколько часов.

Современные версии клиентов Биткоин создаются с учетом того, что им придется реагировать на баги и вовремя исправлять ошибку.

Проблемы недалекого будущего[править]

Взлом хэш-функций[править]

Алгоритмы для вычисления хэш-функции стандартов SHA-256 и ECDSA считаются такими, которые невозможно взломать на текущих компьютерных мощностях. Появление высокопроизводительных квантовых компьютеров увеличит риск взлома данных функций. В этом случае, хэш-функцию Bitcoin можно будет заменить на более сложную.

Увеличение числа пользователей[править]

Сеть Биткоин справится с наплывом пользователей. Но если каждый пользователь начнет пользоваться специальными программами для того, чтобы спрятать свои IP-адреса (являющиеся доступными остальным пользователям), сеть работать не будет.

Возможны проблемы с сегментацией и потерей транзакций[править]

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

Захват сети хакерами[править]

Если хакеры захватят половину компьютерной мощности сети (так называемая ">50% attack"), они могут нанести вред работе: внедрить блоки с «грязными» транзакциями, осуществить double-spending, устранить майнеров от блоков, блокировать транзакции и т.д. Тем не менее, хакеры никогда не смогут:

  • Отменить транзакции,
  • Заблокировать отправку транзакций,
  • Изменить количество монет за закрытие блока,
  • Создать монеты на пустом месте,
  • Заняться отправкой монет, которые им не принадлежат.

Транзакции-спам и транзакции-«пустышки»[править]

Хакеры могут рассылать пользователям ложные транзакции, тем самым осложняя работу системы. Возможна также рассылка «пустышек» для создания сбоев работы сети.

Не является проблемой[править]

Генерация избыточного числа адресов[править]

Количество адресов на работу сети не влияет. Это может только занять место на жестком диске или забрать ресурсы центрального процессора ПК отдельно взятого пользователя.

Генерация блоков сниженной сложности[править]

Злоумышленник гипотетически может создать цепочку фиктивных блоков со сниженной сложностью. Эти блоки будут действующими для сети, но их цепочка не сможет соединиться с другими цепочками в сети, поскольку остальные узлы смогут проверить, что блок является фиктивным (см. Proof-of-work). Так «обманные» блоки будут отклонены сетью.

См. также[править]