Steemail Proposal
Overview
Email may not be the most popular technology of the day, but it is still a necessary evil. Fortunately Steem presents a solution to some of Email's most plaguing problems - spam and overuse.
Imagine an email system where each message has a required postage that must be applied in order for the message to be successfully sent. The postage rate would be defined by the user and would be fully customizable. For example...
- Unknown Sender (5 SBD postage)
- Coworker or collaborator (1 SBD postage)
- Personal Friend (0.25 SBD postage)
The possibilities for this list are endless, but the main point is that each sender has a specific postage fee that must be attached to a message if they wish for it to be sent.
Requiring postage will greatly reduce traditional spam and any spam that is successfully sent benefits the recipient user financially. However, postage fees may discourage the sending of non-spam messages, thus Steemail must provide a means of returning the postage to the sender at the discretion of the recipient. Not only should this eliminate spam, but it should also reduce excessive use of the messaging system and encourage high quality communications.
How Would The System Work?
How can the Steem blockchain be used to mimic email and allow for postage fees?
In order to explain how the Steemail system might work, it is perhaps easiest to walk through what might occur when a user sends a message to another user. I will use a familiar email user interface, Gmail, to provide a visual representation of an interaction with the system. Let's say that I wish to send a Steemail to @ned.
1) I select compose message and I am presented with the UI for creating a new Steemail.
As you can see in the image below, composing a Steemail would be very similar to composing an email. In fact I have just tweaked the Gmail interface a bit for simplification purposes and added 'Postage Balance' in the topbar. Postage Balance is essentially your SBD balance in your Steem account wallet.
2) I add the 'To' Recipient and complete the message just as I would with email
The Steemail system should be familiar for the user, thus composing a message should be just like composing an email. Instead of an email address a Steem account is entered. Once entered the system checks the account on the blockchain to obtain the required postage for the message. If the sender does not have a sufficient Postage Balance the send functionality should be blocked. Notice in this fictional case @ned has a postage fee of 10 SBD and that amount is reduced from the total postage balance. The actual withdrawal would not occur until a send has occurred.
3) Sending
Upon sending the user should be notified that the postage fee will be transferred to the recipient. Once confirmed by the user, the message is encrypted and forwarded to the recipient by means of the transaction memo. Of course there are many details left out of this explanation such as how the message content should be encrypted and how the message should be formatted into a string. A standard would need to be developed in order to send metadata, images, and attachments along with the message; and also so the system can distinguish Steemail messages from ordinary transactions.
4) Receiving
When @ned signs in to Steemail the system would parse his transaction history for valid Steemail messages and they would be presented to him in his Inbox - just as emails are presented in a typical email Inbox. When reading a message a button to return the postage would be present and clearly visible. Unfortunately in my example case @ned would probably keep my 10 SBD because the message I composed is of low quality and only serves to clutter the Inbox.
But What about XYZ?
I am aware that there are many holes and missing details in the provided explanation, but Steemail is just an idea in its infancy. Any developer(s) that wish to undertake the Steemail project would need to carefully analyze the project to identify possible pitfalls and limitations.
I have a fairly robust vision for the project and I would be happy to provide assistance with development of a SRS if anyone is interested.
Why I am sharing Steemail with the Steemit community
Steemail is a project that originally I had intended to develop, but honestly the scope of the project is quite large and I simply don't have the time for such a major undertaking. I am hoping fellow steemian dev(s) might be interested because I truly believe this project would be of great value for the Steem ecosystem.
Thoughts and Questions?
I look forward to hearing everyone's thoughts and questions on Steemail!