Cryptomessaging is a decentralized instant messaging system.
The cryptomessaging architecture is driven by three design tenets:
- Cryptographically Derived Identity such as accounts on Bitcoin, allows the creation of one or more chat ids for each person and enables operation without a userid. This system lets people create identities without the need for a central user account authority.
- Decentralized Message Forwarding where there is no central server managing all accounts. Instead, thousands of servers managed by different people or organizations work together to deliver messages.
- Open Source where software can be reviewed by peers to quickly discover security issues and identify bad actors.
The following diagram is a simplified view of the different Cryptomessaging services and clients and how they interact:
- iOS and Android apps provide the messaging interface to the person.
- Keyrings store people's public and private keys. These keyrings may exist on the client device, may be backed up by cloud offerings, or may be stored securely in remote servers.
- Messages are stored in the apps.
- Many Message Reflectors accept messages from Cryptomessaging apps and forward them to the appropriate clients. For group chats, a single message may to sent to several different reflectors.
- Apple Push Service is the Apple Push Notification service.
- Android Push Service is the Google Firebase Cloud Messaging service.