Send authenticated but anonymous messages from Identity Wallet

Is the seemingly paradoxical notion of “Authenticated Anonymity” possible or is authentication essentially incompatible with anonymity?


Anonymity and specifically sender anonymity have become essential requirements for many privacy-related applications. On the other hand, anonymity may be abused for various malicious activities.


With the new feature “Authenticated Anonymity” CodeB addresses both with protocols for authenticated anonymous communications channels. In those channels, the client can authenticate with the Group SSI while the latter can only authenticate the fact that an address is one of the qualified members of a defined group.

Use Cases

  • Allow a group of suppliers to pre-negotiate without revealing their identity.

  • Allow exchange of GDRP critical customer information for a closed group of defined business partners.

  • Mitigate fraud through communication with business partners without having to reveal commercially sensitive information.

How does it work?

This protocol requires three independent Self-Sovereign Identity Contracts. Each contract can have an unlimited amount of member SSI’s assigned.

  1. Sender Contract

  2. Recipient Contract

  3. Zero Knowledge Broker Contract

Usage from within Identity Wallet

In order to send authenticated, anonymous messages from within the Identity Wallet the sender- and recipient contracts have to be added to a group managed by the ZKP Broker Contract. This has to be done by one of the administrators of the ZKP Broker Contract.

Note: The sender and/or the recipient can be also the manager of the ZKP Broker Contract.

Publishing of encryption key

The Zero Knowledge Broker Contract distributes ZKP Key Material to the sender and recipient contracts. In order to do so it is required that every participant of the group publishes one or more public keys in his own SSI Contract.


1. From within the wallet go to: Apps -> Secure Messaging -> Settings


2. If there isn’t any key available a new one will be generated now automatically. It will be ONLY used to receive the encrypted ZKP material from the ZKP Broker.


3. Choose a “Zero Knowledge Proof Container” and click in “Action” on “Attach my public key”.


4. Inform any ZKP Broker Contract Administrator to trigger the distribution of ZKP material.

Send Message

Once a ZKP Broker Contract Admin has distributed the ZKP material you are ready to send authenticated but anonymous messages.

Now go to Apps -> Secure Messaging -> Send Message. You will find your public/private key pair generated before here.


Note: For an extra level of anonymity you can generate a new key pair with every message you send. Just delete the “Mnemonic Phrase” from the form field and press the “Import or generate key” button.


To send a message you need to choose the recipient group, edit your message and press the “Send Message” button.


If you want to learn how to send messages via command line interface kindly read: https://blog.codeb.io/howto-send-authenticated-but-anonymous-messages-with-the-codeb-commandline-interface/

Recent Posts

See All