End E-mail Spam Forever
There's still a lot of low hanging fruit yet to be exploited by deverlopers in the Steemiverse. One potential product has always stood out to me due to just how little work would be required: an e-mail application that could effectively end spam e-mails forever.
Spam is the STD of the internet
Spam e-mails are one of those persistent problems many have discussed over the years, but still lingers like herpes. Instead of boring you with the details of this problem, let's just dive into the application which could be built in very little time on Steem that would totally solve the problem. I think this approach will have the added benefit of giving you a good understanding of the nature of the problem too. The truth is that people have understood the problem for a long time and have understood the solution too, the technology just didn't exist to implement a decent solution. Check out this article from 2003 to see what I'm talking about: https://www.geek.com/news/charging-for-e-mail-will-stop-spam-551697/.
Leveraging Steem primitives to reduce engineering costs
This application would solely rely on existing primitives and features. It's basically just a UI for the Steem blockchain. From a developer's perspective, that's a good thing. You want to build an application with either the most disruptive potential or the most profit potential (depending on your priorities) while consuming as little engineering bandwidth as possible. This is the essence of Lean Startup methodology and minimum viable products. Get something up and running ASAP and then iterate toward product-market fit.
The key primitive that this entire concept would be built around is the ability to send encrypted messages on Steem which I wasn't even aware of until I read this great article by @adept [https://steemit.com/steemit/@adept/tutorial-how-to-sent-and-recieve-private-encrypted-messages-on-steemit]. Basically, you can send someone any amount of Steem and attach a memo to the transfer which is encrypted when preceded by a pound sign (#). Only the recipient's private key is capable of decrypting the message.
You can already send messages on Steem!
In this context it pays to think about it in reverse: Steem already enables you to send anyone an encrypted electronic message (e-mail) for a fee! The minimum fee is the max divisibility of Steem which is, I believe, .001 STEEM.
To see how this would work, once again I would like to avoid digging into the nature of the problem and instead proceed immediately to the solution which lies entirely in the UI. When you sign into this application you should be faced with a very familiar e-mail user interface. The more familiar the better. Too often people overcomplicate blockchain apps in an attempt to show off the novel tech beneath it. People can only tolerate so much change. Give them novel tech or a novel interface, not both otherwise they'll just be confused.
Enter Steem Connect
Of course, when the user signs in they will have to be signing into a Steem blockchain account. The best way to implement this would be to leverage Steem Connect. Once signed in they would be able to a compose an e-mail just like in any other application. There would have to be a recipient, subject, and body. The recipient is the more complicated part. The app could be designed to appeal solely to Steem users in which case the implementation would be easy as the user would need only insert the recipient's Steem username, exploiting another of Steem's unique advantages of having usernames that are also account addresses. This feature set would be good for a minimum viable product. Later versions could add e-mail address support.
After inputting the username, subject, and body the only thing left for the user would be to hit "Send." So far we've got a pretty solid user experience, but as there is going to be a charge we're going to have to introduce a little friction. After hitting "Send" the user will at least have to confirm that they are willing to be charged the minimum .001 STEEM fee. In addition, at some point they will have to give the application authority to trigger this transfer and again the preferred method would be by leveraging Steem Connect.
If the user hasn't given Steem Connect their active key, then at this point they will have to as this is necessary to trigger the transfer. IMPORTANT: NEVER GIVE APPLICATIONS YOUR PRIVATE KEY. The only exceptions to that rule are open source applications whose code demonstrates that they are handling private keys properly which means having them encrypted on your local machine before touching them. In other words apps should never have direct access to your private keys, just an encrypted version they cannot decrypt. The beauty of Steem Connect is that they already do this and anyone can integrate Steem Connect.
Almost done!
Once the application has the necessary authority it should also notify you if it is going to make a transfer. So the worst the user experience should get within the app is A. requiring you to input your active key into Steem Connect and B. notifying you of the transfer which at a minimum will be .001 STEEM. After those things happen the deed is done!
The message has been sent and all that remains is for the recipient to sign into the app and view the message. The app would simply pull all the encrypted memos from the recipient's wallet and use Steem Connect to decrypt them for the user. Again, the app would not be decrypting the message. The developers of the app would never be able to view the unencrypted message because the decryption is happening locally on your machine and only being displayed through the user interface.
Problem solved?
There you go, we basically just made an app that makes it impossible to send spam, at least without spending .001 STEEM (.006 cents USD) per message. One could argue that we already have a major improvement with just these features. Even if the UI simply required everybody send .001 STEEM with every message, this would be a huge improvement. First of all, .001 STEEM is basically free. I don't think many would view this as a serious barrier to using the application as it is a tiny fraction of penny and no one cares about pennies :). At the same time, if you send enough messages (i.e. "spam") those fees will add up to something significant.
One valid issue would be what happens if/when the price of STEEM goes up enough to make .001 a barrier to entry. At that point the divisibility of STEEM would have to be increased, presumably through hard fork, but this would likely be an easy upgrade to reach consensus over and is already being discussed within the community. This would be important for a lot of apps, not just this one.
But wait, there's more!
While we already have an app that solves a problem many have given up even trying to solve (which should be seen as serious proof of the disruptive potential of this protocol) we can actually make it a lot better with additional options that would require minimal engineering work.
I think the additional features with the highest potential would be enabling users to specify how much they want to charge to receive messages. For example, someone whose time is extremely valuable might want to charge .1 STEEM, 1 STEEM, or more. This is also important because the more successful the user is the more valuable spamming them becomes in which case the .001 STEEM might not be enough to prevent spam.
Adjustable fees
To give one example, you can imagine how little .001 STEEM would do to prevent people from sending Elon Musk messages. It would definitely decrease the amount of spam he would receive by orders of magnitude, but it would likely still be too many messages to serve the purpose. Therefore people should have the ability to adjust the fee.
Multiple fees, multiple inboxes
Another option would be to give people multiple inboxes which sort their messages by the fee paid by the sender. The user could then basically have a tiered system. They could have one inbox for users who pay the minimum fee and another for users who opted to pay a higher fee (say .1 STEEM). This would also enable users to experiment with their fees without excluding anyone. Giving someone the option to pay 1 STEEM to send you a message that gets them into the inbox to which you give preferential treatment doesn't prevent them from sending you a message, but it will give you the opportunity to see how much people are willing to pay to send you messages.
Dynamic fees
A more complicated, but potentially more pleasant implementation of this would be to have automatic and dynamic implementations of this. For example, you could have fees and inbox tiers that are predetermined algorithmically based on things like the number of messages you receive daily or your Steem Power, but features like this don't belong in a minimum viable product.
Return fee feature
A more appropriate feature for an MVP would be to make it very simple for the recipient of a message to return the fee to the sender. I actually think this feature would be potentially massive and is only really possible because of Steem's underappreciated fee-less transfers. The purpose of the fee is not to generate revenue, it's to prevent spam--though it is interesting to consider additional features (perhaps premium features which the developers charge for) that turn the app into more of a revenue generating orientation.
But as the primary function is to prevent spam adding the ability for recipients of a message to return the fee to the sender after reading the message and assessing it as non-spam would improve the user experience by lowering the effective cost of using the application. Since transfers are fee-less neither senders nor recipients nor the developers of the app are getting nickel-and-dimed by transfer fees.
A reputation system too?!
Not only would this feature improve the user experience and make the app feel less like a money-making scheme, which could turn off successful people who really just want to reduce spam, but it would enable the developers to implement a reputation metric as well! For example, imagine you saw that it was 100 STEEM to message Elon Musk, but that he returned that fee to the sender 90% of the time. Then you would know that he is predisposed to returning that fee and so you need only not totally waste his time with your message and in all likelihood you will get your fee back.
Monetization
I don't want to go too deep into monetization as I've already covered quite a bit already. One potential method would be to charge users a percentage of the fee they select. If the user selects 1 Steem then the developer may specify that 10% of that fee would go to the developer. It might be best to only charge this fee if the recipient elects not to return the fee to the sender to ensure a good UX.
Alright, I think I've covered quite a bit in this post. If anyone has any questions, including any developers who are looking for an app to build, feel free to comment on this post or message me on steemit.chat.
Thanks for reading!
This idea along with Steemit itself reminds me of a project that I was involved in for a brief time. It started out as a social media site called Quo Jax. It never really got off the ground, but my friend @libertyrocks and I tried to throw a business model together to build on top of the tech. It was going to be called Liberty Rocks. The problem we ran into that cryptocurrency so elegantly solves is that we couldn't come up with a USD-exchangeable currency that wouldn't either cause us to be thrown in prison for starting our own currency or descend the hypothetical company into bankruptcy trying to entice users to take advantage of said currency (most of the scenarios I played out in my head involved the possibility of more USD going out than coming in if you control the currency yourself). We ultimately scrapped the idea because of these problems and at least I no longer have the time to do anything with it. But anyone interested in running with this idea should seriously look into Quo Jax to get an idea of how such a thing could be structured. There were some really amazing ideas there, and again Steem and SBD would be the perfect currencies to run it.
This is Steem-gold!
I would love to use an auto-refund to certain Steem-mail friends (or exclude them from having to pay any fees)!
Good to know that feature makes sense!
I really like the idea of getting paid to read my emails. I think a similar idea could work with a what'sapp like messaging app also. Great project idea
Great point!
You can already enjoy that luxury with earn.com (formerly 21.co). :)
Super interesting idea. I had no idea that STEEM already had the capacity to send encrypted messages -- this is huge, in my opinion. I love the transparency that STEEM has to offer, but there's obviously still a place in the world for private discussions, and I'm glad this is available. I'm interested in checking out SteemChat a bit more as I get deeper into all this blockchain has to offer.
I think the idea of requiring a fee to send email (private or not) is very viable, and kinda-sorta reminiscent of old-school snail mail and stamps -- and the "return fee" option for non-spam emails is a great idea as well. Thanks for sharing this -- the future seems bright and the possibilities for STEEM seem to be more and more each day I read about it.
Cool! Never thought of the analogy with stamps, but yeah that makes sense!
I did not know about the # encryption. How does this work?
just send 0.001 Steem or SBD by starting your message (memo) with a # and the message will be encrypted!
I really like that idea, and I didn't realize either that STEEM already had an encrypted messaging/memo system. Interesting! This is basically "build an interface", no reinventing the wheel, just utilizing the strengths of Steem itself.
I like the return fee idea as well. I think what I like best about this is it is inheritance spam-proof, as each transaction always has a minimum fee. Spam is definitely one of the biggest wastes of space and bandwidth that occurs through email, so having a disensentive to spam built in is really neat
Try sending someone 0.001 SBD for fun and begin typing with a "#" , then log out and look at the massage you just sended to someone!
Cool, glad you like it!
OMG! This would be awesome. Get only the important messages and reduce spam!
Can't wait for this to get developed ✨
Right?!
I suppose the cost attached is the equivalent of putting a stamp on an envelope.
Junk mail is shoved through by hand for free!
Really weird when you come in here to find someone has literally paraphrased what you’ve already posted...
I think this is brilliant. Computers would be far more secure if we simply got rid of email. Traditional email is based on a horribly insecure protocol that allowed UNIX engineers in the past to talk with each other over networks. It was never designed with security in mind. And the extensions to it over the years have made it even more insecure.
A few questions:
At what point is the message encrypted? If it is done at the server, we have a problem. The user's ISP could snoop the plain text version of the message after it goes out on the wire. If Steemit doesn't encrypt on the client, then it would be hard to market this as a secure solution. There would be far more secure solutions out there (e.g., protonmail.com). Of course, the same issue applies to decryption on the recipient's side.
Could we prevent messages from containing hyperlinks to sites outside of Steemit? This would prevent bad actors from downloading malicious code on user's computers.
Could we prevent anything embedded in the message from sending info to Google AdSense (and other ad networks)? This would remove a huge temptation to send mass amounts of spam ads.
Before something like this goes live, it might be useful to open it up to some security-savvy developers to see if they can figure out ways that a bad actor could break it (e.g., defeating decryption, waging a man-in-the-middle attack, launching a DOS attack, implementing ad tracking to collect personal info and behaviors, etc.).
Awesome Idea...Thanks for sharing.Following you for more.
Please visit my profile , hope you will like my clicks ....@shoot 💐👍