How-to solve SPAM and Democratize Steem: Introducing UserAuthority

in utopian-io •  7 years ago  (edited)

How-to solve SPAM and Democratize Steem: Introducing UserAuthority

I've developed, contributed to, quite some search engine algorithms, and therefore I know from experience how hard it can be to invent, and implement, proper ranking mechanisms, especially in environments that are quite new and/or paradigm shifting; such as Utopian and Steem are themselves. Utopian @stoodkev has already been contributing a tremendous amount of work regarding the Utopian Bot.

Having said that, I hereby propose a number of improvements to the Utopian Voting Bot. I hope this will not only be implemented on Utopian, but on the complete Steem ecosystem. At the bottom of the post, I propose 2 HardForks (HF) based on UserAuthority.

UserAuthority (UA) seen as a Probability Distribution

Inspired by the inner workings of search engine Google, I hereby propose the metric UserAuthority corresponding to the principal eigenvector of the normalized follower matrix within the Steem ecosystem.

Let:
UA(A) = (1-d) + d[UA(1)/C(1) + ... + (UA(n)/C(n))]
where
UA(A) = UserAuthority of user A
UA(x) = UserAuthority of user X
C(x) = the total amount of users user X is following
d = damping factor (set to 0.85)

In layman's terminology, this probability distribution can function as an authoritative perceived quality metric for every "post", "upvote" and "downvote" a user transacts, based on the entire Steem follower graph. The probability that a random user is followed (liked) is its UserAuthority. This mechanism effectively deals with fake and/or bot accounts as well, making it nearly impossible to deliberately mislead the ecosystem in order to get higher author rewards. This principle is intuitively justified both if many users follow a user or if just a few users having a high UserAuthority follow a user. Consequently, if spam accounts or bot accounts mainly link to eachother recursively, each will have a low UserAuthority within the entire Steem follower graph.

Nota bene: it is possible to manually ignore known spammer / bot accounts from the cumulative follower graph (which might be needed due to a large amount of people following - for example - the heavily debated booster bots in order to not miss their notifications).

Mathematical Proof by Example

Please regard the following simplified example-follower graph. The unidirectional arrows represent a user following another user.

follower-graph.png

Update 1: I hereby add the link matrix following from the above total example-follower graph:

link-graph-per-user.png

Update 4: Note that by simply saving, for every account, which accounts that account follows (read matrix left-to-right), as a consequence, reading the matrix top-to-bottom shows which accounts follow that account.

Please also regard the iteration data: in just a couple of iterations, the UserAuthority mechanism succesfully identified spammers / bots via the total follower graph.

Update 2: Instead of Gaussian elimination (row reduction via Gauss-Jordan) I have used an iterative approach to reduce computational cost for re-calculating the UserAuthority binary index daily.

Update 3: Using Gaussian row reduction would be very RAM-heavy in case of a large follower graph. However, by solving many simple follower equations per user, every iteration better approximates each user's UserAuthority. Its computational complexity grows linearly in stead of exponentially when more users are added to the follower graph. The "1"'s at iteration 0, are simply an entry-approximation where every account is weighed equally. However, if you would randomly choose numbers at iteration 0 as an estimate for UserAuthority, in stead of all the "1"'s, the iterations eventually end up at the same equilibrium state (it would only take some more iteration steps to get to that equilibrium state).

Screen Shot 2017-11-17 at 18.03.33.png

Technical implementation

The Steem blockchain stores all data in chronological order, yet in order to use UserAuthority for algorithmic curation purposes, a pre-calculated reversed binary index holding all results shown in the Excel example is needed. This data can be retrieved via the BSON data using SteemData's MongoDB interface.

Update 5: Only a subset of the SteemData's MongoDB interface is needed to construct the follower matrix:
{uid: [follows], total_follows: total_follows}

Further implementations

It is possible to expand on the UserAuthority mechanism by adding weights to manually assigned trusted "witnesses" in the form of content moderators. In a Utopian-IO context, a contribution post is only allowed to be voted upon after manually assessing it via a topical moderator.

Update 6:
UserAuthority (UA) not only allows for algorithmical curation mechanisms, but it can democratize the entire Steem ecosystem if adopted widely.

For example:

Proposal for HF21: a minimum amount of UA is needed to downvote
downvotable(user) bool = (UA(user) >= UA(threshold)) ? true : false
=> that prevents "flag wars"

Proposal for HF22: implement UA to curate monetary rewards (author / curation):
upvote_reward = UA * SP
=> that effectively combats SPAM-rewards / self-upvoting / delegating SP to multiple self-owned bots for self-upvoting.

Nota bene: the only influence needed, for any user disagreeing with the actions of some other user, is by simply unfollowing that user.



Posted on Utopian.io - Rewarding Open Source Contributors

I've published a follow-up article:

UserAuthority (UA): explanations, applications and implications

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

While I'm largely undecided on the details of how this could be implemented, if it should, and specifically into what) - I think there's a discussion worth having here.

Using the quality of a user (based off followers) to gauge their rewards/impact is a relatively new concept that I'm seeing used more and more in some of the 3rd party services. Based on how they're performing - it might be good to apply the concept to the overall Steem ecosystem or perhaps SMTs.

spot on mate.. speaking volume here.. upVoted so as not missed! @cnts :]

Hi Jesta, via DMs, 2 people suggested to me that I should forward this via email to somebody called "sneak". Do you know if that's the same person as account @sneak ? Do you know this person "sneak", and could you perhaps ask him/her to have a look? Or do you think I should send the email?

@sneak is the CTO. And yeah, that's him

Yes, that'll be the one.

Hey, here's sneak's Twitter account in case you want to follow him: https://twitter.com/sneakdotberlin?lang=en

Yup, @sneak is one of the guys on the Steem team.

Have you considered applying the SVD calculation to speed up computation and basing your calculation on the top 90% of the eigenvalues?

No, not yet and I don't think it would matter that much. As comparing users to pages, on steemit, only a very small amount of users (let's say 500k) compared to pages on the web (a lot more) exist. Computationally it doesn't currently seem to be a problem, so optimizing it would bring little added value. And also, the total follower graph doesn't change drastically daily: a lot of new relationships may be formed and some (a lot less) are terminated, yet all in all that wouldn't make a big difference to the overall end-results. So daily re-calculating the UA binary index (containing about 8 bytes per user, or more if more information is stored in it), is fine.

Yes it definitely would. It would solve a lot of problems.

This is great. I've seen so many 000.1 spam comments, not to my account (only recently ascended to a level where they notice me) but to others. Seems like it would be a good way to ensure value to Steem, limit the garbage in the chain and add trust. Great explanation of the concept.

I might write-up another post on how to combine Keybase.io as an encrypted private chat layer built-into the Steem blockchain! No more 0.001 SBD public memo notifications then! ;-)

That would be great. That would take the blockchain much closer to the traditional Social Media platforms or at least give it the ability to extend apps towards that goal. That would definitely add another dimension.

The Steem blockchain already allows for encrypted messages, yet a de facto private chat layer has not been implemented into Condenser yet (= the technical term for the Steemit front-end).

Thank you for this great article. I wish you success because the way to write a good article will get to the best. Thank you again

ok now I'm thoroughly confused, lo9l! but thanks for taking the time to write this blog.

Still confused? You can ask questions if you want, I'm happy to respond!

woow owwo and woow ... definitely perfect !

Very interesting. The SMT white paper talks about oracles for controlling who can access an SMT rewards pool and I wonder if algorithms like this might be more effective and/or help aid oracles in making decisions about accounts and the value they bring (or take away) from the network.

I'd love to see an open market place for various spam prevention algorithms that users could implement to improve their own experience. Maybe it could involve shared mute lists or something similar along with regularly published reports of abusers taking from the reward pool but adding no value so that certain accounts like @steamcleaners (or something similar) could go through and downvote them and other busy whales could delegate some SP to help.

May I add a simple suggestion for a bot. First of all I'm not a programmer. Just a smart guy who love steemit.

You could use a bot to check for repeated comments of a user. Lot's of spammers copy/paste their spam. There are also words like upvote,plz,follow used repeatedly. If a bot could be made no find users with high amount of copy/paste content and for common words used in upvote begging, It could generate a list for whales to review. Then those who are clearly spamming could be picked and put on a public list.

I'm very happy to see many people fighting the good fight. You guys give me hope regarding the future of steemit. My simple suggestion wouldn't go too far. Spammers will adopt. I actually came across serial spammers with reputation above 50. It's just nuts: https://steemit.com/steemit/@vimukthi/serial-spaming-your-way-into-a-reputation-of-56-how-did-this-happen

Wish you guys best of luck and hope my suggestion helped :-)
@vimukthi

  ·  7 years ago (edited)

Hi @vimukthi , your suggestion on how to algorithmically detect spam / repeated comments (= content analysis), could be another extension of my UserAuthority (UA) spam identification capabilities (= user authority / popularity analysis).

Your suggestion could also be implemented stand-alone via bi-directional hashing encryption, by calculating "character proximity". Lots of difficult words here ;-), but your solution on its own is not really needed. Compare this principle to copy-pasta webpages: it is impossible to stop authors publishing such webpages, but it's Google's only task to prevent those pages getting to the top of the search rankings (SERPs).

Seen from a Steem ecosystem perspective, it's merely important to stop those comments from receiving high-value author rewards. Hence the need for my UA algo to be implemented Steem-wide (See my HF22 proposal UA * SP at the bottom of my article.)

Mathematically, it looks like your UA algo will work just fine :)

Some folks may not like it, but as with all algos there's always room for improvement!

BTW: here's a link to an article on "bot tells"
https://steemit.com/steemit/@torquewrench1969/tips-i-use-to-identify-bot-accounts

Spot on! ;-)

Another post comming out about this project shortly!

  ·  7 years ago (edited)

An equivalent of this algorithm was used, in another form, as the only relevant algorithm, when Google launched in 1998. In this form, the same problem Google had in 1998 is addressed: which page should be at the top results, ref. which user is to be regarded as authorative.

This is awesome. We need some sort of change like this. And whats even better is you explained it with my lanaguage, Excel! Steem on, I have upvoted and resteemed

  ·  7 years ago (edited)

Haha, well, I like Excel for explaining stuff and quickly setting up a POC-app-ish kind of thing....
And I like your work, as well as yourself, as well, Paula :-). Steem on!

I love when I make new friends, steemit is awesome for that anyway!

I feel the same! :-)

Likewise. It's good to see we are all on the same page about this.

This is fantastic! A tremendous idea and post, genuine and heartfelt feedback, from a diverse community, conversation and dialogue leading to meaningful changes! I have no idea what your talking about, but I love every word!!!

This is also a cool comment! :-)
It's perfectly okay if you don't understand the math. But let me try explaining as simple as I can:

  • UA is a derived metric (all the data is in the blockchain already).
  • The math behind my UserAuthority (UA) algorithm calculates how "popular" an account is, by taking into account who follows that account. And that's done automatically for every user in the entire Steem system.
  • not all follows are weighed equally
  • randomly clicking any user's follower list (who follows that user) is that follower's UserAuthority. So it is the probability a random click has to get to said account via its followers.

Okidoki? Better? Better...
(Otherwise, eat a Snickers! ;-) )

Much better I get it! I love snickers by the way, eat 'em all the time. Very gracious of you to make this effort to explain, appreciate that as much as the explanation itself. Thank you.

Everybody needs to understand in order to be capable of "judging" what I propose!
I gradually updated my article with more explanations day by day. At first, people seemed afraid to comment (maybe afraid of looking like an idiot?). But the smartest people around, are the people asking questions by first outing they didn't understand.

I get confused with cooking myself! Although my baked eggs are nice ... :-)

Let's do this. I had time to read this several times, I see how it needs to be done.

  ·  7 years ago (edited)

Cool! :-)

PS: please just upvote yourself to the top for visibility, I can't add more than $0.10 myself on your comment! :P
PS2: Jesta's comment (had a long talk with Jesta yesterday) is in here as well, same thing: I don't have the power to get his comment to the top.

Looks like your my boss now?

Whahaha! Please, no! I've been "boss" at work since 1999, and have tried to motivate people to take charge and show initiatives. Yet people keep on asking me for approval, no matter what I do. I kind of like being the new kid in town here!

New users, myself included, who have little/no userauthority, will be equated to the bots - is my understanding of your proposal correct?

  ·  7 years ago (edited)

Good question! Short answer: no, you're not seen as a bot, at all!
Longer answer: the proposed mechanism is extendable with all sorts of metrics, that combined identify bots / spammers extremely accurately, distinguished from new users, like you, and more prominently: me! (my own account is brand new!).

Examples:

  • very low UA, very high amount of posts (that's a sign, right? lots of messages but nobody follows..)
  • very low UA, very high rewards (that's even stranger!)
  • very low UA, yet it has lots of followers (spooky....!)
  • very high UA, zero posts (hmmm, that seems like a passive whale account...)
    etc.

PS: in case an account has zero followers (new accounts), they are not found on the total link graph. Yet they are easily includable via a "NewUsers bot", detecting accounts with zero followers, and following them for inclusion within the follower graph.

Thank you for explaining this! I know I am not a bot, let's hope Steemit will also know it : D

Steem then first needs to implement my code via HF21 ;-) But Utopian-IO probably will do so before that!

It's actually fairly simple and really elegant. Not sure if it was your explanation or the concept itself, but I like it. Thanx for the hard work, Steem and Steemit need it!

  ·  7 years ago (edited)

Thx! When first publishing the article I just wanted to help Utopian improve its bot algorithm (then v1, now v2, hoping to implement UA in its V3 the coming days). Yet only after publishing it, a few hours later, I realized the very same algo can "sanitize" Steem.

I encourage everybody looking at this page to openly express their doubts, questions, etc.

Couldn't this result in smaller users being penalized unjustly?

  ·  7 years ago (edited)

Good question! Steemulator asked the same question, so hereby the same answer :-)

Short answer: no, they're not seen as a bot, at all!
Longer answer: the proposed mechanism is extendable with all sorts of metrics, that combined identify bots / spammers extremely accurately, distinguished from new users, like me (my own account is brand new!).

Examples:

  • very low UA, very high amount of posts (that's a sign, right? lots of messages but nobody follows..)
  • very low UA, very high rewards (that's even stranger!)
  • very low UA, yet it has lots of followers (spooky....!)
  • very high UA, zero posts (hmmm, that seems like a passive whale account...)
    etc.

PS: in case an account has zero followers (new accounts), they are not found on the total link graph. Yet they are easily includable via a "NewUsers bot", detecting accounts with zero followers, and following them for inclusion within the follower graph.

Great post !

So what you check is the number of high REP followers an account have to determine legitimacy?

So let's say an account follows 2000 accounts and is followed by 1000 and in that 1000 none are highREP, you would classify it as spam?

Just curious :)

No, the follower graph includes all Steem users, minus bots / spam accounts. They can just be ignored from the follower graph.

That might be hard to scale no?

Nope, works on a Commodore 64 if needed. I updated my post above now including the "follower matrix", and a short explanation regarding multi-iterative substitutions (solving many simple equations) vs Gauss-Jordan / Gaussian matrices row reduction (which would be the de-facto solution, but extremely heavy on RAM).

Very clever and much needed solution... It's obvious we won't be able to rid steem of spam 100 percent, but we might be able to make it difficult enough to keep it at an acceptable level...

  ·  7 years ago (edited)

It won't get rid of spam by itself, but it will identify high rewards for spam posts
Update: if my proposal for HF22 will be implemented, it will also self-curate high self-upvoted SPAM posts! :-)

Like I've said before, this is one of the best Ideas I've heard/read so far, and I'm happy its getting the attention its getting.

Have you read my follow up article? It contains lots of explanations, applications and implications

I will now... I thought i had clicked on follow, but this is now solved.

Hey @scipio I am @utopian-io. I have just upvoted you at 17% Power!

Achievements

  • WOW WOW WOW People loved what you did here. GREAT JOB!
  • You have less than 500 followers. Just gave you a gift to help you succeed!
  • You are generating more rewards than average for this category. Super!;)
  • Seems like you contribute quite often. AMAZING!

Did you know?

  • I am going to become the first Steem Community-Driven Witness. Follow me to know when!
    Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x

Thank you Utopian-io! Bleep! Bleep!

Sounds so Techy but seems like some way out.

  ·  7 years ago (edited)

Haha! Yes it's quite high-tech ;-)
As a matter of fact, it's a probability distribution, and it comes forward from the "Random Surfer model":
Let's say somebody is brand new to Steem, and clicks on some user. Then they click on somebody that account is following. UA is the probability that "clicked account" has to be discovered at random from within the total follower graph.

Mate your the internet in one bite sized portion.. keep on being the inspiration you are @scipio
x

Thx buddy! :-)

This sounds really good. . Wish I was programming savvy enough to understand but it seems like you know your shit! :)

Cool avatar! And thx for the compliment!

  ·  6 years ago (edited)

Here are my thoughts. I would call UA - > “Follower Weight”. To be in sync with “stake weight.”

Follower Weight is pretty difficult to implement (as are SMTs, so I’m not saying difficult things aren’t worth while, they certainly can be very worthwhile) as proposed and doesn’t really fit into SMTs + Oracles as proposed. Conceivably this concert fits with SMTs and there could eventually be function for SMTs + Follower Weight. However SMTs + Oracles for “Equal Opportunity Voting for Individuals” is aimed to solve the same goals of better curation that Follower Weight is theorized for. So we do have redundancy there and I have more confidence in the SMT Oracle system (and I disclaim the full paper is not published yet but there is an explanatory video available).

In all I have always really liked the idea of Follower Weight (I even had a name for a Folllower Weight system called Gleen but abandoned it). And now coming back to it I realize adding a Follower Weight to Individuality Oracles would be very interesting.

@scipio do you code ?

Yes I code in Python (among other languages), but regarding Python I've published 25 episodes of my Learn Python Series on the Steem blockchain ;-) .

I love that :) Message me on steem.chat?

I just did! ;-)

My father who is 72 joined steemit in August 2016 because he bought steem as an asset. He does not use this "wallet" to post. But as i joined and sometimes write, he likes to upvote me. He has few followers and no posts and votes for me and what i resteem only. How many unique users like him exist that will be identified as bots? How many false positives is too many?

Very good question. First, don't worry. Second, please don't confuse UserAuthority with "false flagging bot accounts". Let me explain:

  • my blogpost is not a published double blind-read academic whitepaper, for it contains typos, and still misses bits and pieces here and there. It was initially published in a hurry, later on I added some updates, and I might continue to do so.
  • the picture containing the example follower graph contains the words "spam / bot account", where you might confuse it with a valid account of your father with the same characteristics. The picture is merely an overly simplified example to explain how UserAuthority works.
  • I think your father's use case is an exception, but it might not be: I can investigate that. A user that invested some outside capital, doesn't post, doesn't network, and sometimes manually upvotes 1 other account (you), yet doesn't hold enough capital to be followed by many (like @freedom).
  • because your father doesn't post, he can't self-upvote nor spam.
  • if your father only upvotes you, why not delegate his SP to you, or follow your voting trail? Currently he's wasting voting power, and therefore losing value due to share (vest) emissions, and that's the exact opposite behavior a bot would have.
  • UA is not intended to hinder small accounts, not false-flag them, but to combat system abuse and self-curate the system. Your father doesn't seem to abuse the system, he's just not really active.
  • UA can also be used as a detection mechanism to identify strange behavior, by extending it with other metrics. Extremely high frequency posting, lots of voting, high-correlation voting with other accounts (multiple self-owned bots0, and all that combined with low UA. Your father's account would not be "falsely flagged" or seen as a bot.

Cheers.

I do like your response and clarifications contained within. I am riding in my girlfriends car on our way to go to dinner with Dad now so I cant properly respond at length. Its great food for thought and future implementation within tustable media.

Drive safe! I'm not planning on leaving! ;-)

I do like your style because you called my Father a small user with a steem power of over 12,000. There's great irony buried in your suggestion that my father wastes votes in this context. Because he doesn't vote much, his potential share of the rewards pool goes to other users lol.

  ·  7 years ago (edited)

PS: I've just published a follow-up article!
UserAuthority (UA): explanations, applications and implications

PS2: you mentioned your father bought steem as an asset, as an investment therefore, not as a blogging tool. From the perspective of his own investment him not voting often leads to missed-out Curation Rewards for him. That's what I meant ;-)

That simply does not change the fact that his missed-out rewards are the gained-rewards of others.

I mean take me as an example, over half of my SP is delegated to benefit others. That equals missed out curation rewards. It is money that I earned and spent on steem.

Anyway, I didn't mean to give investment advice ;-)
Just don't worry your father will be falsely identified as a spammer or bot: he won't

I've come on over from one of the other threads discussing dealing with spam and general trust issues, and being familiar with the original PageRank and other search engine gubbins, I'll say up front that this is an impressive application of those systems and I believe it very well would produce a useful tool.

I would love to see the results of running it on the current Steemit population as a practical test on a snapshot to see if we can actually visually determine where the bots are. It's important to actually have an understanding on real-world data, which I'm sure that you know. Since all that information is publicly available on the blockchain and a static study would be sufficient proof of concept, I think this is something you should definitely pursue.

However – and compared to the actual usefulness of this tool, this objection is going to be weird and minor. I accept that. However, it doesn't take into account individual interest or provide an individuated view of the rest of the population. In theory, it would be possible to build a bot swarm that actually did actively upvote content that you like. (We don't see it happening now because there's no benefit to actually providing things that people will like compared to gaming the system, but it's a theoretical possibility.) Because your method describes a top-down authoritarian imposition of rank, that eliminates the possibility of beneficial bot swarms.

I also wonder if it's not vulnerable to the same failure mode of the original PageRank, where the assumption is that the more tightly connected a set of pages are to one another as long as they were connected to the main continent of connections, as it were,, the better they're assumed to be. This meant that isolated islands of content which weren't linked to above the threshold of notice of PageRank were considered not valuable, independent of actual content. Applying that to groups of user-agents concerns me that isolated groups of friends who have little interaction with the main body of Steemit because their interests don't overlap with what is commonly thought of as "good content" will be seen as undependable and lower ranked, even though for people who might want to be a member of that group, their interests would coincide but they will never discover them.

Other than that, brilliant idea. Let's see what it looks like and then we'll go from there.

Hi, thx for your in-depth comment!

You said:

Applying that to groups of user-agents concerns me that isolated groups of friends who have little interaction with the main body of Steemit because their interests don't overlap with what is commonly thought of as "good content" will be seen as undependable and lower ranked, even though for people who might want to be a member of that group, their interests would coincide but they will never discover them.

  • Content-discovery on steemit.com, from a user perspective, has very little to do with UA. It can be solved with an improved UI.
  • What's interesting though, is the possibility that a few friends on steemit are following only eachother, are producing the same type of content which only they like, and also they only like that type of content, so they don't follow or upvote outside of their own group. This is an extremely rare example which I doubt exists in practise.
  • In a web-content environment, those users (pages) are called "dangling links", like a new website with 5 pages that link to eachother yet no other domain links to the new website. Luckily on steem it's easier: we know exactly when new accounts are activated via their user_id, so we don't have to discover them via crawling the web like GoogleBot. We can simply add a FollowerBot called "@new" to connect them to the follower graph and only one account with one follower needs to follow FollowerBot.
  • In case a couple of new users, which were friends prior to beginning on Steem, in the beginning connect to eachother and only to eachother, that's still okay: the wouldn't have any votingPower anyway without UA implemented.

Content-discovery on steemit.com, from a user perspective, has very little to do with UA. It can be solved with an improved UI.

That's -- optimistic, sort of hand-waving one of the biggest deals in AI and social networking of the decade to a SMoP (Simple Matter of Programming), but we'll let that stand for now. I'm not sure UA really is that isolated from discovery; after all, the idea is to really keep discovery from happening on user-agents who are of likely bot-nature. What they do is immaterial compared to what people see.

What's interesting though, is the possibility that a few friends on steemit are following only eachother, are producing the same type of content which only they like, and also they only like that type of content, so they don't follow or upvote outside of their own group. This is an extremely rare example which I doubt exists in practise.

You might be surprised. Thanks to the fact that neophile adoption tends to radiate out from a few trend setters, while often you have people brought in by already-established folk, when the system is obscure you get folks who find it through more organic non-personal search, jump in, and invite friends. They tend to island for quite a while, comparatively. It's not a problem because they'll just as often use New or Trending or whatever the equivalent is to find new content -- but if the activity in the main body is sufficiently monocultural or low quality, they just don't hook up with any real adoption rate.

In a web-content environment, those users (pages) are called "dangling links", like a new website with 5 pages that link to eachother yet no other domain links to the new website. Luckily on steem it's easier: we know exactly when new accounts are activated via their user_id, so we don't have to discover them via crawling the web like GoogleBot. We can simply add a FollowerBot called "@new" to connect them to the follower graph and only one account with one follower needs to follow FollowerBot.

But is that useful connectivity information? Is that new account a bot or a person? We don't know and, in fact, we can't know until some more activity happens. A static snapshot can't determine the rank of a new agent. It's an open question how much activity it takes to tell them apart.

In case a couple of new users, which were friends prior to beginning on Steem, in the beginning connect to eachother and only to eachother, that's still okay: the wouldn't have any votingPower anyway without UA implemented.

That sounds more like an undesirable failure-mode to me rather than a desirable property. They should have voting power. At least one other person cares a lot! Those are important votes. To them.

I'm not sure UA really is that isolated from discovery

OK, let me rephrase it differently: My article isn't a PhD thesis but a blog post I wrote in about an hour and updated afterwards. I'm sure there are many applications to UA that weren't covered iny my article. I meant to say just now, UA in my article was not intended per se for content discovery. I'm sure there are many more applications for it, and among them content discovery.

You might be surprised.

I might, we have to first implement a test environment and analyze the resulting data. This was just a first post.

A static snapshot can't determine the rank of a new agent

Correct, that's why I included D, the damping factor, which holds a beginner amount of UA.

That sounds more like an undesirable failure-mode to me rather than a desirable property. They should have voting power.

Failure-mode? I was merely referring to the monetary upvote value a new user has currently: $0.00

The rest I'm on board with but ...

Failure-mode? I was merely referring to the monetary upvote value a new user has currently: $0.00

This is absolutely true. I also think of it as a failure mode which really puts off newcomers to the platform who aren't bootstrapped by knowing people. It's hard to get in, hard to find traction, and hard to get rolling and stay rolling.

I'd very much like to see what the current connectivity map of all the users on Steemit looks like, though. Even if UA is not, ultimately, particularly a good method of determining whether a user agent is a bot or not (and there may be factors that neither one of us or is aware of that makes that a harder or easier task than expected), as a form of simple understanding of the community as its architected, the value is definitely high.

Your "connectivity map" === my "follower graph". In my example, I began with the example-graph to visually explain. However, in a real-world application (Steem itself), the follower graph is derived from the follower matrix in stead of the other way around.

PS: I've just published a follow-up article! You might like it!
UserAuthority (UA): explanations, applications and implications

Thank you for helping us and this is a very cool article. I wish I could continue and consider you the ideal I also hope you look at my modest articles

Thank you for helping us and this is a very cool article. I wish I could continue and consider you the ideal I also hope you look at my modest articles

Very nice bro
Great post
Vary helpful to me

Ok cool. But, how is it helpful to you then? Can you explain that to me, please?

great statics

It's pretty flexible actually! ;-)

It's a great post for everyone.

That's actually a nice song title. Care to join me in a band?

Auto-elimination of the scammers/spammers would be the single greatest innovation here, IMHO.

It's not meant as a stand-alone tool, but to be combined / extended with other metrics

Re: our other thread, will cite this one! I need to dig into this post again (loved it on my first cursory read), but I'm certain I can include it in the one I'm cooking up for Nov 21-becomes-Nov 22!

Okido! And don't forget to read-up on the follow-up article ;-)
UserAuthority (UA): explanations, applications and implications

What is needed, in my opinion, is a decentralized annonymous proof of brain CAPCHA. This could be made a service for those witnesses presently not in the top 20 to deliver for some small reward.

This would help stem, in my opinion, the production of counterfeit steem as outlined in a recent blog post of mine...

https://steemit.com/steem-network/@novacadian/where-is-the-trust-in-proof-of-brain-mining

I proposed this earlier on @littlejoeward post https://steemit.com/steem/@littlejoeward/fixing-the-reputation-score-and-eliminating-spam-a-follow-up-to-user-authority#@littlejoeward/re-greenbeans-re-littlejoeward-fixing-the-reputation-score-and-eliminating-spam-a-follow-up-to-user-authority-20171127t132933699z

Ok this is my proposal on how REPUTATION matters and it is directly linked to your Steem Power and Steem Dollars.

I am rather new to Steem but I am seeing abuse by people who ruined their reputation because they know it doesn't affect their Steem Power or Steem Dollars.

Your Reputation should influence how you can delegate your Steem Power for upvotes or downvotes. If your Reputation is higher then you can delegate more Steem Power for voting up or down. If your Reputation is in the negative then you can NOT vote at all and you can't delegate Steem Power to another person or give away Steem dollars to another person until you fix your REPUTATION.

This is how it is real life. No one wants to deal with a Bad Reputation or Negative Karma person. And people are less likely to even listen to Bad Reputation person. Until someone can fix their Reputation then they can start voting or flagging again. This will prevent people from abusing their accounts or transferring Steem Power or Dollars to their dummy accounts.

This will be probably easier to program then to redo a whole new system as proposed by your post, Scipio.

It is too complex to understand, but I am sure that it will solve the current spa spam and bot account problem.

Do you use telegram ??
I want to connect with you.
Add me at https://t.me/Vikas_Jaat

thanks for your information .

You're welcome!

  ·  7 years ago (edited)

If interesting content providers just keep on providing interesting content will it all just eventually work itself out in the wash?

Is that the Steemdream envisioned , un-gamed blockchain?

No bot thoughts , just steemfeeds you really read.

I'll keep organically adding , my brain can't comprehend the mechanics required in how to unscrew the phantom spew users.

Your conclusion, last sentense, seems correct

Thank you for this great article. I wish you success because the way to write a good article will get to the best. Thank you again

Thank you for this great article. I wish you success because the way to write a good article will get to the best. Thank you again

Thank you for the contribution. It has been approved.

You can contact us on Discord.
[utopian-moderator]

  ·  7 years ago Reveal Comment

The number of accounts voting for witnesses is irrelevant. What matters is the stake (aka "Steem Power") behind the votes.

So basically one user with a ton of steem power can nominate himself as witness and hurt the platform and no one can do anything about it?

One bad witness can't hurt the platform. The job of a witness is to sign blocks and to approve software upgrades (forks). If a witness does not do what he is supposed to do then he/she is kicked out from the top spots or is left running a version of the software that is incompatible with the one used by the rest of the witnesses and by doing so is no longer part of the blockchain.

It takes 2/3 of the top witnesses to enforce consensus rules. Even is someone with a big stake does bad things socially, he still needs to behave as a witness and do useful work for the platform.

One "bad whale" is not an issue if the "good whales" counteract his or her social "mis-behavior".

This is good to know. However, this still requires the witnesses to be active and somehow cooperate in some form of moderation and enforcement of consensus rules. So the question is - do they? And how can we tell, aside from state of the witness posts?

This past week, with all that's been happening, just made steemit more fascinating to me as an Internet culture researcher.

I still have a lot of questions unanswered, like what can be done about illegal content on the blockchain. What happens if someone posts child porn, for example? How does the blockchain deal with THAT?

What happens if someone posts child porn, for example? How does the blockchain deal with THAT?

This can be dealt with in several ways:

  • At the UI level, each front end provider can choose not to display certain content.

  • At the community level the users can downvote unacceptable content.

  • At the blockchain level the witnesses can come to a consensus not to include unacceptable content from certain accounts.

The caveat is...who determines what is acceptable? What is illegal in one jurisdiction is legal in another. The only thing that we can all universally see as unacceptable is child porn...I think.

  ·  7 years ago (edited)

Yeah, child porn is a sensitive issue. It's the one thing that I think everyone can agree is unacceptable. Which is why I brought it up as a topic for censorship. The only one there's no argument about.

You wrote: "the witnesses can come to a consensus not to include unacceptable content from certain accounts"
But there's no way to limit the creation of new accounts. So theoretically, if a bunch of child pornographers decide to use the steem blockchain to store content or links to content that is unacceptable by all, what would be the process? How would this be stopped?

Edit: and thank you for the answers! I ask a lot of questions and it sometimes gets me in trouble (see: bernie flag wars), but I keep asking anyway. :)

Images and videos are usually stored on the blockchain merely as links to the actual content hosted elsewhere. That means that in the case of child pornography or other illegal content it's the persons or organizations hosting the actual content that would be liable and can be forced to remove it.

It is possible to post the actual image/video content to the Steem blockchain (see steemliberator.com) but that can be done with almost any blockchain, many of which are much easier to use for that purpose than Steem.

I agree with you about many of the issues here - specifically the great power a small number of whales wield over the entire system - but I don't think illegal / inappropriate content will pose much of a problem.

we did have a child pornographer named @iamgod on the platform. I wrote about it, and then the photos were removed from view, with only the link. The community massacred the account with downvotes.

This is good to know. However, this still requires the witnesses to be active and somehow cooperate in some form of moderation and enforcement of consensus rules. So the question is - do they? And how can we tell, aside from state of the witness posts?

The witnesses cooperate and come to consensus by running the same or a compatible version of the software. That is very visible on steemd.com.

As far as moderation that is the job of the community (especially of those with a big stake due to the disparity in token distribution) but it is not a function of a witness per say.

Again, UA is fat better at predicting witness quality as well.

  ·  7 years ago Reveal Comment