Shoot the Rationalist #7: Spam

in #blog5 years ago

After a brief hiatus and recovering from drinking too much, I have returned to talk about spam. Spam takes many shapes and forms, but I'm going to focus on the delivery of unsolicited messages. While everyone's hyped that the price is going up for some reason, now is a great time to mentally prepare for those willing to use and abuse to maximize their earnings as the chain inevitably becomes more popular. This post is more mechanically inclined than prior entries, but hopefully one can grasp the arguments here even if some of the technical details are omitted for brevity's sake.


Fragmented.png

Why is spam bad? First off since the message is unsolicited, the provided content of the message is often undesirable. Spammers are manipulating whatever network they are a part of in order to gain some advantage within it. It could be to sell you a product, show you some message, or acquire information from the receiver of the delivery. However, spammers are a relatively new phenomena. Why is that?

Prior to the internet and the telephone, one had to send messages via traditional mailing services (snail mail). While "spam" could be delivered to your mailbox, it was significantly less common and often came in the form of advertising. The reason for spam not being prevalent in mail is mainly the cost of delivery via stamps. Very few marketers are willing to send messages indiscriminately to different users as the costs of such a delivery would be very high and the benefits not nearly enough. Most mail ads are targeted to a specific groups resulting in lower costs and increasing the chances of getting the desired results (sales). Stamps are an effective deterrent to spamming in a traditional mailing system, but are necessary in order to support its infrastructure.

The internet is different as the cost of sending electrons massive distances is very small compared to that of sending mail. So when email began to become prevalent in the 90s, spam soon followed as the cost to launching massive emailing campaigns was very small. Dwork and Naor (1992) suggested interactions such as mailing network users or granting access to a shared resources should be priced via computational processing. The idea being to make it more costly for users to spam or hog resources by incurring a greater cost to the end user. The cost being wasted processing time. While a regular user wouldn't experience a large cost, a spammer would incur massive costs via accumulation of smaller costs.

This idea which forms the basis for Proof-of-Work was later explored in Adam Back's HashCash (1997) which could be used to limit email spam and reduce denial-of-service attacks. The sender of a message would need to perform a brute force calculation (cost function) to generate a token that could then be quickly verified by the target server which would permit a message to come through if the token was valid. The idea here being that the sending of a message requires some type of payment (the generated token acting like a stamp) and that spam would be greatly reduced due to this cost.

Proof-of-Work was later applied in Bitcoin (2009) as a means of reducing bad actors from attempting to publish bad blocks via double-spending in that it would take massive amounts of energy to compete against other miners in order to undermine the blockchain.

The one major criticism against the idea of computational cost functions is that they run into the issue of discriminating against users that are poor in terms of computational resources. By the time we try to make such functions friendly with most devices, some spam will be still be able to get though the now weaker cost function.

So, what does this have to do with Steem Hive? What point am I trying to make? What's with the History lesson? The Hive blockchain is a shared resource and thus is susceptible to spam as well. However, Hive uses a different cost function that is not computational in nature. Hive uses Resource Credits which are derived from staked tokens. Resource Credits are a rechargeable "token" that are used in the same way stamps and hashes were used in the systems listed above. But because there is no work done here, such a system utilizes no Proof-of-Work.

Are Resource Credits effective in reducing spam? Yes and no. With a self-rechargeable cost function one cannot stop spam, but simply reduce the throughput of messages through a network. Users get so many free messages per day before they need to buy more tokens to stake which increases throughput on a permanent basis. This can lead to an environment where whales can produce lots of messages but smaller users may struggle to publish more than one or two. Even this modified cost function runs into the same problem that the computational cost functions ran into.

The major difference between the two functions is the waste of processing power in one versus the other and the bias against new users. To explain the bias against new users, the idea is that new users have to pay a greater cost to achieve the same benefits of older users while essentially enriching those older users by trading for their assets and/or increasing the price of those assets through demand. In some cases, it is easier for old, large staked users to spam than it is for new users to generate content. With computational power, the cost across users is more uniform. One is scarcity driven, while the other is energy driven.

But since Hive's cost function is rechargeable, spam still gets through and given the current inflation model, there is a strong incentive to produce spam on the blockchain as there is little cost for the spam that can get through the RC-limited pipe. So space is wasted on the blockchain for content that nobody really asked for. Strategies to reduce spam further would include decoupling inflation from content and adding additional cost functions (non-regenerating) to transaction production. The first idea would just grant users a slice of the reward pool for staking and then allow users to tip some of that reward pool to content they like. This would eliminate farming as content production would be "wasted" energy. The second idea would somehow incur a minor cost on content production (like stamps or energy waste) which would greatly increase consumer friendly content. This effect being achieved as content producers would being betting that their created content is worth more than the incurred cost by the cost function (effectively making spam unprofitable if we assume spam is worthless).

Are these ideas rational? Of course they are. Will we see them occur in the future? Probably not for a litany of reasons. But discussing problems before it is apparent they are problems or the even further improve ideas and concepts is great in terms of being proactive versus reactive (a la Steem). Uncovering and understanding concepts like Spam is important to understanding why ideas which may contain initially obvious flaws (Proof-of-Work and electricity waste) can still be strong ideas.