Нет интернета? Нет проблем. bitchat собирает сеть из воздуха
NewsMakerЭта сеть не принадлежит никому — и в этом её сила.
Разработчик под ником jackjackbits представил приложение bitchat — децентрализованную систему для обмена сообщениями, которая работает через Bluetooth-соединение и не требует доступа к интернету. С помощью этого инструмента пользователи могут напрямую отправлять сообщения между устройствами, объединёнными в локальную сеть.
bitchat использует технологию Bluetooth Low Energy ( BLE ) и собственный протокол построения mesh-сети, при котором каждое устройство одновременно выполняет роль приёмника и передатчика. Такая схема позволяет сообщениям перемещаться от одного участника к другому на расстояние до 30 метров, а за счёт цепочки устройств зона покрытия увеличивается. При наличии мостовых узлов, которые находятся в зоне действия сразу нескольких групп устройств, сеть расширяется автоматически. Вся система работает полностью автономно, без участия серверов или мобильных операторов.
Интерфейс приложения ( @jack )
Передача сообщений внутри сети организована по многоступенчатому принципу с применением параметра TTL (time-to-live) — времени жизни пакета. Это значение изначально устанавливается на уровне 7, что определяет максимальное число пересылок сообщения по сети. При каждой передаче значение уменьшается, а при достижении нуля пересылка прекращается. Такой механизм помогает избежать зацикливания информации и уменьшает нагрузку на сеть.
Чтобы сообщения доходили до временно недоступных пользователей, в системе предусмотрена функция хранения и отложенной доставки. Если устройство-адресат временно отсутствует в сети, сообщение сохраняется в памяти отправителя. После повторного появления получателя в зоне действия сети данные автоматически передаются. Сообщения для «избранных» пользователей могут храниться неограниченное время, для остальных предусмотрен лимит хранения — до 12 часов.
Сообщения защищаются с помощью криптографических методов. Для приватного обмена используется схема обмена ключами X25519 и симметричное шифрование по стандарту AES-256-GCM. В групповых чатах, называемых «комнатами», защита строится на основе общего пароля, преобразуемого в криптографический ключ с использованием алгоритма Argon2id. Все сообщения подписываются цифровыми подписями на основе алгоритма Ed25519, что исключает возможность подмены содержимого.
Каждая комната в системе имеет уникальное название в формате хештега и может быть защищена паролем. Владелец комнаты управляет её параметрами, включая смену пароля и настройку времени хранения сообщений. Обнаружение комнат происходит автоматически через активность пользователей в сети, без централизованных каталогов.
Передача данных между устройствами организована с помощью компактного бинарного протокола, что уменьшает объём передаваемой информации. Внутри протокола предусмотрены разные типы сообщений, включая объявления о присутствии устройства (ANNOUNCE), обмен ключами (KEY_EXCHANGE), системные уведомления об отключении (LEAVE), стандартные сообщения (MESSAGE), а также фрагментацию крупных сообщений (FRAGMENT_START, FRAGMENT_CONTINUE, FRAGMENT_END) для их надёжной передачи через BLE.
Чтобы оптимизировать передачу сообщений и снизить нагрузку на сеть, используется алгоритм сжатия данных LZ4. Сжатие активируется автоматически для сообщений размером более 100 байт. Если сообщение уже оптимизировано или не поддаётся сжатию, оно передаётся в исходном виде.
Дополнительно предусмотрены меры для снижения энергопотребления. Система регулирует частоту сканирования окружающих устройств, максимальное количество активных подключений и интервалы рекламирования присутствия устройства в сети в зависимости от уровня заряда аккумулятора. При низком уровне заряда, менее 20%, отключается генерация фонового трафика, предназначенного для имитации активности.
Для повышения конфиденциальности каждое устройство генерирует уникальный идентификатор при каждом запуске. Единственным постоянным элементом остаётся отпечаток публичного ключа, который может использоваться для идентификации избранных пользователей. Случайные задержки (от 50 до 500 мс) для всех сетевых операций дополнительно затрудняют анализ активности по времени.
Система обнаружения и фильтрации повторяющихся сообщений построена на основе оптимизированных фильтров Блума . Они обеспечивают эффективное хранение информации о пересылаемых сообщениях и минимизируют количество ложных срабатываний.
Один из пользователей поделился скриншотом окна обмена сообщениями ( @rektdotbox )
Разработчик рассматривает возможность интеграции bitchat с протоколом Nostr. Такая интеграция позволит выборочно соединять изолированные локальные сети между собой, сохраняя при этом общий принцип автономности и шифрования. Подключение к мостам Nostr будет полностью опциональным и управляемым пользователем для каждой отдельной комнаты. При передаче данных через такие мосты сообщения останутся зашифрованными, а для работы Nostr будет использоваться отдельная пара ключей, не связанная с локальной сетью.
В будущем разработчик планирует расширить перечень поддерживаемых технологий передачи данных. Среди рассматриваемых вариантов — WiFi Direct, обеспечивающий более высокую скорость и дальность передачи по сравнению с BLE, ультразвуковая передача данных для ситуаций, когда радиочастотное оборудование заблокировано, и связь дальнего действия LoRa для работы на расстояниях до нескольких километров.
Управление выбором транспорта передачи сообщений будет организовано через отдельный программный модуль, который будет учитывать характеристики сообщения, доступные каналы связи и состояние устройства, включая заряд аккумулятора. Проект bitchat распространяется как открытое программное обеспечение и может использоваться как готовое решение для организации автономных локальных сетей обмена сообщениями, а также как база для исследований и дальнейшего развития систем защищённой связи.

Разработчик под ником jackjackbits представил приложение bitchat — децентрализованную систему для обмена сообщениями, которая работает через Bluetooth-соединение и не требует доступа к интернету. С помощью этого инструмента пользователи могут напрямую отправлять сообщения между устройствами, объединёнными в локальную сеть.
bitchat использует технологию Bluetooth Low Energy ( BLE ) и собственный протокол построения mesh-сети, при котором каждое устройство одновременно выполняет роль приёмника и передатчика. Такая схема позволяет сообщениям перемещаться от одного участника к другому на расстояние до 30 метров, а за счёт цепочки устройств зона покрытия увеличивается. При наличии мостовых узлов, которые находятся в зоне действия сразу нескольких групп устройств, сеть расширяется автоматически. Вся система работает полностью автономно, без участия серверов или мобильных операторов.

Интерфейс приложения ( @jack )
Передача сообщений внутри сети организована по многоступенчатому принципу с применением параметра TTL (time-to-live) — времени жизни пакета. Это значение изначально устанавливается на уровне 7, что определяет максимальное число пересылок сообщения по сети. При каждой передаче значение уменьшается, а при достижении нуля пересылка прекращается. Такой механизм помогает избежать зацикливания информации и уменьшает нагрузку на сеть.
Чтобы сообщения доходили до временно недоступных пользователей, в системе предусмотрена функция хранения и отложенной доставки. Если устройство-адресат временно отсутствует в сети, сообщение сохраняется в памяти отправителя. После повторного появления получателя в зоне действия сети данные автоматически передаются. Сообщения для «избранных» пользователей могут храниться неограниченное время, для остальных предусмотрен лимит хранения — до 12 часов.
Сообщения защищаются с помощью криптографических методов. Для приватного обмена используется схема обмена ключами X25519 и симметричное шифрование по стандарту AES-256-GCM. В групповых чатах, называемых «комнатами», защита строится на основе общего пароля, преобразуемого в криптографический ключ с использованием алгоритма Argon2id. Все сообщения подписываются цифровыми подписями на основе алгоритма Ed25519, что исключает возможность подмены содержимого.
Каждая комната в системе имеет уникальное название в формате хештега и может быть защищена паролем. Владелец комнаты управляет её параметрами, включая смену пароля и настройку времени хранения сообщений. Обнаружение комнат происходит автоматически через активность пользователей в сети, без централизованных каталогов.
Передача данных между устройствами организована с помощью компактного бинарного протокола, что уменьшает объём передаваемой информации. Внутри протокола предусмотрены разные типы сообщений, включая объявления о присутствии устройства (ANNOUNCE), обмен ключами (KEY_EXCHANGE), системные уведомления об отключении (LEAVE), стандартные сообщения (MESSAGE), а также фрагментацию крупных сообщений (FRAGMENT_START, FRAGMENT_CONTINUE, FRAGMENT_END) для их надёжной передачи через BLE.
Чтобы оптимизировать передачу сообщений и снизить нагрузку на сеть, используется алгоритм сжатия данных LZ4. Сжатие активируется автоматически для сообщений размером более 100 байт. Если сообщение уже оптимизировано или не поддаётся сжатию, оно передаётся в исходном виде.
Дополнительно предусмотрены меры для снижения энергопотребления. Система регулирует частоту сканирования окружающих устройств, максимальное количество активных подключений и интервалы рекламирования присутствия устройства в сети в зависимости от уровня заряда аккумулятора. При низком уровне заряда, менее 20%, отключается генерация фонового трафика, предназначенного для имитации активности.
Для повышения конфиденциальности каждое устройство генерирует уникальный идентификатор при каждом запуске. Единственным постоянным элементом остаётся отпечаток публичного ключа, который может использоваться для идентификации избранных пользователей. Случайные задержки (от 50 до 500 мс) для всех сетевых операций дополнительно затрудняют анализ активности по времени.
Система обнаружения и фильтрации повторяющихся сообщений построена на основе оптимизированных фильтров Блума . Они обеспечивают эффективное хранение информации о пересылаемых сообщениях и минимизируют количество ложных срабатываний.

Один из пользователей поделился скриншотом окна обмена сообщениями ( @rektdotbox )
Разработчик рассматривает возможность интеграции bitchat с протоколом Nostr. Такая интеграция позволит выборочно соединять изолированные локальные сети между собой, сохраняя при этом общий принцип автономности и шифрования. Подключение к мостам Nostr будет полностью опциональным и управляемым пользователем для каждой отдельной комнаты. При передаче данных через такие мосты сообщения останутся зашифрованными, а для работы Nostr будет использоваться отдельная пара ключей, не связанная с локальной сетью.
В будущем разработчик планирует расширить перечень поддерживаемых технологий передачи данных. Среди рассматриваемых вариантов — WiFi Direct, обеспечивающий более высокую скорость и дальность передачи по сравнению с BLE, ультразвуковая передача данных для ситуаций, когда радиочастотное оборудование заблокировано, и связь дальнего действия LoRa для работы на расстояниях до нескольких километров.
Управление выбором транспорта передачи сообщений будет организовано через отдельный программный модуль, который будет учитывать характеристики сообщения, доступные каналы связи и состояние устройства, включая заряд аккумулятора. Проект bitchat распространяется как открытое программное обеспечение и может использоваться как готовое решение для организации автономных локальных сетей обмена сообщениями, а также как база для исследований и дальнейшего развития систем защищённой связи.