с мифическим "сквозным шифрованием"
Почему с мифическим? Сделать так, чтобы на сервере невозможно было за разумное время прочитать пользовательские сообщения - вполне реально. Было бы желание. Делается это относительно просто. Используем в качестве идентификаторов пользователей публичные ключи Ed25519. Т.е. на сервере хранится например телефонный номер и ассоциированный с ним публичный ключ. Сами пары ключей Ed25519 каждый пользователь генерирует для себя самостоятельно. Далее через механизм shared secret каждый пользователь генерирует вектора инициализации и пароли например для AES-256. Индивидуально для каждого собеседника. И уже через сгенерированные значения с помощью AES-256 шифруется каждое сообщение. После чего сообщения отправляются для хранения на сервер.
Можно также усилить защиту. Если каждый пользователь при отправке сообщения будет генерировать одноразовую пару Ed25519 и шифровать сообщения уже с помощью неё. Через тот же механизм shared secret и AES - если известен публичный ключ оппонента, то никаких проблем с этим нет. Публичный ключ, с помощью которого осуществлялось шифрование, при этом прикрепляется к сообщению и отправляется собеседнику, чтобы он мог расшифровать полученное.
В этом случае никто, кроме вас и собеседника, сообщение прочитать не сможет. За разумное время. Так-то в принципе любой шифр ломается.