116 / 736SYBIL

Sybil Attack

Один атакующий за множеством якобы независимых участников

Сто учётных записей не обязательно означают сто человек. Sybil Attack использует именно эту разницу: один атакующий выдаёт себя за множество участников. Поэтому Bitcoin не выбирает историю по числу подключённых компьютеров.

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

Анна выбирает сервис по рекомендациям на форуме. Десятки аккаунтов его хвалят, но всеми управляет владелец сервиса. За совпадающими отзывами стоит один автор, а не независимые мнения. Джон Р. Дусер описал соответствующую проблему компьютерных сетей в работе The Sybil Attack 2002 года: один противник может изображать нескольких участников. Придумать имя легко; получение нужных адресов, серверов (компьютеров, предоставляющих услуги другим) и соединений уже может стоить денег и времени. [1]

В сети Bitcoin пир — просто другая сторона, с которой программа обменивается данными. Пётр может запустить несколько узлов, а компания — намного больше. Bitcoin не требует реестра людей, выделяющего каждому по одному узлу. IP-адрес указывает место в сети, к которому подключается программа. Поэтому другой IP-адрес не доказывает, что владелец тоже другой. Управление несколькими узлами само по себе не является атакой; проблема начинается со злоупотребления их кажущейся независимостью. [1] [3]

Full Node Петра — программа, которая самостоятельно проверяет правила Bitcoin. Подписать здесь означает с помощью закрытого ключа, секретного числового значения, создать проверяемое доказательство разрешения на платёж. Другие могут проверить подпись, не зная этого секрета. Даже если все подключённые пиры пришлют узлу Петра транзакцию с недействительной подписью, он её отклонит. Совпадающие ответы не считаются голосами. Блок объединяет транзакции в пакет, добавляемый в общую историю. Узел также проверяет целые блоки: например, не тратят ли они уже потраченные средства и не создают ли недопустимую награду. Сеть предоставляет данные; их допустимость определяется правилами узла, а не популярностью отправителя. [2] [6] [9]

Иногда существуют две конкурирующие допустимые ветви истории. Proof of Work позволяет сравнивать их накопленную работу — вес, определяемый сложностью найденных блоков. Майнинг требует реальных вычислительных попыток; переименование компьютера не добавляет работы. Если атакующий распределит то же оборудование между множеством идентичностей, суммарная мощность от этого не увеличится. Принцип «одна учётная запись — один голос» здесь не работает. [2] [6]

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

Вернёмся к узлу Петра. Атакующий может пытаться заполнить его список известных адресов и занять соединения. Если он контролирует все существенные пути к остальной сети, он может удерживать блоки и показывать неполную либо запаздывающую картину. Такая изоляция называется Eclipse Attack. Sybil Attack может ей помочь, но множество враждебных идентичностей ещё не доказывает успешную изоляцию. Проверять полученные данные — не то же самое, что знать о данных, которые от вас скрывают. [3] [5] [8]

Bitcoin Core сочетает несколько препятствий. При автоматическом выборе исходящих соединений он стремится к сетевому разнообразию и распределяет известные адреса по группам, чтобы один источник не мог легко захватить весь выбор. Короткие пробные соединения feeler проверяют доступность других пиров. Эти механизмы усложняют атаку, но не устанавливают настоящего владельца каждого сервера и не гарантируют защиту от изоляции. Реализация развивается: источники здесь показывают Bitcoin Core 29.0. [4] [7] [8]

IP-адрес или адрес сервиса Tor сообщает программе, куда подключиться. Он не удостоверяет, что на другой стороне находится новый независимый человек. У одного оператора может быть много адресов, а несколько пользователей могут делить публичный IP-адрес или часть сетевого пути. Tor полезен для приватности соединения, но его адрес сам не доказывает независимость пира. Передача сообщений и вес при выборе истории Bitcoin — разные вопросы. [3] [4]

Proof of Work решает важную часть проблемы ложного большинства, но не все риски связи. Сеть P2P — прямой обмен данными между участниками — может сталкиваться с перегрузкой, слежкой и удержанием сообщений. Поэтому защита включает управление соединениями и ограничение расхода ресурсов. Безопасность зависит от того, чем действительно управляет атакующий: только именами, сетевыми путями, вычислительной мощностью или их сочетанием. [1] [5] [6]

Счётчик публично доступных узлов не показывает число людей или результат голосования о правилах. Важны также источники информации узлов и то, что они проверяют сами. Собственный Full Node позволяет проверять полученные блоки, но ему нужна связь с остальной сетью. Кошелёк — приложение или устройство для получения и отправки биткоинов. Если он использует чужой сервер, множество узлов где-то ещё не устраняет эту зависимость. Больше контактов не означает автоматически больше независимости. [1] [3] [9]

Для полной картины прочитайте эту статью вместе с Nakamoto Consensus, Eclipse Attack, Selfish Mining, Block Propagation, Bitcoin, Proof of Work. На эту статью также ссылаются Byzantine Generals Problem, Nakamoto Consensus, Eclipse Attack, Selfish Mining.

DOC · 001John R. Douceur — The Sybil AttackПервичный источник DOC · 002Satoshi Nakamoto — Bitcoin whitepaperПервичный источник DOC · 003Bitcoin Developer Guide — P2P NetworkДокументация DOC · 004Bitcoin Core v29.0 — Peer connectionsДокументация DOC · 005Heilman et al. — Eclipse Attacks on BitcoinПервичный источник DOC · 006The Bitcoin Backbone ProtocolПервичный источник DOC · 007Bitcoin Core v29.0 — Address managerДокументация DOC · 008Bitcoin Optech — Eclipse attacksДокументация DOC · 009Bitcoin Core v29.0 — Block validationДокументация
Обновлено: Сначала источники · Не является инвестиционной рекомендацией