So I'm working on building a better messaging system with Bitcoin. I put together
a full post on backed. I'm going to repost it below, just know that the formatting won't be as good and some of the content might now show up.
https://www.backed.io/posts/post/68## The Short And Sweet
I'm looking to build a better messaging system by associating messages with a cost. Here are the concepts that this messaging system is predicated upon:
> "Current messaging systems do not take into account the value of the time of their users."
And here's the main assertion made by the messaging-system concept I'll be discussing:
> "Relating the cost of a message to a user's value will reduce and possibly eliminate unwanted messages and SPAM, and make for a more perfect messaging system."
The rest of this essay will cover the basis for these concepts, the viability of doing so, and some notes on possible implementations.
## Paul Graham And A Replacement For Email
Awhile back I was watching [Paul Graham](
http://paulgraham.com/index.html)'s speech at PyCon 2012 where he goes through a number of startup ideas. In particular one of the ideas he talked about was **a replacement for email**, basically stating that email was outdated for a number of reasons.
Here's the video for those interested (the [full video can be found here](
https://www.youtube.com/watch?v=R9ITLdmfdLI)):
https://www.youtube.com/watch?v=FU-LtP7vnWUThe most important part to take away from this is the problem that he states, seen here:
> "Email is not a messaging protocol, it's a to do list. Or at least my inbox is a to do list and email is the protocol for putting stuff on it.
> Here's the problem, it is a shitty to do list. Any one of you can put something on my to do list, right, and I don't want that." - Paul Graham, Pycon 2012 Keynote Speech
So how do we do this? How do we create a messaging system that won't just turn into a shitty to do list? Well Paul Graham gives us the basic concept for such a solution here:
> "And, as a messaging protocol, it ought to give more power to the recipient. I ought to be able to control who put things in my inbox. When someone can't put something in my inbox, I should just-my server should just say _sorry, not accepting any more things_, right." - Paul Graham, Pycon 2012 Keynote Speech
## Unwanted Messages And SPAM
Unwanted messages and SPAM are closely related. SPAM is often used to refer to messages sent en mass to large groups of people who typically don't want to receive them. For our purposes here I am going to use **unwanted messages** as a way to refer to both SPAM, and more generally to messages in your inbox that are not worth your time to read or remove. This will also cover the shitty messages that Paul Graham talked about.
## How We're Going To Eliminate SPAM And Unwanted Messages
The main idea is that *even unwanted messages have a price*. Ask yourself, what is the lowest price that you would be willing to accept to read a Spam message? 10 cents? 20 dollars? It's not that different from the question of how much change needs to be lying on the floor for you to be willing to bend over and pick it up.
https://www.youtube.com/watch?v=B2inExgT77s#t=76Our time has a price and reading shitty messages costs us time (or at times the companies we work for), which means that we can equate the cost of a message with the cost of our time. So instead of a system where **anyone can send anyone a message**, we're going to create a system where **anyone can send anyone a message _for a price_**.
### Anyone Can Send Anyone A Message _For A Price_
Recipients in this system are able to **set a price** for any random person or bot to send them a message. For some people, say a celebrity, this price may be very high. Let's say you're *Bill Gates* for instance. Bill gates could set his new message price at something very high like $45,000 USD. That way if someone really wants to get in touch with him, they're probably going to have something good to say, or he is going to pocket a large sum of cash.
On the lower end of the spectrum we might have an unemployed person that is willing to sift through marketing messages for a low cost. Let's say they figure they can go through 200 messages an hour (arbitrary number), they might set their lowest receiving message price at $0.04. That way, if they were able to get enough messages they would make roughly $8 per hour, or minimum wage in some places.
So we've now established our first metric:
ppm = Price Per Message
### People In Your Contacts Can Send You A Message For No Price, Or A Low Price
This is the second rule we would need to establish in this new system, that people in your contact list can send you messages either at no cost or for a price you've set specifically for them. This way you can allow people who you know you want to send you messages to do so, without charging them.
We then need to establish different rules for different contacts:
ppm(per contact) = FREE or Set Per Contact
### Waiving The Price
It could be that recipients can waive or send back the price of a message if they deem it to be a valid or wanted message. However, there are some other implications of this that likely require more thought.
### Getting A Baseline On Message Cost
To get a better idea of what messages in this system might cost let's approximate the lower-end of a general ppm for a few different people.
ppm = hourly wage / messages per hour
**Doug The Delivery Driver**
Our man Doug the delivery driver makes $13/hour making deliveries around Seattle, His baseline PPM might go like this:
hourly wage = $13
messages per hour = 100 (again, somewhat arbitrary)
ppm = $13/100
ppm = $0.13
**Jordan The Software Engineer**
Jordan is a Software Engineer that is paid hourly at a rate of $50.
hourly wage = $50
messages per hour = 100
ppm = $50/100
ppm = $0.50
**Michael Buble**
Singer Michael Buble charges $300,000 for a two hour gig.
hourly wage = $150,000
messages per hour = 100
ppm = $150,000 / 100
ppm = $1500
**Rihanna**
Singer Rihanna charges closer to $500,000.
hourly wage = $250,000
messages per hour = 100
ppm = $250,000 / 100
ppm = $2500
Now this just offers a crude approximation of prices. People who actually like what they do with their time would likely rather be doing that than reading messages. Thus the price per message might be higher than their hourly wage. A number of other factors too could impact price. Still, this offers an approximation of what it would cost for a person to either read or discard a message in this system based off of what they charge otherwise.
The point is that a microeconomy would accompany a pay-per-message system, where each user has some value, and sending messages to that user is somehow equivalent to their value. The value of individual users would fluctuate, as would the cost of individual messages.
## Eliminating SPAM
Today's spam filters are very good. In fact they eliminate a vast majority of the SPAM that gets sent out via bots and malicious email servers. Some estimates put the amount of spam that is actual successful at reaching and fooling its intended target(s) at a mere fraction of a percent. Still, because the cost of sending a message is so low, malicious spammers can send out millions or billions of spam messages, knowing that at least a few will make it through.
Increase the price per message will decrease the ability of spammers to be successful in their attempts at spamming. Still, in some cases the spam that gets through may be welcome in some situations as the spammer has had to send money to their targets to get the message through. Finally, the balance of power will have shifted away from the malicious sender and towards the oft targeted recipient.
## Implementation
What's that saying...*The Devil's In The Details*...
Doing something like this 15 years ago would have been incredibly difficult, if not impossible. Credit cards aren't exactly set up for micro-transactions, and people don't exactly like to give up their credit card information. While systems like PayPal help to bridge the gap, they still wouldn't be the best fit. However, thanks to improvements in the digital currency space, largely to the rise in bitcoin's prominence, this concept is doable today.
Here are a few possible ways this could be implemented:
### In App Messaging
This is probably the easier method, and the one I'm most likely to attempt. I need to build a messaging system into this application (Backed.io). It would be possible to do store public and private keys that users can send bitcoin to. Then a third party API, like blockr or gem, could be used to initiate transactions once messages are sent. Rules for user PPMs could be stored as records and relationships in the database. Contact lists would be managed as relationships between users and the PPM between them could be stored there as well.
If you've ever made it to the front-page of Reddit you've probably experienced an inbox full of crazy messages. Here is another instance where an in-app system could work well. Once on the front-page you could up your PPM, ensuring that only relevant or lucrative messages got through. The same goes with a number of other social sites, from Twitter to Instagram, especially those which are commonly used by celebrities and big name people.
### Open Protocol
Another way this could be applied is as a protocol, similar to how email is done. Messaging would then occur between servers, and each server would store the rules for the PPM for its users.
Here's an oversimplified example of how this might work. Let's say that Ann, who's messaging system uses Server A, wants to send a message to Bill, who's messaging system uses Server B.
1. Ann starts to write a message to Bill
2. Server A contacts Server B, and requests the PPM for Ann to send a message to B
3. Server B sends back the PPM along with a bitcoin public address to send the message cost to (if applicable)
4. the PPM populates on Ann's screen as she completes her message
5. Ann sends her message
6. Server A sends the message to Server B, and Server A sends the required bitcoin to the public address
7. Server B verifies that bitcoin has been received, then puts Ann's message in Bill's inbox
There is an obvious need to verify the identity of servers or services, and to ensure that PPMs stay constant long enough for messages to be completed and sent. Some of the details of this implementation are honestly a bit beyond me, but are something I plan on looking into further.
### P2P Programs
A number of P2P chat systems exist that allow users to connect directly to each other. A pay per message system could be applied where people are required to pay a fee to initiate a conversation or send a message.
## Drawbacks of Bitcoin
Some of this has been discussed ad nauseam on a number of bitcoin forums, sites, blogs, etc. The gist of it is that bitcoin transactions are commonly accompanied by a transaction fee. Miners can choose whether or not to include transactions when they solve blocks. This means that transactions without the recommended fees are not always included and can take a long time to confirm.
Also, there is a limit to the number of transactions that the bitcoin network can support per second. There are plans to increase this as time goes on.
Some smaller applications of this concept, such as an in-app messaging system here, are unlikely to be hampered by the bitcoin network. However, it is possible that problems would arise if an independent protocol were adopted using bitcoin, and the growth of that network exceeded the growth in the carrying capacity of bitcoin. Still, it likely remains the best option for the application of this concept.
## Conclusions
Ultimately this system would change the dynamics of the relationship between message sender and message receiver, such that the messaging relationship between the two is representative of the economic or personal relationship between the two. The same concept could be implemented a number of different ways, but is largely possible today due to advancements in the digital currency space.
I'm considering building it into this site as a sort of proof-of-concept and am looking for some feedback. If you think it's a terrible idea let me know. If you think it only works as an independent protocol, let me know. If you think it's the greatest thing ever and want to build it yourself, go for it! (And if you're applying to an incubator and want a partner let me know, I'm interested!) I'd love to see something like this in the wild and will be working to improve the concept and possible implementations of it.