Участники разработки Bitcoin Core обсуждают, является ли редко используемый сетевой транспорт ценной страховкой или обузой, которую слишком дорого сохранять.
В открытом обсуждении поддержки CJDNS участник Bitcoin Core Эндрю Чоу сообщил, что одна база данных сидера содержала 25 адресов CJDNS, достигла 22 и классифицировала только семь как «хорошие». Автор вопроса Мартин Зумзанде сообщил, что видел всего три-четыре пира, хотя Bitcoin Core поставляется с 11 фиксированными сидами CJDNS.
Эти цифры вызвали поддержку устаревания и предложение предупредить пользователей Bitcoin Core в релизе 32.x перед планируемым удалением в 33.x. Но эта последовательность версий была предложена как вопрос. По состоянию на воскресенье, 23 августа, вопрос оставался открытым в вехе 32.0, а раздел разработки был пуст — без ветки реализации или пул-реквеста.
Bitcoin Core реализует CJDNS как опциональный транспорт для пиринга и обработку адресов, вне консенсусной системы Bitcoin. Вопрос #36041 вместо этого спрашивает, стоит ли Bitcoin Core сохранять обработку адресов CJDNS как запасной вариант, когда тонкий пул пиров может также сделать узлы только на CJDNS более уязвимыми для окружения.
Семь «хороших» узлов Bitcoin Core фиксируют один снимок сидера
Цифры сидера описывают базу данных одного краулера в определенный момент времени. Глобальная популяция CJDNS может быть больше, поскольку цифры охватывают только базу данных этого краулера.
Сидер применяет «хороший» как более строгий технический фильтр, чем просто достижимость. В реализации DNSSeedrs Чоу узел должен пройти проверки, охватывающие его порт, заявленные сетевые сервисы, версию протокола, высоту цепочки и постоянную надежность. Тесты надежности используют несколько временных окон и требуют минимального количества попыток. Это объясняет, как сидер смог достичь 22 адресов, классифицировав только семь как «хорошие».
Только семь из 22 достигнутых адресов прошли фильтры «хороших» узлов, оставив пул пригодных для использования узлов мелким. Узел Зумзанде нашел всего три-четыре пира, и он предложил низкие трехзначные числа как приблизительный уровень, который мог бы оправдать дальнейшую поддержку. Ориентир в виде низких трехзначных чисел был личным предложением Зумзанде, давая мейнтейнерам цифру для обсуждения вместо просто общей жалобы на низкое использование.

Одна лишь арифметика количества пиров оставляет стоимость атаки изоляцией неизвестной. Bitcoin Core обычно поддерживает восемь полных ретрансляционных исходящих соединений и два соединения только для ретрансляции блоков, с эпизодическим «филером» или дополнительным соединением только для ретрансляции блоков. Один участник предложил обосновать любой порог CJDNS стоимостью заполнения этих обычных слотов и изоляции узла только на CJDNS.
Атака изоляцией изолирует узел, монополизируя пиры, которые формируют его представление о сети. На транспорте с небольшим известным набором адресов у атакующего более концентрированная цель. Текущая документация Bitcoin Core по CJDNS уже не рекомендует работу только на CJDNS, поскольку узел может не заполнить свои исходящие слоты, многократно пытаться подключиться к нескольким известным адресам и стать более восприимчивым к Sybil-атакам.
Успешная изоляция зависит не только от десяти обычных исходящих слотов. Публичное обсуждение оставляет полную стоимость атаки неоцененной. Доступность адресов, выбор адресов, пороги надежности краулера и эпизодические дополнительные исходящие соединения — все это влияет на практическую подверженность. Измеренный пул поддерживает опасения по поводу концентрации для узлов только на CJDNS, в то время как стоимость использования этой уязвимости остается неоцененной.
Избыточность зависит от того, как используется CJDNS
CJDNS предлагает другое преимущество, когда он является одним из нескольких путей. Документация Bitcoin Core представляет его как дополнительный вариант наряду с IPv4, IPv6, Tor и I2P, позволяя узлу сохранить другой маршрут доступным, если у одной сети возникнут проблемы.
Этот вариант стало проще использовать. CJDNS 22.1 представил DNS-сидируемое автоматическое пирингование 8 января 2025 года, сделав ручное добавление пиров опциональным. Затем Bitcoin Core объединил обновленную документацию по настройке 30 марта 2026 года, заменив устаревшие инструкции по ручному пирингу на новый процесс.
Эти изменения снизили порог входа. Любое влияние на популяцию пиров CJDNS в Bitcoin остается неизмеренным. Bitcoin Core объединил еще одно изменение документации 18 августа 2026 года, прямо не рекомендующее использование только CJDNS, поскольку пул адресов оставался слишком мал для надежного заполнения исходящих слотов.
Таким образом, операторы узлов только на CJDNS и операторы смешанных сетей сталкиваются с разными рисками. Оператор узла только на CJDNS сталкивается с риском мелкого пула, о котором теперь предупреждает документация. Оператор смешанной сети использует CJDNS для опционального разнообразия маршрутов и может сохранить другие автоматические пути, даже когда у CJDNS мало пиров.
Будущее устаревание удалит настройки транспорта, оставив правила валидности блоков без изменений. Bitcoin Core добавил полную поддержку CJDNS в версии 23.0 как функцию P2P-сети. Обсуждение ограничено обработкой адресов и опциями подключения; консенсус Bitcoin и правила валидности блоков находятся вне его рамок.
Непосредственно затронутыми операторами будут те, кто использует -cjdnsreachable, который указывает Bitcoin Core обрабатывать соответствующий диапазон IPv6 как CJDNS, или -onlynet=cjdns, который ограничивает автоматические исходящие соединения этим транспортом. Согласно документации, ту же опцию можно комбинировать с другими сетями, в то время как входящие и добавленные вручную соединения остаются доступными при -onlynet.
Вопрос #36041 остается открытым, а последовательность предупреждения и удаления зафиксирована только как предложение. Он показывает небольшой наблюдаемый набор пиров, несколько выражений поддержки устаревания и одну предложенную последовательность релизов. Он также показывает, почему только количество использований является неполным тестом: резервная мощность наиболее ценна до отказа основного маршрута, но резервная сеть, которая не может заполнить соединения, может предложить меньшую устойчивость, чем предполагает ее присутствие в коде.
Bitcoin Core по-прежнему поддерживает CJDNS. Объединенный пул-реквест с предупреждением или удалением изменил бы статус обсуждения. Семь «хороших» узлов делают компромисс разнообразия транспорта измеримым и оставляют выбор удаления открытым.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Liam 'Akiba' Wright




