Since this gets discussed over and over again, here are:
My Requirements for a messenger service
security
- If there are one or many central operators/brokers/hubs, they can not read ANY messages past, present or future
- encryption is always end to end.
- I can change between my different devices and continue a chat (key exchange between my devices)
- end to end encrypted group chats (this basically means changing keys and distributing them to all participants whenever someone joins or parts)
privacy
- I can have multiple full identities (not just usernames as aliases that share a profile image+text+contacts-list)
- I can receive and send messages as all my identities at the same time (no logout+login)
- Nobody can find out IF I am using this type of messenger at all by knowing my phone number
- Neither my phone number nor any other information about my real world identity are stored with the operator (exception for temporary storage of IPv6/IPv4 addresses)
- optional: If there are one or many central operators/brokers/hubs, they can not know the identities that communicate with each other
- optional: I can set up my own server/hub/broker
usability
- texts, images and locations can be shared
- one to one and group chat
- there is a chat history that I can access from all my devices (my be stored encrypted with my own key on a server or local on the client)
- optional: videos can be shared
- optional: voice and/or video -chat
- optional: voice and/or video group-chat