-
Notifications
You must be signed in to change notification settings - Fork 18
Technical Specification
hai-ko edited this page Jan 26, 2022
·
16 revisions
- Send signed messages to an account (ENS Domain or hex address)
- Create a X25519_XSalsa20_Poly1305 key and publicize it as ENS text record
- End to end encryption of messages using the X25519_XSalsa20_Poly1305 key pairs
- Notifications
- Use the public key derived from the registration transaction or from an EIP 619 entry to encrypt messages (in combination with a MetaMask Snap)
- Perfect Forward Secrecy
- Decentralized message storage and transport
- Tokenization
- Alice enters Bob's ENS Name
- Bob's ENS name is resolved to an ethereum address
- Alice submits a message
- Alice is asked to sign the message via MetaMask
- Alice sends the message via the ENS Mail Storage and Transport Service
- The service checks the signature
- The message including the signature is stored in a DB controlled by the service
- Bob's ENS Mail Dapp queries for new messages
- The message from Alice is received and checked if the message matches the signature
- The message is displayed
I didn't dive deep into PFS until now. So this may not work but I want to document this idea anyway.
- Alice types the message and clicks send
- The message is stored locally in the Dapp
- The exchange of the ephemeral session key is done over the same channel the actual message would be sent (e.g. over the ENS Mail Storage and Transport Service)
- After the key is exchanged Alice encrypts the message and sends it.