dm3 - Decentralized Secure and Open Messaging Protocol
Devcon 6 · 11 Nov 2022 · 5:58
Heiko Burkhardt presents dm3, a protocol for decentralized, open and secure messaging built on web3 services like ENS and IPFS without relying on any central service. Users control where their messaging data is stored, and ENS text records serve as the registry for public keys, with reference implementations including a web app and widget.
Speakers
Topics
From Devcon 6, hosted by Ethereum Foundation.
Transcript
foreign [Music] I'm a developer at Corpus Ventures and I'll present you now dm3 what is Team three team three is a simple protocol for messaging it's decentralized it's open and it's secure to achieve these people built dm3 on established we have three protocols like ens the properties I just mentioned make it sensor help resistant we designed it so
that there is no single point of failure and with game three users are in control of the data everyone can write an own implementation of team 3. the basis for dim 3 is the record registry where users can install their profiles and we used in as text records for that and on the middle layer we have the delivery service delivery services um buffer the messages until they are delivered to the messaging app and on top you can see the messaging app since the registry is the core of the
protocol I'll now explain a little bit deeper how it works as you can see we have the public encryption key in the text record for the profile and also the signing public signing key and also important is the delivery service name so there must be at least one name of a delivery service okay um the delivery service text record also contains uh public keys and it also and it contains the URL this URL is pointing to the delivery service instant where messages can be sent to it's also possible to store data off
chain or on layer 2 by using ccip this allows the creation of Team three profiles without a high transaction fees or if it's completely off chain you don't have any and it also makes it possible to include external public key databases this slide shows how a message would be delivered from Alice to Bob so at first um Alice types a message into the app then the app will retrieve the team 3 profile of Bob which contains the delivery service name he is using
in The Next Step the app will retrieve the delivery service text record where there is the URL of Bob's delivery service then the message is signed and encrypted and sent to Bob's delivery service the delivery service will push the message um to the app that will be decrypted and the app will um look for the profile of Alice and that's needed because um the signature needs to be checked and if it's the signature is fine um the Bob can then read the message
besides the protocol definition we also have a reference implementation um the reference implementation consists of four different packages we have the dm3 web app as you can see the screenshot here on the left side um it's also online available on the app.gm3.chat besides the web app we have the react package this can be used um to include which set of dm3 into other apps and then we have the backend package this contains the delivery service and finally we have the dim three lip which contains basic protocol services so
um we are working also on protocol extensions which takes care of things like group messaging these extensions are optional um if you want to write a team 3 implementation you only need to follow the dm3 message transfer protocol so that's our roadmap until now we are published the protocol draft and the reference implementation a critical goal of Team three is to enable interoperability between uh currently isolated web history Messengers we are now talking with many of those messenger teams
to understand their needs and yeah please let us know if you want to join the discussion after we finish that process we'll publish the specification and adapt the reference Implement implementation yeah um if you want to uh include team 3 into your app let us know um we'll try to support you that's it thank you [Applause]