Bitchat — Связь без интернета

Мессенджер на случай аппокалипсиса. Ну или типо того.

##\       ##\   ##\               ##\                  ##\     
## |      \__|  ## |              ## |                 ## |    
#######\  ##\ ######\    #######\ #######\   ######\ ######\   
##  __##\ ## |\_##  _|  ##  _____|##  __##\  \____##\\_##  _|  
## |  ## |## |  ## |    ## /      ## |  ## | ####### | ## |    
## |  ## |## |  ## |##\ ## |      ## |  ## |##  __## | ## |##\ 
#######  |## |  \####  |\#######\ ## |  ## |\####### | \####  |
\_______/ \__|   \____/  \_______|\__|  \__| \_______|  \____/

Новый мессенджер BitChat от известного предпринимателя Джека Дорси пока поддерживает P2P-связь только по BLE, но в будущем планирует добавить LoRa, WiFi Direct и ультразвук.

BitChat — приложение для обмена сообщениями в режиме P2P-сети, которое и правда работает без интернета, сотовых вышек или какой-либо инфраструктуры.

Используя сетевую технологию Bluetooth Low Energy (BLE) и Noise Protocol Framework, она обеспечивает безопасные приватные коммуникации.

Основная инновация в том, что BitChat объединяет mesh-сети на Bluetooth, протокол Noise для шифрования, а также эфемерные ID для повышения конфиденциальности. До сих пор на рынке не было мессенджеров, которые сочетают все три эти качества.

Децентрализованная mesh-сеть: Автоматическое обнаружение узлов и передача сообщений по Bluetooth LE, через несколько узлов (хопов) до конечного адресата:

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

  • Приватность: никаких аккаунтов, номеров телефонов и постоянных ID. Для работы мессенджера используются временные эфемерные ID, которые постоянно изменяются
  • Трафик прикрытия: Обфускация времени и фиктивные сообщения для повышения конфиденциальности.
  • Сквозное шифрование: используется протокол Noise
  • Хранение сообщений в офлайне и отправка, когда узел появляется в зоне досягаемости. Сейчас для обычных сообщений реализован 12-часовой кэш, а для избранных контактов — неограниченный по времени.
  • IRC-команды: знакомый интерфейс со стандартными командами. В данный момент поддерживаются следующие:
    • /j #channel — присоединиться или создать канал
    • /m @name message — отправить личное сообщение
    • /w — показать пользователей в онлайне
    • /channels — показать все обнаруженные каналы
    • /block @name — блокировать юзера
    • /block — показать всех блокированных пользователей
    • /unblock @name — разблокировать
    • /clear — очистить чат
    • /pass [password] — установить/изменить пароль канала (только владелец)
    • /transfer @name — передать владение каналом
    • /save — Toggle message retention for channel (только владелец)
  • Универсальное приложение: нативные приложения iOS и macOS, а также порт на Android.
  • Экстренное удаление: тройное касание мгновенно удаляет из программы все данные.
  • Оптимизация производительности: сжатие сообщений LZ4, экономия заряда батареи (четыре режима работы, в зависимости от текущего уровня заряда) и оптимизированный сетевой трафик. Для передачи трафика используется эффективный бинарный протокол с минимальным оверхедом (заголовки по 26 байт), автоматическим сжатием больших сообщений.

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

Поддержка WiFi Direct улучшит дальность связи BitChat с нынешних 10−30 м (BLE) до 100−200 м, а скорость — с 1−3 Мбит/c до 250+ Мбит/c.

Исходники клиента iOS и клиента Android опубликованы в открытом доступе. APK для Android можно скачать здесь.

Добавить комментарий

To respond on your own website, enter the URL of your response which should contain a link to this post's permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post's URL again. (Find out more about Webmentions.)