Fighting Spam On The Blockchain
![gollum.jpg](https://steemitimages.com/640x0/https://cdn.steemitimages.com/DQmNVn6mWQC6XyYi7gZs5EyKEs21K5zMm3QPzC1qdxJhurs/gollum.jpg)
When the Internet was invented what did many people think?
Oh no. Anyone can say anything without any filters? This is going to be a shit-show.
And it was a shit-show, and it still is a shit-show.
![you-mad-bro-troll-internet.jpg](https://steemitimages.com/640x0/https://cdn.steemitimages.com/DQmYSqU5s6j5LyryfyyhfaPcRfp9AvcTBqfNtbyWGbpV6Lf/you-mad-bro-troll-internet.jpg)
We have front row seats to our very own shit-show right here on the blockchain. Except now, we can't moderate any of the content and hundreds if not thousands of nodes will be forced to save that spam in the database until the end of time.
![dont-feed-trolls.png](https://steemitimages.com/640x0/https://cdn.steemitimages.com/DQmYJDBBRRaGqPSMiyncXNWGX7ak1PdS9QmtN76VyRciusD/dont-feed-trolls.png)
So, what's the best way to prevent this type of spam from infecting the blockchain? Are we supposed to ignore the trolls? Are we supposed to fight them? Should we rally against them and perform troll exorcism? Maybe, but the most basic answer is so much simpler than all that.
![Internet_Troll-20160812113026410.jpg](https://steemitimages.com/640x0/https://cdn.steemitimages.com/DQma5nArQV8LTK54RJxTa5oUHh5KER34XEynNG26u9xrcDw/Internet_Troll-20160812113026410.jpg)
The easy way.
According to Andreas Antonopoulos, there is no such thing as a spam transaction. According to consensus, if anyone pays the fee to broadcast, this fee is what makes that operation valid. From this perspective it is easy to see that the best way to eliminate spam is to increase transaction fees.
You might be thinking:
But wait, Steem doesn't have fees.
Oh, but it does, and we pay for them in the form of inflation to the witnesses in exchange for resource credits.
And so, the more valuable projects that are brought to the Steem blockchain, the more RCs will be worth. Eventually, we will have to stop operating on a fractional reserve of RCs (giving 10x credits to every account) because users are going to actually start using those credits, and the witnesses won't be able to handle the volume. RC costs will skyrocket 10x or more.
When this happens, we will have to implement RC pools because low level plankton will not be able to transact as much as they want to. The demand for resource credits will begin to far outrank its supply, meaning many users will be incentivized to pay for RCs. This will in turn create a free-market where the value of RCs are determined by supply and demand in an emergent economy.
Do you think trolls are going to continue spamming the blockchain when they are basically losing money to do so? Sure they will, but the market will incentivize the opposite behavior. Micro-charges are a powerful motivator.
![shut up take money pay.jpg](https://steemitimages.com/640x0/https://cdn.steemitimages.com/DQmbPAPyi3MmLV1W9dCVVNRBArTYDv8hoGD6d7MxBPUu3mv/shut%20up%20take%20money%20pay.jpg)
Imagine if 1M RCs was worth a penny. This means you can either choose to spend those RCs and post a comment, or you can sell those RCs for one penny. Will trolls be running around posting garbage on the blockchain when they could have sold those RCs for $20? Probably not.
And I know what many of you are thinking: what a nightmare scenario! Another rent-seeking service that whales will profit off of just like bid-bots? Where does it all end?
You know, that's just the way the cookie crumbles. Right now, the witnesses can handle all the bandwidth we are throwing at them. That won't be true forever. The only way to stop our platform from melting is to charge a fee for the service. Right now, that fee is effectively zero because there is no practical way to sell RCs, but once resource pools come into the equation it will be a whole different story.
So maybe now you're thinking we should avoid implementing resource pools. Well, that's a really bad idea because it leaves us in a situation where it is impossible for plankton to transact on the blockchain. At least when Bitcoin transactions spike up to $50 everyone has the option of paying that fee if it is worth it to them. If we don't provide the means to transact on the blockchain our platform becomes a joke.
However, if you're reading this, you are in luck! Buy Steem coins! Get ahead of this problem before it hits us. If you don't want to purchase Steem, continue to acquire it by getting tipped. Power up those tips. Don't cash out. Continue to expand your network. Many stake-holders will be giving away their RCs for free to handpicked individuals. Many dapplications will be giving away RCs for free if you are using their dapp.
Trust me, having overwhelming demand to transact on the blockchain is a problem we want to have. Scaling will always be an issue. A flood of new users will arrive during the next bull run, and just like the last time, not all of them will have the privilege of being serviced. If 1M RCs cost 1 penny, imagine how much a Steem coin is worth. No one is going to want to sell if their coins are giving them upvote power in addition to RCs worth more than the inflation they cost to create. SBD will be > $1, our temporary inflation will be cut in half, and the volatile insanity will begin anew.
Think about it this way: a plankton has to pay 1 cent each time they want to harvest wheat on their SteemVille farm. However, that wheat is worth 3 cents, so the plankton actually made money by buying RCs and then converting them into an even more rare digital asset with greater value. Now they can use that wheat to buy three times as many RCs, or simply expend them in the game to progress farther. These kinds of interactions are going to create insane network effects and emergent properties and economies that can't even be fathomed at this point in time.
![troll hunter.jpg](https://steemitimages.com/640x0/https://cdn.steemitimages.com/DQmSrCvRkkGWJCUpkLbxqEd66zfAq3dReovYBGoSLG7iS2D/troll%20hunter.jpg)
The hard way.
Blockchain is permissionless architecture. We don't have to ask permission to pick and choose what data we want to extract from the blockchain and how we organize that data. Anyone can create a front-end were users own their blogspace. They can control which users are allowed to comment on their blogs (whitelist), requiring green-light moderation for anyone else, and they can choose which users are not allowed to post on their blog (blacklist).
Of course, users on the blacklist could still comment and broadcast their operation to the nodes. Their comments would still be seen on front-ends like Steemit, Busy, and Steempeak. However, it would not appear on this new front-end. We can customize our social media as much as we please and every user is allowed to pick whichever front-end they desire to display the blockchain to them. This is the power of permissionless systems.
I've somewhat explained my stance on this.
Silk road and the value of decentralized Reputation
What I would like to see is a custom reputation system connected to a front-end.
![idea light bulb.jpg](https://steemitimages.com/640x0/https://cdn.steemitimages.com/DQmWZFXJs71hZGnNJELtK2QnpJ2juq3d5A7ab5PpfGGN92e/idea%20light%20bulb.jpg)
Basic idea
In the process of building our network, we get a feel for which accounts we can and can't trust. By assigning a level of trust to handpicked accounts, we can create a frontend that changes how blockchain information is displayed to each user in a custom way.
For example. If I trust account @xyz I could promote them within my own personal reputation system. Say I promote them to "Level 1". I also get to choose what "Level 1" means. Perhaps it is a whitelist to post on my blog. Perhaps it adds a theoretical 5 cents to every comment they post (to determine comment order automatically). Perhaps it means they are allowed to moderate the comments on my blog. Perhaps it means all of the above and more.
User @poopshoot.com starts spamming my blog with garbage. I blacklist his account. Now, everyone who uses the same frontend that I use will never see his comments.
User @amazing posts an amazing comment. I broadcast custom JSON operation "Rank 1" on the comment. Now, everyone that views my blog with this frontend sees @amazing's comment in the top slot no matter what.
User @smartguy posts a pensive comment. @xyz has moderator privileges on my blog. @xyz posts custom JSON operation "Rank 2" on @smartguy's comment. Now everyone that views my blog will see this comment in the number 2 slot no matter what if they are using the correct frontend.
I open my trending tab. I see that @jinn is self-upvoting all his garbage analysis again. I blacklist @jinn from my trending tab. Now all his self-upvotes count for nothing and he disappears from my custom trending page.
I find a list of bid-bots and put them all on my trending tab blacklist.
I decide I want posts/comments that decline rewards to be ranked higher.
I decide I want posts that have been promoted with SBD to rank higher/lower.
I share my custom system with everyone on the blockchain so they don't have to reinvent the wheel. Not everyone will be forced to put in work and make their own custom filter. Filters can be copied.
There is no limit to how we can organize blockchain information.
![bruce lee.jpg](https://steemitimages.com/640x0/https://cdn.steemitimages.com/DQmTBwS59wCDDrb8MdXLJtePtoTdwV79L5PEFNaanMWYyeF/bruce%20lee.jpg)
Great ideas! I'm going to make this happen. How long... that's another thing lol. I already had ideas for custom blogs. These are great additions. I just need to refactor my code for Redux before I go on with more on the community curationa nd then front page part.
I like that idea about more power to the original poster will help get rid of more spam.
I'm trying to think how you would perpetuate your personal rep system on the chain. For a given post you can add JSON tags to each commentator and that would work fine. But doing that for each post would be cumbersome.
To keep a database on each user would also be cumbersome.
In this hypothetical condenser, you could publish a footer on each post that isn't displayed by the site and contains your reputation score of others. That seems like it would work, but it's sort of a brute force approach.
It's not on the chain, it is on your computer. There would be an option to post a snapshot to the chain to be copied by others or for use on other machines.
I make this extremely unclear because I was talking about posting individual custom json operations, but I probably wouldn't actually set it up that way.
I'm picking up what you're putting down.
One step further, could the op manually set the RC cost to comment? Then the content is never even written, and doesn't need to be filtered out by the front end.
I think that it should be possible for apps to adjust how RCs are used including discounting transactions using their own stake. For example, SMs might want to reduce their transaction costs for users to encourage usage and since they don't suffer spam, that is fine. The user gets assigned some factor or reduction as they login which is usable only on SMs and returned to the pool on logout.
Thid means that with minimal SP (which can still vote), a lot of RC bandwidth can be created at any one time to empower users.
As you know, I love RCs. 💙
People just need to catch up, as do the Devs.
The flexibility that resource credits have brought to the ecosystem is great as it allows for proper measurements of scaling issues as demand and engagement increase. I am looking forward to more development on this towards the communities sonce Hivemind has launched as I feel that it could make a great difference in how we create experiences with the community.
Posted using Partiko iOS
Superb post. You are absolutely right that communities will be bringing their UX to the blockchain, and these are just a few of the kinds of attributes such communities will certainly find advisable.
I'm actually going to have to find a way to like this, because I am a big fan of discourse, and echo chambers - which this will create - are dearth of discourse. It is what it is, however, and no one is forcing us (yet) to censor people that disagree with us. Plenty of folks will, however, and those that do will be unavailed of the benefits of contrary opinions.
Their loss.
Thanks!