> То есть, при некотором количестве пользователей, на мой публичный сервер синхронизируется
> ВЕСЬ трафик. Ок. существенная доля трафика.Весь трафик комнаты. Не весь трафик вообще. Т.е. если у вас на сервере 100 пользователей и они сидят только в локальных комнатах - федеративного трафика не будет. Если хотя бы один пользователь зайдёт (присоединится) на другой сервер в комнату с большим количеством пользователей, то трафик из этой комнаты (все сообщения) будут через федерацию приходить и на ваш сервер. Т.е. ваш сервер становится ещё одним "плечом" распределённого хранения комнат, в которые вошли ваши пользователи.
> То есть, пользователь моего публичного сервера, один раз зайдя в "комнату" с
> другого сервера заставит
> а) вытащить всю историю "комнаты"
> б) получать сообщения этой "комнаты" в будущем, даже если пользователь больше никогда
> не залогинтся на мой сервер. (а вдруг таки залогинится через
> три года?)
Да, именно так.
> Это особенно актуально для "комнат" с тяжелым контентом. типа -прона-^W прикольных кортинок
> кошечек.
В этом есть некоторый напряг распределённого хранения комнат. Но так же и плюс. Например вы создали комнату на своём сервере, пригласили туда людей, а потом передумали и выключили свой сервер. А комната осталась и люди там продолжают общаться. Просто у неё стало меньше на "одно плечо". К слову, был свидетелем такой ситуации.
> Ну, и чем тогда matrix отличается? К почте есть почтовые клиенты,
> позволяющие показывать переписку в виде чата, "комнаты" = давно проверенные списки
> рассылки.
Если так рассуждать, то зачем чаты, когда есть почта? Чаты имеют свою нишу. Или вы против только федеративных чатов? :-)
> Для логина, под своим уникальным логином, на любой сервер нужен ЦЕНТРАЛИЗОВАННЫЙ сервер
> (сервис) авторизации, а никак не e2e.
Не вдавался в подробности, но там была какая-то хитрая схема на ключах/доверии. Что-то вида "все сообщения шифруются, а логин-пароль - это ключ, который открывает доступ к этому потоку". Предполагалось без централизованного сервера авторизации. Пока эту фичу отложили "на потом". И для неё таки нужно чтобы все сообщения шифровались.
> Доверие при обмене ключами... ну да. есть такая _фундаментальная_ проблема. Я уверен
> что никакой матрикс не сможет решить.
Детализирую ситуацию. На данный момент доверие устанавливается через проверку отпечатков ключей. Через дополнительный канал связи. Сейчас есть два способа - через набор текстовой последовательности или же через последовательность иконок (зачитывать через голосовую связь, например). Далее, насколько я понял стоит задача авторизовать все остальные устройства пользователя. Т.е. авторизовав одно его устройство - доверяем всем его устройствам (иначе приходится сверять отпечатки для всех устройство, что утомительно).
> И я больше скажу - email и xmpp клиенты УЖЕ УМЕЮТ одним
> шифрованием коннектится к сервер, другим ключом шифрования шифруют переписку с одним
> корреспондентом, третьим ключом шифрования шифруют переписку с другим корреспондентом,
> переписку с четвертым шифруют двумя ключами.
Да, я эти пользовался. Это хорошо.
> В matrix, судя по всему, будет один ключ для всего?
На каждом устройстве пользователя - свой ключ. Соответственно удалённый абонент шифрует сообщение для каждого устройства пользователя его открытым ключом.
> И возвратимся к вопросу трафика - сегодня я был на одном сервере,
> завтра буду на другом. Мои _личные_ p2p сообщения (для простоты допустим
> в приватной "комнате" на двоих) за время моего отсутствия куда денутся?
Не понял вопроса. Как вы были на одном/другом сервере? У вас две учётки на разных серверах и?
На данный момент пользователи в матрице "привязанны" к своим серверам.
> А в случае если мой личный сервер будет недоступен? Потеряются или
> будут где то хранится? Разлетятся ПО ВСЕМ СЕРВЕРАМ(пусть и зашифрованные способом
> _сегодня_ "невзламываемым") и будут там (на всех серверах) лежать в надежде
> что я вот-вот залогинюсь (и складываться в бэкап каждые 15 минут).
> А завтра в этой реализации e2e "внезапно" найдется уязвимость позволяющая их
> легко читать?
Если в вашей комнта есть только @user1:my_server.ru и @user2:my_server.ru - то при выключении my_server.ru - комната исчезнет. Как и пользователи user1 и user2.
Если же в эту комнату вы пригласите пользователя @user3:server2.ru, то состояние (история) комнаты синхронизируется на сервер server2.ru. И если вы выключите свой сервер (my_server.ru), то комната сохранится (вместе с историей переписки) на server2.ru.
В настройках комнаты вы можете выставлять видимость истории - например видимость всей истории для для всех пользователей или истории, начиная со времени входа пользователя (т.е. он не видит то, что было ранее - логично предположить, что эта история не полетит к нему на сервер, но это я предполагаю исходя из логики).
> Ограничимся несанкционированным чтением e2e. А то еще можно было бы рассмотреть возможность
> _писать_ от чужого имени, но это проще делать через взломанное устройство
> пользователя, или еще проще, прямо через API клиента. У клиента matrix
> есть ведь API? Для всяких антиспам плагинов, или самописных ботов-автоответчиков с
> ИИ.
> Или matrix постыдно огородился, API прячет, протокол закрытый, клиентский софт в виде
> обфусцированных бинарников?
Есть АПИ для клиентов/ботов, для web-хуков, для приложений (глубокая интеграция на стороне сервера , например, чтобы пользователи другой сети "мапились" на пользователей матрицы). Вполне простое и достаточно удобное API. Удобнее ВК-шного и телеграмовского, на мой взгляд (из того, что пробовал).
> Подозреваю что про гейты в skype\wechat\viber\telegramm\whatsapp (без которых не затащить
> на платформу больше полутора гиков) спрашивать вообще бессмысленно...
Почему? Сомниваетесь в осведомлённости или не позволяет предвзятость?
Есть мосты/боты для связи со скайпом, телеграмом, ватсапом, ВК, irc, xmpp, slack, discord, hangouts, email, gitter.