The dm3 Protocol — web3 messaging focused on encryption, decentralization, and interoperability

Steffen Kux
Corpus
Published in
7 min readApr 3, 2023

--

In today’s world, messaging is the most important application of the Internet. Whether through instant messaging applications, social media platforms, or enterprise communication tools, messaging has become an integral part of our daily lives, providing us with the means to communicate and stay connected.

However, most messaging solutions available today are centralized services that operate as closed data silos controlled by a single entity, largely limiting users to only communicate within the same platform. The closed nature of these systems also results in a lack of interoperability, making it nearly impossible for users to communicate with others using different platforms.

In addition, centralized messaging services often lack transparency, making it difficult for users to verify the security and privacy of their data. This can result in privacy violations, censorship, and manipulation, as well as single points of failure that can compromise user data security.

As a result, the centralized nature of most of today’s messaging solutions creates a fragmented landscape where users are limited in their ability to communicate freely and securely, and where privacy and security depend on a few large corporations with competing interests providing these services.

Recently, several web3-based messaging solutions have emerged, which offer secure communication and data exchange over the Internet using web3 technology. Despite the focus on security and privacy, interoperability between these different messaging protocols and applications remains a real challenge. Many of these systems are closed ecosystems as well, meaning they are not architected to interoperate with other systems, resulting in barriers to communication and data exchange. As the web3 space continues to grow and evolve, finding ways to improve interoperability and facilitate seamless communication between different systems will be an important area of focus.

The mission of the dm3 protocol is to enable cross-platform communication. How? Let’s dig a little deeper:

Why interoperability matters

In web3, we have learned that diversity is important for distributed systems. Applied to messaging, there are different use cases that may require different technologies. Also, messengers are often focused on specific ecosystems and offer special features that best suit the needs of the users of that ecosystem. There is no “one tool fits all”. But when there are multiple applications, it is even more important that users are free to choose the tool that best suits their preferences, while still being able to communicate with others even if they are using other messengers.

Actually, this is quite similar to email clients. Users are free to choose the client they prefer. Using the same client (= ecosystem) may provide users with additional features. However, emails can be sent to and received by individuals regardless of the client they are using. Typically the sender does not know or even care what email client the recipient is using.

What is a common standard for email does not currently exist for messenger applications. Because they are closed systems, it is not possible to send messages across applications. However, both user demand and expected future regulatory requirements will make interoperability a necessity for the long-term success of messenger applications.

In order to have a variety of solutions and thus applications well adapted to the needs of the users, it is important to be able to exchange messages between the services or protocols. This is even more important when the solutions address a relatively limited user group, as is currently the case for many web3 messaging applications.

Interoperability could also be achieved by having all applications and services agree on a single base protocol. However, this would require extensive changes to existing applications, services, and their underlying protocols, which may conflict with specific security and/or privacy features of these applications, making it difficult, if not impossible, to achieve.

A layer-0 protocol that does not replace other protocols but connects them without compromising security or privacy is a much better option. Connecting ecosystems rather than replacing working solutions is the dm3 approach to accomplish interoperability.

The dm3 protocol

The dm3 protocol is a modular messaging protocol based on web3 technology. The lean base protocol (DM3MTP — the dm3 message transport protocol) is designed to be the foundation layer for secure communication and an interoperability protocol to exchange messages with other messaging services or protocols.

The protocol is built on two foundations:

  • A central registry (based on ENS — Ethereum Name Service) of information for encrypted communication (public keys for encryption and signature validation, information on where and how to deliver messages), and
  • Independent, self-sovereign delivery service nodes that act as relays for delivered messages or as a gateway to other services or protocols.

The protocol’s architecture is modular (see architecture graph below) and further protocol extensions can be built on top of it. Optional features such as increased privacy, group chats, public feeds, billboard chats, spam protection, notifications, storage, and more can be added as needed.

The architecture of the dm3 protocol

The dm3 registry

The dm3 registry is a central place, where

  • Public keys for the encryption,
  • Public keys for signature verification,
  • Information on how and where messages should be transmitted,

are published.

This information must be available in a decentralized manner and not controlled by a single entity. Nor must this information be linked to a single technology.

With ENS, an established name service is available. Anyone can register their own name, and subdomains (sub-names) can be created, too. For many applications, this name is already used as an identity.

The resolver of an ENS name or sub-name can manage the information on-chain, but via CCIP (Chainlink’s Cross Chain Interoperability Protocol), information from off-chain sources such as Layer-2s, other chains, or even cloud services can be easily integrated and becomes verifiable on-chain. So, it is possible that every user publishes his/her own dm3 profile, but also dm3 compatible services can integrate their already existing registries.

The delivery service

A delivery service is a node that provides the API of the dm3 protocol to receive and cache messages for recipients until they actually pick them up. Every user can run his/her own delivery service or use one of the offered services. Users can also connect to multiple delivery services simultaneously, in order to have no single-point-of-failure and to ensure that a failure of one service does not affect accessibility or also to ensure that the communications are not censored (see also https://dm3.network/how-dm3-works).

Communication scheme of the dm3 protocol

In addition — and this is essential for dm3 as an interoperability protocol, a delivery service may act as a gateway to another protocol or service, receiving the messages and forwarding or injecting it into the connected protocol or service (see picture). There, the dm3 message is transferred to the accompanying client as a special “encoding” and can be unpacked and displayed.

Delivery Service as a gateway to another service, protocol, or app

Depending on the client, a message to another dm3 receiver can be sent directly to the receiver’s dm3 delivery service, or the gateway delivery service of the sending application, service, or protocol can be used as a relay to collect outgoing messages and send those messages to the delivery services of the receivers. This makes it very easy to integrate another service or protocol without having to change the internal architecture.

Since the messages are end-to-end encrypted, the delivery service as a gateway cannot read nor modify the content but forwards it as a package (the dm3 message envelope) to the client, if necessary, additionally encrypted according to the rules of the associated protocol or service. In this way, neither the security nor the privacy is altered or compromised in any way.

Conclusion

Interoperability is essential for the success of web3 messaging and will also become important for existing web2 messaging services. Only interoperable messaging solutions give users the necessary self-sovereignty to freely choose the solution that best suits their needs.

With the dm3 protocol, an interoperable messaging protocol is available that can connect existing services and protocols as a layer-0 protocol without compromising on security and confidentiality. Without requiring major changes to existing systems, dm3 compatibility can be achieved.

The dm3 protocol is a public good and can be freely integrated into any existing protocol, service, or application. The mission of dm3 is not to replace but to connect!

Learn more about the dm3 protocol and connect with us on Twitter, Mastodon, or LinkedIn and join our community on Common Ground to stay updated on the latest developments. If you’re interested in integrating dm3 into your messaging application, don’t hesitate to schedule a call with us!

--

--