
Комментарии 14
Вы переизобрели reticulum?
Нет, это другой уровень. Reticulum это сетевой стек -адресация, маршрутизация и шифрование поверх любой среды, хоть LoRa и радио, вообще без интернета. Мессенджеры (LXMF, Sideband) строят уже поверх него. Мы сеть с нуля не делаем -у нас обычный интернет и модель почтовых ящиков. Остров это тупой ящик с очередью, клиент сам кладёт запечатанный конверт в ящик(и) получателя и сам их опрашивает (читайте статью внимательнее, пожалуйста). По духу это ближе к email или Nostr, чем к Reticulum. Общее есть -идентичность это ключ, центрального авторитета нет, всё шифровано. Ближе всего к миру Reticulum у нас офлайн-режим, радиочат по Bluetooth и Wi-Fi Direct без серверов и интернета, но он намного проще и только локальный, не маршрутизируемый стек. Reticulum отличная штука, просто решает другую задачу.
Децентрализация упирается в пуши на мобильных устройствах, это всё что нужно знать про децентрализацию сегодня. Сперва децентрализуйте пуши для устройств Apple, Android - собирайте подписи, подкупайте кого-то в Евросоюзе, чтобы они инициативу продвигали и обязали эти компании изменить подход к уведомлениям.
Замечание по делу, пуши действительно главная точка централизации, и на iOS вы абсолютно правы -фоновые уведомления это только APNs, ни один сторонний сервер этого не обойдёт, это ограничение ОС, а не приложения. Лоббировать Apple с Google нам не по силам, не будем притворяться.
Пара уточнений по тому, что реально можно. Это не "всё или ничего" -свой остров подключает собственный ключ APNs, и тогда пуш идёт остров -> Apple напрямую, мимо нашего центра, то есть даже пуш не централизован через нас (в self-host это настраивается). На Android мы FCM сегодня вообще не используем, доставка идёт по живому сокету пока приложение работает, а полноценный фоновый будильник пока отложен. Его, кстати, на Android можно сделать без Google, постоянным foreground-сервисом, как у Briar и FOSS-XMPP клиентов, ценой батареи. На iOS без APNs надёжного фона нет, тут крыть нечем.
И главное по сути -централизация пуша ортогональна(!) тому, что мы децентрализуем. Пуш это всего лишь "пинг, проверь ящик". Аккаунт, переписка и ключи лежат на островах, а не у Apple с Google. Отвалится пуш-канал, вы потеряете не сеть и не данные, а только мгновенность уведомления, сообщения дойдут при следующем открытии. Мы защищаемся от того, что центр выключат, как это случилось с ICQ, а не строим идеальную децентрализацию каждого байта. Пуши важная, но решаемая в рабочем порядке деталь, а не сердце системы.
Ну хотя бы на комментарии с нейронкой не отвечайте.
Статья у вас начинается хорошо и интересно, а потом начинает фонить нейрослоп (и соотношение смысл/количество слов падает)
Техническая проблема не в централизации софта, а в монополии транспортного уровня операционной системы её создателями.
Это все несомненно здорово, но всегда есть узкие места.
Я сейчас не говорю про архитектуру проекта, узкие места в другом.
Какие минусы я вижу и это проблемы не конкретного мессенджера, а в целом любой попытки создать новый продукт:
Наверное самая большая проблема - вопрос доступности и цензуры. С осени Google водит обязательную верификацию разработчиков. При качественном абьюзе Гугл может отозвать верификацию и приложение скорее всего будет недоступно на Android, хорошо, что на Андроиде это пока ещё лечится. Вопрос сколько времени это можно будет обходить?
Айфоны - вот тут все печально, Apple по жалобам выпилит ваше приложение и тут ничего не сделаешь...
Риск запрета вашего мессенджера - а его запретят, если вдруг он каким-то образом взлетит. Думаю многие слышали о том, что в Санкт-Петербурге проверяют телефоны, правда пока на факт включаемости в метро, но гарантий что не введут санкции на использование запрещённого ПО нет. Плюс опять же вопрос блокировки все равно остаётся актуальным. Тот же Тор в России практически недоступен. Да можно мучиться с мостами и прочим, но по факту из коробки не работает и скачать его без средства из трёх букв тоже давно уже нельзя.
Ну это касаемо именно рисков борьбы с ним, но есть и другая наверное самая большая проблема:
Отсутствие аудитории. Помните Jabber? Казалось бы, что проще, есть OpenSource сервера и клиенты под любые системы, пили любую защиту, шифрование и т.д. Но загнулся он по факту от того, что нет аудитории, нет пользователей - нет смысла.
А какая монетизация?
Спасибо, вопросы правильные, и большинство из них честнее считать не решёнными, а постоянной борьбой. По пунктам.
Магазины и верификация -согласен, и именно поэтому мы на магазины не опираемся. На Android основная раздача это прямой APK с сайта плюс встроенный апдейтер, не Play. Верификация разработчиков ужесточается, да, но прямую установку и открытый код пережить отзыв из стора проще, чем приложению, которое живёт только в магазине. iOS тут реально слабое место: Apple контролирует раздачу целиком и по жалобе выпилит, крыть нечем. Единственное смягчение, iOS-клиент открыт (AGPL, на GitHub), его можно собрать и поставить мимо App Store, плюс в ЕС появились альтернативные сторы. Идеально это не закрывает (появится нужда - откатимся к эре Jailbreak'а, почему нет?).
Блокировки и запрет -тут работает сама архитектура, а не один обходной костыль. Смысл в том, что инфраструктура размазана по пользователям. Остров это просто почтовый ящик, его поднимает кто угодно у себя, и данные не лежат в одной точке, которую можно изъять. Транспорт это релеи, и их задумано много -дешёвые, одноразовые, поднимаемые самими пользователями, "сегодня здесь, завтра там", как гидра. Рубишь одну голову, остальные живут, единой точки входа, которую гасят одним махом, нет. Поверх этого идёт onion-маршрутизация через несколько релеев, чтобы ни один из них не видел разом и кто ты, и куда идёшь, и чтобы прятался сам факт обращения к конкретному острову.
Честно про статус -часть уже работает (наши релеи, обфускация, подписанный конфиг с ротацией без обновления приложения, self-host островов), а массовый пользовательский рой релеев и onion это то, к чему мы идём по этапам, не всё уже включено. И есть по-настоящему трудный кусок, не решённый ни у кого -первичный бутстрап, когда заблокировано всё известное (та же проблема, что у Tor с мостами, серебряной пули нет). А если само использование объявят вне закона и начнут смотреть телефоны, это уже не инженерная задача -улики убрать можно (нет телефона, сжигаемые аккаунты, decoy-PIN, приложение не кричит "запрещёнка", итд), но закон софтом не отменить.
Аудитория, проблема Jabber -cамый сильный и самый честный пункт, и он сложнее любой криптографии. XMPP технически имел всё и умер на сетевом эффекте и UX. Мы не делаем ставку "построим, и придут". У нас есть клин, которого у джаббера не было -люди под реальной цензурой, которым обход нужен прямо сейчас, это совсем другое давление к адопшену. И есть небольшая, но настоящая аудитория, под тысячу зарегистрированных, пришедшая именно из-за этого, а не вопреки UX. Урок джаббера учли буквально -одно опрятное приложение, а не двадцать клиентов на выбор, шифрование по умолчанию, а не "настройте OMEMO". Победим ли мы проблему аудитории вообще, честно, открытый вопрос, тут можно лечь как все. Но клин реальный, и первая тяга есть.
Монетизация -само приложение бесплатное, и навсегда. Платят не люди, а организации. Логика тут стандартная для open-source -код открыт, остров можно поднять самому бесплатно, но большинству это не нужно или некогда, и за удобство и инфраструктуру платят охотно. Что конкретно -бизнесу (редакции, юристы, фонды, команды, которым нельзя в Telegram или WhatsApp) готовая закрытая сеть островов в их контуре под ключ, с настройкой и поддержкой, плюс управляемый хостинг "свой остров в один клик" для тех, кто не хочет возиться с VPS. Тем, кому защита реально нужна и кто платить не может (журналисты, активисты), всё бесплатно по заявке. На рекламе и данных не зарабатываем принципиально, это убило бы смысл. Что коммерция и бескомпромиссная приватность не противоположности, уже показал SimpleX, мы той же дорогой -продаём удобство и инфраструктуру, а не пользователя.
Локальная история как осознанный размен это сильное решение для угрозы изъятия (серверу нечего отдать), но стоит проговорить цену прямо: потеря всех устройств это потеря переписки, и мультидевайс тут становится не удобством, а частью модели надёжности
Все изобретено до нас.
Например месседжер Jami(а это свободное ПО!) c дежурным аккаунтом на "незасыпающем" микрокомпьютере или сервере расположенном прямо у пользователя дома и включенным просто во внутренню локалку решает задачу "непропуска сообщений". Синхронизации чатов на разных устройствах - в Jami это встроеный по дефолту функционал тоесть когда Вы включаете другое устройство его чат дополняется тем что успел принять "дежурный аккаунт".
Данные аккаунтов(включая чаты) храняться локально. Месседжер Jami поддерживет и как P2P так и маршрутизацию через внешнии TURN(последнее нужно при работе клиентов за симметричным NAT).
Сам по себе TURN-сервер это просто специфический внешний маршрутизатор(точнее один из огромного множества "коллег") который ничего не хранит и изъятие которого просто изменит маршрут трафика.
Авторизация в Jami через DHT-сеть(положить которую изъятием отдельных узлов невозможно).
Скрытый текст

Jami не работает. И никогда толком не работал.
зы сейчас нет запроса на новые мессенджеры, их уже есть больше чем нужно. есть запрос на впн для обхода блокировок. может быть впн с расширениями, одно приложение внутри которого несколько разных поставщиков для разных приложений и целей
Решение хорошее, опробовал сегодня и на яблоке, и на андроиде. Везде свои плюсы и минусы, но думаю они решаемые. Вот чего, конечно, не хватает - это федерации. Развернуть локальный сервер нынче имеет смысл, который сложно переоценить, но без возможности общения с другими островами - он по факту бесполезен. Потому что изолированный корп.чат можно сделать сейчас на каком угодно открытом \ коммерческом решении, но почти никто не предлагает федерацию, кроме пожалуй Matrix / Element.
Острова вместо серверов: как сделать мессенджер, который переживёт изъятие своего сервера