Towards a decentralized, abuse resistance framework for the Steem blockchain

This post sketches out a possible framework for decentralized abuse resistance on the Steem blockchain.


Background


Image by Gemini; prompt: "Draw a techno-uptopian pyramid structure with three layers, shaded from dark at the bottom to light at the top with a very bright light above it."

Back when I was copying forward my long-term goals in my programming diary posts, one implementation goal that I kept writing, week after week, was this:

A protocol and framework that I'm bouncing around in my head for decentralized abuse measurement and resistance; (note to self, I'd better write this down before I forget what I have in mind...)

Fortunately, 4 months later, I haven't forgotten it yet 😉. So, today (instead of working on programming 😞), I thought I'd finally write it down.

Introduction

During my almost 8 years on the Steem blockchain, one of the topics that never goes away is the topic of abuse. Although I am not a fan of downvotes, I have reluctantly agreed with the apparent majority that downvoting is the best available mechanism for curtailing abuse under the current rewards distribution rules.

However, we have also seen that downvoting can, itself, become a form of abuse, and this has generally led to a light touch for moderators who want to retain users and investors. Unfortunately, this light touch implies a correspondingly high tolerance level for abuse on the blockchain.

Despite its presence in the title, however, I'm going to try to avoid the word "abuse" for the rest of this article. For the purposes of this framework, an article has exactly two states: "overvalued" and "undervalued". At the end of the day, the goal is to get posts as close as possible to the correct valuation, whether that valuation is $0 or $50K. For purposes of rewards, it almost doesn't matter whether the post is overvalued because it's "abusive" or just because it's badly written. (we may want to take additional actions, such as muting, for truly abusive posting, but that's outside of the scope of a rewards discussion.)

So, the hard question is how to get the right level of moderation that reduces plagiarism, spam, etc. but doesn't drive away users or investors. Over the years, I have imagined a number of general guidelines that I think need to be considered:

  1. Undervaluing of posts is just as harmful as overvaluing of posts. The goal should not be "eliminating abuse". The goal should be "valuing every post correctly".
  2. Moderation of overvalued posts cannot rely on altruism. It must be rewarded.
  3. Measurement should be separated from enforcement.
  4. Measurement should be used to track improvement (or lack thereof) over time.
  5. Participants in the measurement system should be protected from retaliation.
  6. Enforcement starts with the top-tier stakeholders.
  7. It should be as fun as possible for participants.
  8. It should be competitive.

So, those are some of the ideas that stand behind the framework that I've been imagining. In this framework, there are three leading roles: the surveyor, the analyst, and the enforcer. Read on to hear more about each.

The surveyor


Image by Gemini; prompt: "Draw a picture of a video game character for a blockchain surveyor"

In one of my previous articles, I described this role as a sentinel, but for today let's call it a surveyor, instead.

The surveyor's job is simple. They review posts on the blockchain, and categorize them as "undervalued" or "overvalued". This categorization is saved in the form of custom_json transactions. I'm imagining multiple possibilities for how this might work:

A solitaire game: form 1

An app is developed that shows random posts to a surveyor, one post at a time, and the surveyor decides whether the post is overvalued or undervalued. Then, a custom_json transaction is saved to record the current value (at time of decision-making) and the surveyor's assessment.

After post payout, the app can compare the surveyor's opinion against the actual payout and the opinions of other surveyors' and game points can be awarded based on how well their opinion matched the consensus.

A solitaire game: form 2

This is the same as "form 1", with one exception. The surveyor is not making their opinion public. Instead, they are working in partnership with a single analyst (see the next section), and their opinion is encrypted using the analyst's Memo key so that no one else can see it. It's possible for the public to see that the surveyor is playing the game, but it's not possible to know what posts they evaluated or how they decided.

A two player game

Think of a dating app. Random posts are shown to two random players at the same time, and the results are only saved as custom_json transactions if both players agree about whether the post is overvalued or undervalued (swipe-left, swipe-right). Again, the saved values would include the post's value at the time when the decision was made, and the over/under-valued assessment of the two game players. In this case, the players could earn scores in terms of their ability to match with random partners, and also with the post's eventual payout value.

In all cases

Players could opt for additional privacy in order to avoid retaliation by using alternate, pseudonymous accounts.

As we'll see in coming sections, these players would, ultimately, be rewarded in the form of beneficiary rewards, and the amount would be based on their contribution towards returning rewards from overvalued posts into the rewards pool.

A custom_json transaction might look something like this (copied and edited from @moecki, here):

{
  "required_auths": [],
  "required_posting_auths": [
    "example"
  ],
  "id": "mod_eval_post",
  "json": "[
    'overunder', {
      'account': 'social',
      'author': 'example-author',
      'permlink': 'example-article',
      'value': '9.43',
      'assessment':'overvalued'''
    }
  ]"
}

The analyst


Image by Gemini; prompt: "Draw a picture of a video game character for a blockchain analyst."

The analyst would be responsible for reviewing the custom_json transactions from the surveyors, consolidating them into actionable posts that enforcers could use later to apply downward adjustments to posts that were identified as (probably) overvalued.

These posts would have beneficiary settings that redirected some of the rewards to the surveyors who provided the raw data, in proportion to the amount that was returned to the rewards pool for each surveyor. The remaining portion of the post's reward would stay with the analyst.

Clearly, this is all too complicated for manual execution, so the analyst would need to be supported by the development of programs for collecting the data and determining the proper beneficiary reward sizes. Some portion of the beneficiary rewards could also be distributed to support development.

As with surveyors, the analyst could also opt for additional privacy in order to avoid retaliation by using alternate, pseudonymous accounts.

The enforcers


Image by Gemini; prompt: "Draw a picture of a video game character for a blockchain enforcer."

One thing that the Steem whitepaper clearly got wrong was the role of crowd downvoting in support of abuse resistance. What we have found over the course of many dysfunctional "downvote wars" is that retaliation wins the day, and the largest stakeholders have the final say.

So, the framework I'm proposing depends mostly on the top-tier stakeholders for enforcement.

This is where we have to hope for something that resembles altruism, but we're not really hoping for altruism. Instead, we're hoping that the largest stakeholders will favor their long-term self-interest over their short-term self-interest because, if (nearly) all posts are valued correctly, the value of their stake should go up.

The enforcer's role, then is to review the posts by the analysts, upvote the analyst posts that are useful, and downvote to adjust the values on the overvalued posts that the analysts highlight. By doing this, rewards get returned to the rewards pool, and those can be used by others to raise the valuation of undervalued posts. Even without redistributing those rewards, the simple act of downvoting raises the value of undervalued posts. This was described by one of Steemit's founders, back near the end of 2016:

I view down vote as up voting everyone else, but the downvoted item, just more efficient. Every upvote implicitly reduces rewards of everyone else.

Conclusion

Back in 2019 (Wow, this doesn't seem like 5 years ago...) I suggested, If you want Steem's minnows to use their downvotes, protect them with quorum sensing. This proposed framework is another step in the same direction.

Is it complicated? Yes. That's why it took me more than 4 months from the time I thought of it just to write it up. Clearly, this isn't something that can happen overnight. Is it perfect? Certainly not.

However, I think it is feasible, and I think it meets the guidelines that I described in the introduction. Further, it is amenable to decentralized and modular development.

Finally, once the protocol is agreed for storing the over/under-valued ratings in custom_json transactions, developers are free to build on that however they want, so better solutions that I have not yet imagined could emerge on top of that protocol after implementation.

(For the record, not a word about 2nd price auctions in the whole article. 😉)


Thank you for your time and attention.

As a general rule, I up-vote comments that demonstrate "proof of reading".




Steve Palmer is an IT professional with three decades of professional experience in data communications and information systems. He holds a bachelor's degree in mathematics, a master's degree in computer science, and a master's degree in information systems and technology management. He has been awarded 3 US patents.


image.png

Pixabay license, source

Reminder


Visit the /promoted page and #burnsteem25 to support the inflation-fighters who are helping to enable decentralized regulation of Steem token supply growth.

H2
H3
H4
3 columns
2 columns
1 column
14 Comments