UserAuthority (UA): explanations, applications and implications

in #utopian-io6 years ago

UserAuthority (UA): explanations, applications and implications

bg.jpg

Three days ago, I initially published my article How-to solve SPAM and Democratize Steem: Introducing UserAuthority. In that article, I've introduced the derived metric UserAuthority (UA) in the form of a probability distribution. At first, the article was merely intended as a conceptual tool to be implemented as a weighed metric to improve the @utopian-io voting bot. Hours after publishing my article, I suddenly realized UserAuthority (UA) could (or maybe even: should) be used Steem-wide, for it allows for multiple applications solving a magnitude of "problems" throughout the Steem ecosphere.

Disclaimer: my (previous) article is not a full-fledged PhD thesis, but a blog post. It might contain typos, other errors, lack of source material, et cetera. But I did give it some attention though! ;-)

At first, regarding my previous article, upvotes flew in, yet people seemed to be afraid to comment on it, maybe due to the mathematical complexity. Therefore I decided to contact a few "techie PowerUsers" and to ask them to comment. Luckily, that worked, and from the comment section it became clear to me that a follow-up article (this one) was indeed needed for clarification. I really hope this article paves the way for even more in-depth discussions via the comment section and therefore I encourage everybody to share their opinions, questions and ideas regarding UA, its implications and possible applications!.

UA Explanations

I invented UserAuthority by simply converting Google's original PageRank mechanism, which values each Page's "authority" in its index / database by weighing all hyperlinks, into a Steem context. I didn't invent the underlying probability distribution, I simply understand how the underlying mechanism works and recognized that exact mechanism could be used within Steem as well to approximate the authority of each Steem account. Page == Account, Hyperlink == Follow.

At its core, UA represents the probability to end up on an account by clicking on a hyperlink to a random follower of a random account. The sum of all UAs is 1 (a 100% probability to end up somewhere on Steem by randomly clicking). The more followers an account has, the higher its UA. Every additional follower improves the UA-score of the followed account. However, not all follows are weighed equally! If @stellabelle for example (who is followed by a lot of accounts) would follow my account @scipio, that one follow by @stellabelle greatly improves my own @scipio UA because @stellabelle's own UA is high. If my @scipio account is also followed by a new account, that one additional follow also improves the UA-score of the @scipio account, but not very much.

Please note the mathematical necessity for each account to be followed by at least one other account connected to the main follower graph: otherwise, "dangling accounts" would exist. This can be achieved by creating an "@all" bot following every account, or a "@connector" bot following only previously unfollowed (mostly brand new) accounts, where that one additional bot is followed by at least one other account connected to the main follower graph.

Nota bene: UA disregards SteemPower (SP) completely, although high-SP is a side-effect of high-UA: account @freedom for example currently published 0 posts, yet has 917 followers but follows nobody. Account @freedom is therefore not followed for its published content but for its Steem Power (representing ownership and influence) and therefore still has a very high UA.

Nota bene: UA also disregards the "Reputation" metric. For example account @berniesanders currently has a low "reputation score" (-19), yet is now followed by 3,664 accounts, amongst those followers are high-UA accounts as well, and therefore account @berniesanders has a very high UA score. Every active Steemian will therefore intuitively recognize that UA represents the influence of the @berniesanders account far better than the current "Reputation metric does". Every Steemian can individually decide whether they like or dislike account @berniesanders, but it's a mathematical given that @berniesanders is influential. UA identifies the high authority of account @berniesanders, despite its low "reputation score" (-19) and despite the recent changes of its owned Steem Power (currently ~ 4,291 SP).

UA Applications

UA can be extended with other metrics

UA on its own merely represents "account popularity". Yet by extending UA with other metrics, for example "average post author rewards", "post frequency", "vote frequency", UA can identify some very interesting things!

UA can identify content quality

If an account (user) publishes quality content (article posts and/or comments), other accounts (users) could discover said content, like it and decide to follow said account. Such an additional follow is therefore merely an effect caused by the quality of content, yet it also approximates the average post quality an account (user) publishes. Also, if a previously popular (high-UA) account suddenly decides to produce "bogus content", a natural consequence would be that other accounts reading the content would decide to unfollow said account, resulting in a UA-decrease. Producing quality content will therefore be rewarded by more follows and therefore a higher UA, and producing bogus content will be "punished" with a lower UA. Democracy at its best!

UA can identify content-spammers

If an account frequently publishes "copy-pasta" content (found elsewhere on the internet) or "follow me please" comments (mostly from new accounts trying to get an audience for their lack of understanding the Steem ecosystem), it's probable said account has low UA, a high-frequency post trackrecord, and a low post reward trackrecord.

UA can identify self-upvoters

If an account has a low UA, a high post frequency and a high average post reward, this probably means said account (indirectly) receives high amounts of SP to (indirectly) self-upvote. UA will identify said accounts / account swarms. Previous attempts to combat high-payout self-upvoting account swarms by proposing a fixed limit of self-upvotable content were futile due to the fact that multiple accounts can be controlled by one user or collective. UA deals with this problem far more effectively.

UA can function as an honest voting proxy via sub-communities

Recently, the new @utopian-io community, at which I'm actively contributing for myself, got rewarded with a large amount of delegated SteemPower. @Utopian-IO rewards Open Source contributors for their contributions, be it source code contributions, marketing efforts, design contributions, copywriting contributions, tutorials, or Open Source related blogs. What not everybody knows, is that in order to get voted by the Utopian bot, an established content moderator first needs to approve said Utopian post. The moderators therefore function as GateKeepers to the Utopian Movement: only quality content is allowed to be upvoted by first individually curating it. I originally "invented" UA as an algorithmital metric to improve the Utopian-IO bot, by weighing every manual / human Utopian post upvote, not by its associtated SteemPower but by every upvoters own UA! If more topical sub-communities akin to the @utopian-io movement would be founded, and each received an amount of delegated SP, then content curation would be empowered by human content-specialists per sub-community.

Nota bene: @utopian-io is not a booster mechanism. It is indeed a topical community, stimulating publishing quality content and adding value to all Open Source initiatives. @Utopian-IO also helps the entire Steem ecosystem grow and become more valuable, because it attracks newcomers (previously unremunerated Open Source contributors) and improves overall quality and relationship networks.

UA does not harm new accounts

UA does not harm new accounts by rewarding them with a low UA-rank. Because UA is not intended to be used as a sole metric, yet as an identifyer to be combined with other metrics (as explained above). UA even stimulates new accounts (users) to form new relationships, because via UA developing relationship networks is stimulated and rewarded better. That also stimulates the entire Steem community to welcome and help newcomers instead of simply punishing them with downvotes on "follow me!" attempts to be noticed.

UA can identify, and ignore, bots

Most (not all) bots have low UA. Some bots (including the popular boosters) have a very high UA. It is mathematically possible to deliberately exclude known bots from the follower graph. Most known bots, were before easibly identifiable already (due to high amount of follows). However, UA now also identifies low-UA bots, which previously fell "under the radar".

Nota bene: a bot has a different extended UA profile than a new or inactive human account has. People should therefore not fear system-wide implementation of UA, because it will not false-flag new / inactive user accounts.

UA Implications

The implications of UA itself - as a concept - are limited. Yet if UA would be adopted widely throughout the Steem ecosphere, its implications are vast. I have already proposed two hardforks in my previous article, which I repeat, for discussion purposes in the comment section, here:

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.

Please openly discuss, ask questions, give your opinion on applying UserAuthority in the comment section!



Posted on Utopian.io - Rewarding Open Source Contributors

Sort:  

Hey @scipio, I wanted to comment on your first post but things got in the way 😅 so I'll comment here as my thoughts still seem relevant.

Firstly this is a really interesting idea and it's very similar to something that I looked into with @rycharde and @andybets a few months ago. We looked at a research paper called SybilDefender, it's really interesting and readable, I recommend you check it out.

It's sort of similar. SybilDefender uses specialized random walks over the network topology to find groupings of nodes (accounts) and isolate sybil nodes which are assumed to have a "small cut", i.e. limited interaction, with honest nodes. The network topology model I would use for Steemit would be the connections implied by outward votes I think, or in other words a vote is a small endorsement from the voter to the votee. I think this is better than the follower model you propose, although perhaps both could be used, where following is a very strong endorsement.

Anyway, the problem with adopting either of these at scale is that it is essentially bot work, done by a kind of sentinel program (got to get that The Matrix reference in!). It's not something that can be added to the blockchain code, as (1) it would be a large computational burden for witnesses and (2) it is a maintenance job which is outside the "call and response" role that witnesses have, unnecessarily complexifying the witness code.

I don't think the idea should be shot down at all though, it's a problem that needs to be solved in some way, but your proposal needs to be more realistic. This work costs do to, both in development and code maintenance costs and the running of the service itself. There are hundreds of thousands of Steemit accounts, and many more made every day, we're already way way behind on getting on top of this.

Recently @ned made a call for people to get involved in the SMT whitepaper in which he listened to a good idea from @inertia who had the idea that there should be an additional role for people to be watchdogs on the new Oracle role, or in his words "second levels of Oracles whose jobs are Quality Assurance".

I imagine your UserAuthority idea as that, QA on accounts. And there should be some formalized way to do this, not just ad hoc as you propose for the Utopian.io bot. It seems to be that the idea is to create a Quality Assurance role on the blockchain, like the way there will be Oracles and Oracle QA roles, where one keeps an eye on the other. We have account creators (now anyone) and we should have account creator QA. Or perhaps a general blockchain account QA role that is voted on like a witness.

There will always be some that say that any move against accounts or posts is an attack on free speech but it has to be clearly stated that some accounts are bad actors and work against the network. In other words, we accept the existence of sybil and other attacks, so we have to accept this. So as a wise person said to me recently, "The difficulty in such determination does not negate the distinction the determination provides.". Though it was in reference to something else, it applies in this case too.

Hi @personz

  • interesting read indeed. But it's very computational-heavy and one shouldn't use a cannon to shoot a fly (ref. Confucius). UA on the other hand is relatively simple and extendable.
  • UA is not meant as a stand-alone metric. It's derived itself from the follower graph on the blockchain,
  • UA can be used Steem-wide, via a reversed binary index holding all UA-scores, calculated by witnesses daily / per hour, where the UA-results binary's hash is stored in each blockchain block. Remember all the follower-data is in the blockchain already, just currently not in a usable way to read every user's UA on the fly.
  • please note that with every individual follow-change, the entire UA matrix is changed. If user A decides to follow user B, that one follow changes the UA for every user. However, the impact of that one additional follow, is so small on the entire follower matrix, the difference for each account is roughly 0.0000000001% and therefore marginal. A daily / hourly re-calculation of UA is therefore to be considered OK.
  • indeed, just because something seems difficult doesn't mean we shouldn't try: in fact the difficulties make it an even more interesting problem to solve.
  • I haven't programmed in NodeJS for over 13 months, but I found a NodeJS dev willing to write an MVP, based on my two UA-articles, where I coach the dev. I'll look into NodeJS myself as well (to blend UA code into existing APIs).
  • 3 essential steps are needed to let UA succeed:
    a) develop the UA MVP (via Utopian), test-drive temp results, alter the damping factor in case needed. Since UA is a game-changer (who you follow and who follows you becomes important), users will change their follows accordingly after deployment. "New rules lead to different behavior**. That anticipated behavior needs to be factored into the MVP test-results
    b) evaluate and discuss MVP results Steem-wide, propose and vote for HFs
    c) deploy Steem-wide.
    Let's begin with -a- I suggest

Thanks for your detailed response. I should say right off the bat, because I didn't say this before and it's relevant, that I do not agree with the usage of a "honestly" metric to factor into payouts or vote weighting, as you suggested in your first post. I see it's usefulness in providing facts (i.e. a score) for a human led action (such as a witness could do) to divest a user of their SP (not including delegated SP of course) and prevent social media operations (voting, posting, etc.), while allowing the wallet to exist.

Your proposed algorithm is a good indicator of dishonest accounts but it would not be good to enforce this view on the populous. I don't believe the view is comprehensive enough for that. So I would very much oppose the two hard forks you suggest, as you suggest them. And I can tell you that in it's current form it will certainly not be adopted.

On the technical aspects, your calculations only hold up (if they do hold up, I didn't check) for follow information, not when including the much more voluminous vote information. I think votes are a better indicator of "the network", i.e. the topology, than follows.

The reason why it would work well for the Utopian bot is that Utopian is very heavily moderated and has high and restrictive standards on it's members / users. This is not the approach for the Steemit social network in general, so I assume you would prefer to go towards that. I don't think that will fly.

Looking forward to the MVP and updates on how the algorithm plays out, especially profiler / benchmark information.

A daily / hourly re-calculation of UA is therefore to be considered OK.

Indeed, that was one of my thoughts. In real-time, at current technical levels, it would be improbable that it could be done.

If the payout window stays 7 days, then I guess even every a 5 days recalc could be reasonable. With more users coming to Steem the amount of needed calculations would go up very fast. It would be a quite impressive piece of work I guess.

And if you never try, you'll never know.

As it seems you were thinking a lot already about how to improve the platform, I would be curios to read your opinion concerning the idea of diminishing returns to make it less attractive to upvote the same accounts (including ones own ones) again and again ("circle jerking") and also to make repeated flags on the same account less effective (downvotes should be used to decrease the reward of low quality content but not to 'hunt' users because of their different opinions or any argument in the past).
In the linked post I described the idea like that:
"How about if after each vote on a specific account (including ones own account) each further vote on the same account would lead to significantly less curation reward for the voter and less profit for the upvoted account? Thus, when upvoting an account which I had already upvoted before, my voting power would be smaller than in case I upvote an account which I didn't upvote before."

The diminishing returns implementation is something I've supported from the first time I heard of it suggested by @rycharde some months back, in this post. On point 13 I'll quote it

Self-voting and voting cliques cannot be eliminated. Indeed, for curators self-voting can be important in triggering votes from their followers. It is also a waste of social power to spend considerable time on negative interactions at the cost of more positive ones. Therefore, there can be a rule that voting for the same user, whether oneself or another, will decrease the power of each subsequent vote, within a limited period. For example, take the last 10 votes of a user and, if a new vote is given to a user already voted then that new vote may be worth 90% or 80% of what it would normally be. This can be scaled down to the point that further votes have even less value. I repeat, this will not stop such behaviour but will decrease the reward pool that it generates and therefore mitigates some of the effects on the whole system.

Pretty much the same thing, though we can quibble on the details. I'm currently looking at ways to implement it in a new SMT I'm thinking of because it's extremely unlikely Steemit will implement this even though it's a great idea. It's also an anti-spam measure, increasing the number of accounts needed to take advantage of the free SP delegation by orders of magnitude.

... because it's extremely unlikely Steemit will implement this even though it's a great idea.

Maybe you have a better insight into internal Steemit discussions than I have, and I would be curious why actually probability is so low that this idea will be considered one day? Do they just don't like the idea or would it be very complicated (respectively needed too many system resources - one had to save the information who upvoted whom for a while ...) to implement it?

I ran it by several witnesses at the time the post was published and it just didn't sit well with them. Most of them didn't agree with the idea that clique voting should be disincentivized in the first place. And the others thought it would be too complicated and processor intensive. And they have a point.

But really Steemit Inc. are very relucant to change anything so fundamental and their eyes are fixed on SMTs really, there's no political or engineering will for anything like this. I think a parameter change is as much as is likely to happen. Don't forget that for any hardfork, even if it is crafted over months, it's up to the witnesses to agree to adopt it in the end.

Still I think it would be a good thing to do to spread things out more. The rewards are heavily going back to the top guys so it's not great for the platform as a whole, in my opinion. People disagree with me on that, usually saying that the large investors deserve the "return". Well their return is so massive that I think they should be economically encouraged to curate with a wider net.

"The rewards are heavily going back to the top guys so it's not great for the platform as a whole, in my opinion. People disagree with me on that, usually saying that the large investors deserve the "return". Well their return is so massive that I think they should be economically encouraged to curate with a wider net."

This. It's easy to like rewards when they're pouring in, but every reward attained comes at the cost of an other's rewards, and at this stage Steemit should be investing in growth, which depriving new accounts of rewards definitely doesn't do.

It's not that people able to game the system are somehow nefarious, but that they're gaming the platform out of utility for many, and this shoots themselves in the foot.

Your diminishing returns mechanism can be tricked, has some unforeseen side-effects, and is very computationally-heavy because it would require a running timer function and the complete vote-history of voters and votees, all in real-time:

  • in case of a very wealthy (high-SP) account, it could spawn - let's say - 100 self-owned bot-accounts, spread-delegate X % SP to Y % of said bot-accounts, and re-delegate SP to Z % of said bot-accounts once the diminishing returns become unprofitable. Once the timer function is recharged, it could re-delegate SP back to the Y % bot-swarm, successfully circumventing your proposed mechanism.
  • in case an honest accounts has gathered a decent supporting audience, the honest account's content cannot be properly rewarded due to diminishing returns.

My HF22 proposal upvote_reward = UA * SP works far more effectively and efficiently to honor the intended use of your own proposal, because the only thing needed to successfully combat the upvote/downvote actions of said very wealthy (high-SP) account it to let the community collectively** unfollow** that account.

PS: I'm not trying to "shoot down" alternative proposals, like you have proposed via diminishing returns , but by design the UserAuthority simply outperforms other mechanisms.

I am not really convinced yet, that to 'honor' the amount of (weighted) followers would solve the problems, even if it is a really interesting idea.
For example whales wouldn't unfollow each other because of the mutual consequences, but if a minnow decided not to follow anyone anymore it wouldn't have much impact.

I wonder why 'honest' content could not be properly rewarded anymore in case of diminishing returns? Everybody still could upvote every other account with full strength, but just not so often anymore per day (he still could do it but then would earn less).
And concerning delegations you know my opinion already: I see no real reason for that - the positive effects of delegating Steem power are overestimated, the negative effects (vote buying as a consequence) underestimated. I would reduce it respectively make the conditions harder (for example extend the timescale in which one could use delegated Steem power again).

For example whales wouldn't unfollow each other because of the mutual consequences, but if a minnow decided not to follow anyone anymore it wouldn't have much impact.

I've yet to test it, but I'm pretty sure the combined UA-weight of all minnows exceeds the combined UA-weight of all whales. One minnow follow more or less indeed doesn't matter much.

Everybody still could upvote every other account with full strength, but just not so often anymore per day

What about honestly liking and upvoting 30 well-thought of comments from the same user? Or what about liking and upvoting a lot of jokes from the same user found at the @traf account (including user @traf as well)? Diminishing returns in that case also makes no sense, those exist already btw, via the voting power "battery" mechanism!

PS: once again, I don't want to "shoot down" your proposal, but UA (if/once hardforked anyway) solves the exact problem you are addressing, it really does! And if you're not sure, just try to think of scenarios, of anticipated user behavior on that scenario, in case UA would be deployed system-wide.

No problem, I like that there are many different ideas, the more, the better. Keep me informed about the progress of your idea ... for example about some testing (in case that's possible).

I am somewhat stubborn, though, too. :) I don't think it is really necessary to upvote 30 articles/comments of one and the same author per day. You can upvote a few and if that is still not enough you can write something nice instead. :) Can you really write so many good articles in such a short timescale? I can't. @trafs short posts are a matter of taste, but in case you like them you may agree that the work load to produce them is not really high - so if you upvote only 2 or 3 per day that may be OK (of course that's only one possible opinion).

BTW, you said:

your proposal needs to be more realistic

As I've explained in my previous response to you ...

UA can be used Steem-wide, via a reversed binary index holding all UA-scores, calculated by witnesses daily / per hour, where the UA-results binary's hash is stored in each blockchain block. Remember all the follower-data is in the blockchain already, just currently not in a usable way to read every user's UA on the fly.

... I argue my proposal is indeed very realistic. UA is currently being developed into an MVP by said helper-dev and myself. Stay tuned for updates! ;-)

Yes, I'll wait for the MVP for confirmation but it looks like you're right, my mistake. However as I also said, you need the vote information too for it to be a true reflection of the network which complicates matters slightly.

I have resteemed this post for extra exposure.
having read the first post I am in agreement with changes like this and this is a very solid proposal

I am also tagging #witness-category

You are a "gem" yourself @paulag

Personally I'd like to see The amount of steem power of the followers to be factored in. I've seen serial spammers with 200+ followers as they tend to follow each other. From my experience, Average comment length and reply length is also a very good indicator of a productive steemian. I'm not a professional programmer. So I don't know how implementation would work.

There are multiple ways steemians produce quality on the platform. So personally I think the follower count, comment and reply length, average post value, Average comments per page and steem power are all good indicators. So it's wise to incorporate them all.

Also I'd like you to check out @miti's effort to combat spam. You can read it here: https://steemit.com/steemit/@miti/my-commitment-to-making-steemit-a-place-free-from-spammers
He/she is fighting the good fight for steemit. I have no affiliation with him/her. I just came across the account and it's really something I've wanted to see after my almost effect-less attempts to flag serial spammers with my minnow account.

Please go check it out.

@vimukthi :

  • the amount of SP an account holds, is strongly correlated to UA, because users naturally follow wealthy accounts (they might receive rewards via commenting on high-UA users), yet people also follow "interesting accounts", let's call them "gems" (I personally right now have 246 followers including some Whales, my account is still 0 months old, yet I only have 71 Steem, but I have published 4 high-upvotes articles)
  • UA is not to be seen as a stand-alone metric, nor as an anti-SPAM metric by itself. I've explained multiple times that it can me extended with other metrics. E.g.: low-UA && many posts (articles) during a longer timespan (> 30 days in a row posting) ~= spammer
  • @miti might want to let the above metric serve as his "guide" to manually detect and hand-flag spammers, if he wants to combat spammers

Thanks for the input. Good luck with your work!

Accepted [utopian-moderator]

Much needed metrics, reputation is worthless as it is.
The implications to Utopian bots and the whole Steem ecosystem will be huge, can't wait to start working on it ;)

Thanks, and we will do so, starting tomorrow @stoodkev! :-)

Agreed!
But you know how google has to update its algorithm in every month or day just to fight with those unnatural optimization activities and remember how many known-unknown algorithms they are running. Will this be feasible on steem with such small development group? It will take lots of manpower, time and money!
Only My thoughts though!!

Hi @katteasis On Steem my UA algorithm works even better as PR does with Google:

  • there exist many more pages on the web (billions) as users on Steem right now (~ 500k), so it's not that computational-heavy
  • the core "gaming"-problem the PageRank formula has with pages, does not exist with Steem followers: a page can link to itself, and can link to a neighbour same-domain page hundreds of time, thereby "locking up" PageRank inflow. Yet on Steem, an account cannot follow itself, and can only follow another account once

I Understand.
I am not saying it's not a good idea. But still, it can arise problems like Private Networking, follow/follower selling/buying, multiple fake accounts etc...we should be ready to face such activities Implementing any kind of UA/or ranking since they will be coming sooner or later.

That would be futile on gaming UA:

  • mathematically, UA allows for "jailing" accounts in the follower matrix. A SPAMhaus account could used to vote for jailing-consensus
  • and even more powerful, UA allows for a democratized call to unfollow each high-UA follow-seller, making its efforts powerless

Great!
If you believe we can get it working this way then you should Try to approach witnesses and the teams with your Proposal. Few days ago I've seen a post from jerrybanfield as Call To Proposal or something like that. I am not sure this fits on that category or not. Maybe you should check that post If you Haven't already.
I also want to see this Implemented on steem.
GOOD LUCK!!👍🏻

the core "gaming"-problem the PageRank formula has with pages, does not exist with Steem followers: a page can link to itself, and can link to a neighbour same-domain page hundreds of time, thereby "locking up" PageRank inflow. Yet on Steem, an account cannot follow itself, and can only follow another account once

This is also a good counter-argument to the suggestion I keep seeing to also incorporate upvotes along with follows.
A second counter-argument is that incorporating follows makes it many times more operationally expensive.
A third counter-argument would be that votes are much more likely to be bot-driven (a la luckyluke, streemian, voter trails, buildawhale vote clubs, etc.) than actual follows (which in the case of high UA users generally mean they want to see more content from that user, while low UA users may be following follow-back strategies).

Great job @scipio, resteemed this one, as I think it is the most easy to understand for most Steem members.

Code is law, something that would be my prefered way to keep most comprimised human behaviour out of a system, also spam-bots are being made by humans. By bubbling up something that could be considered as natural social human behaviour patterns. Where the corrupted ones would sink through the filter maze into the virtual mud.

One challenge I saw was the implementation into the blockchain realm of Steem. It would very possibly need an external database structure, as you mentioned. Too complex to do with the way Steem stores its data, or maybe it can be done, in a simplified way, don't know. Thinking about an ongoing proces. That keeps updating with every new follower for an account and stores it in a block. But I guess that is to much overhead for the Steem blockchain to be able to deal with.

Then it would be best to use it in relation with a User Interface, like SteemIt dot Com, although the use of the API would still allow surpassing it. As it could not be wise to make the Steem blockchain depend on a more or less centralized database system. Implemented in a way images and videos are handled externaly by IPFS and hyperlinked in a post. Then the UA value would be calculated externaly and kept updated just like a links to an external source would be used.

It would be great if it could make Steem get better, in making sure valued content is added. As that is how I see it, not perse as guaranteed good or quality content. It depends, as I see it, on what accounts the majority of Steem members follow. That make it for others interresting to follow too. There is an economical incentive there too. Following popular accounts, will give you a better UA [EDIT-2: Just the other way around makes sense, getting followed by popular account that have a high UA...] And all of this could do good for the Steem market price. As it would attract more members in, it would make Steem more like a popularity magnet.

Wonder how this would work out with the UA system you suggest. As I do think myself that something being considered popular, thus gaining more follower attraction, would not be a guarantee to deliver good quality. Although for a part that could be considered subjective. Besides the several clear benefits, like restricting downvoting and calculating the potential payout in a differente way, I am curious on how that might evolve.

[EDIT: removed a part of the text that on second thought I did consider irrelevant.]

This is me thinking while I type from what it triggered for me after reading both your blogposts. No idea if it makes any sense. But this is what my thoughts were so far.

Hi @oaldamster

  • we both know a wise man who said "playing simple football is hard". Let's try anyway, because "if you don't shoot, you can't score a goal"
  • in your reasoning, there's an error. You said ...

There is an economical incentive there too. Following popular accounts, will give you a better UA

  • it's the other way around: having a popular account to follow you means you'll be rewarded with a higher UA. If a n00b follows a whale, the whale probably won't follow the n00b. The n00b first needs to gather a low-UA audience to resteem the n00b's articles, in order to get noticed by the whales
  • I'll comment on the decentralized database / blockchain problem in my response to @personz's comments.

Sure, if you do not try, you won't know...

And yes, you are right, the reasoning is the other way around, getting popular accounts to follow you. At first I thought that there could be a risk that Steem would become a legend level controlled popularity game. But it does not have to be build around a few accounts with a high UA defining what will become a standard for what is okay, considered good or even quality content.

But also accounts that are into absurdism, as an absurd example, could still get a high UA. Having lots of followers, that each have lots of followers, having each lots of... And so on and so forth.

There is one thing that I do my best to wrap my head around. In the formula you presented, there was no SP considered at first. The value for any account its UA is in effect an accumulation of all following accounts their UA, that depends on their UA, which is an accumulation of their followers UA etcetera. Do you consider it to be a needed part, using it in combination with SP?

Legend levels will then be redefined with a UA value (also taken into account the SP they vested) and Newbie levels will have the lowest UA value possible. Trying to get as many high UA level accounts to follow them. There is the economic encentive. Higher UA, means higher possible payouts, getting even more followers and so on.

This could act like a bubble up - sink down filter mechanism I guess, so no economic incentive to SPAM, or do the famous "Good post" kind of replies. Or the "Follow me and Upvote me now!" pressure replies. Or the link spam replies. As there is a low chance that will be rewarded with a follow of accounts who really put an effort to post and reply. To build a high UA containing (sub)network, a different behaviour pattern would be needed.

With a higher UA of influence as a kind of reward for posting using that appreciated behaviour pattern. What I do wonder is how this could work out for system critical posting accounts for instance. Would freedom of expression still be able to live at the Steem blockchain? Or could it be that it got silenced through this mechanism? Or that could build its own sub-network too, also with a high UA status.

That would make also sense in combination with SMTs. Like an Art sub-network, with their own SMT called Rembrandt would want the artistic contributors to get a part of the RMB reward pool. Not those abusing the art hashtag. But they'd have a low UA anyway, so at the most the'd get a small fraction of the rewards and a lot of unfollows.

Just me thinking out loud again...

The value for any account its UA is in effect an accumulation of all following accounts their UA, that depends on their UA, which is an accumulation of their followers UA etcetera. Do you consider it to be a needed part, using it in combination with SP?

Nope, high-SP is correlated strongly to high-UA, but only as a side-effect:

  • people follow high-SP accounts (for notifications, and to get rewarded via commenting)
  • people also follow low-SP accounts for good content (I value each of my own followers as gold...)
  • ignoring SP into the UA matrix, allows for jailing accounts in the follower matrix (ignore all from-to follows regarding accounts X and Y)
  • UA allows for Democratization of Steem, because many small accounts can collectively decide to unfollow accounts X and Y, effectively taking away their powers:

ref. Proposal HF 22: vote_reward = UA * SP

Thanks, got it.

Just read the extentension part of UA usage in the Steem realm as in being a combination of different metrics.

That too makes sense.

It does, doesn't it! :-)

Yes, it does indeed. ;-)

I kind-of feel proud for how-to embed inside the blockchain. The rest is just a cool way on how to re-use 1960s math.

Great innovation, old school math put to good modern use.

Agreed in every single point mentioned here. Time to get implemented then :)

Yup... getting there...

Hey @scipio I am @utopian-io. I have just upvoted you at 10% 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!

Suggestions

  • Work on your followers to increase the votes/rewards. My vote is on the human input. Good luck!
  • Contribute more often to get higher and higher rewards. I want to see you often!
  • Wondering why other contributions got more? I introduced a competition factor. My vote is based also on how competitive the category used is.

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!

mooncryption-utopian-witness-gif

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

Thx again Utopian-IO! Bleep! Bleep!

UA sounds like a good concept. However I wonder how good UA can be for social aspect of the steem. I mean some UA factos can stop you from debates, comments and opposite view point if people with higher UA can downvote you?

It's exactly the other way around: UA could defend you from being downvoted by a bot-swarm controlled by a powerful (wealthy / high-SP) user.

No idea how this would protect newbies. I guess I have to wait till something like this gets implemented and then simplified for some of us users.

If you would re-read the article / comments, I've explained how UA doesn't harm individual n00bs, and how collectively n00bs have the power to combat being mass-flagged by bullies.

In practice, somebody with high UA would be more aware of community norms and the potential impacts of abusing their authority. You are much less likely to be downvoted arbitrarily by a high-UA user than by a high SP but low UA user.
The math helps new users by making bully behavior more difficult, while simultaneously attributing greater power to those less likely to engage in bully behavior.

These were two of my favorite articles I've come across. I was writing an article and was struggling with whether or not this was possible when I saw your first post telling me it was! I think we could extend this by adding a few more metrics, if people have muted you it would be a negative score, if you upvote spam its bad, if you downvote spam it's good. It would also be able to identify what posts are spam and which are not. Anyway, thanks for the article! I linked to it in my post and used your diagram, if that's not ok let me know and I can take it down. I just loved it! https://steemit.com/steem/@littlejoeward/fixing-the-reputation-score-and-eliminating-spam-a-follow-up-to-user-authority

I would love to work with you more on this idea, though my coding skills aren't very good (beginner) I might be able to help with testing or I'm pretty good with formulas on google sheets to create some simple tests of these ideas. Anyway, let me know if you need anything!

Thx, and you're welcome! Read your own article as well. Could you maybe mention my account name in there? (@scipio)

PS:

  • calculating UA in a blockchain decentralized way is in fact very hard to implement, but I found a solution for that already, screen this comment thread for my reply to @personz : the solution is in my response.
  • there are many extensions possible, using UA at its core to construct all sorts of new metrics.
  • incorporating all upvotes/downvotes, mutes, content-analysis within UA itself, would make it impossible to be implemented in real-time for blockchain use.
    So, nice ideas, but UA needs to stay elegant and small for computational reasons! What you want is all possible via extending UA with other metrics.

PS: upvoted your post as well

No problem... and done.

I've read every comment on both of your posts! Very interesting discussions! I was glad you came up with a solution because I was afraid that it was impractical to implement. A couple ideas: (sorry if they are dumb ones haha)

I realize that I am probably missing something but it seems to me that if you are already looking at all followers it would only increase the computational power by ~4x by looking at mutes/ upvotes and downvotes on accepted/spam posts. Wouldn't you use the same basic process?

Could we just calculate it once per week or per day or something because it isn't really necessary to have it be real time because it shouldn't change much day to day.

Or maybe it could be something like the current reputation system (I think) where it simply is added to/taken away when an event happens. (someone follows/mutes you, your score goes up or down etc) It might not work quite as well but I think it would be much simpler to implement/compute.

The real innovation is my implementation for blockchain decentralization: how to embed UA steem-wide. The rest is just 1960s math, few seem to understand (as long as it gets implemented, I don't care).

Incorporating upvotes/downvotes inside UA is not feasible computationally. Because on average every account hold thousands of upvotes/downvotes.

Most importantly to understand on why UA is completely different to SP or Rep: it's backed by a probability distribution where the sum of all UA = 1 (100%).

Great explanation. This one I understood very clearly. ;)

I hope this time without the headaches? ;-)

There might be a problem with punishing people with a low following with low curation rewards. Some people may be good at spotting quality content early on, or at least before all votes are made on it, but not good in publishing their own, thus probably have very few (or no) followers.
I think there should be additional matrics increasing one's UA, like upvotes on comments and replies, essentially motivating people to write something insightful, or to start a meaningful discussion (although there's a question how easily abuse of the reply mechanism is combatible, if the OP can delete comments, then spam replies won't be an issue, and if the OP practices in it, should others downvote???).
Upvotes on posts obviously matter, because we sometimes like someone's individual post, but their other posts aren't relevant so we don't follow them. Or we actually want a very customizable feed, and a good post deserves an upvote, but we don't want it in our feed.
And as @vimukthi said, reply and comment length are an important factor. If combined with the upvote count (multiplied by UA of the upvoter) it could allow those that aren't good with publishing their own content, but are active in discussions, to accumulate their UA, and not fall behind.
Edit: Also, succesfully curating popular content early own should increase UA, in my opinion.

Hi @imacryptorick

  • UA does not punish people, nor should it be used as a stand-alone metric.
  • it's supposed to work by extending / combining it with other metrics.
  • UA is not to be seen as a stand-alone metric, nor as an anti-SPAM metric by itself. I've explained multiple times that it can me extended with other metrics. E.g.: low-UA && many posts (articles) during a longer timespan (> 30 days in a row posting) ~= spammer

I finally found the time to read this post with due care... it's time well spent!
My fight against spam is not a personal battle but a matter of principle. So, if there's a way to overcoming the scourge of spam at the root without necessity of downvote comments, I will be the first to support it.
If you need me, I got your back!
Upvoted and resteemed.

i love it
nice one

Cool, UA loves you too!

thanks where are you from

Earth, you?

Nyc Post!! Well done!!

Thx "bro" :-)

For my buddy @scipio ! Your Blog is getting much deserved attention. Keep up the great work !!

2017-11-17_0807.png

Maybe do different colors? I like blue, red, orange and white for example

for sure, was going with the Steemiy Colors on this one

Congratulations @scipio! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

Geeh thx Steemitboard! Bleep! Bleep!

do I like this post?????? Yes!!!!!

Congratulations @scipio! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of comments received

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

Congratulations @scipio! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

I just realized UA could be used as the basis for currency distribution, where individual access to amounts of currency are representative of the UA. Out of a a total pool of units of currency, each accounts UA could determine their distribution apportioning.

Interesting idea. There seem to be many ways UA can be applied to societies.

Thanks!

Wouldn't UA have the potential of eliminating the need for negative voting? Flagging seems to be a rather abused feature. Don't want to see it? Don't follow it. Following an account that keeps resteeming stuff you don't want to see? Unfollow that account.

:) Yep, it's hard to me understand all this things hehehh step by step would be the way ;) Thanks one more :)

nice
please upvote and comment bro
@osman28

xxxx

Ignoring spam is also a way. Your banner-gif gets a lot of eye-balling attention...

That's the idea, @scipio... in fact some user remove spam comments after receive my "attention". But since many authors had the same comment like you, i think to modify it as soon..

Maybe you might consider doing the same thing (removing the banner) here ^^^
;-)

That's your right.

Very informative post!! Thanks for share this kinda stuff..
You can also check my latest post for @utopian-io. Your thinking about my post may be inspire me a lot!
https://steemit.com/utopian-io/@sagorahmed/node-js-basic-tutorial

Spamming comments is frowned upon by the community.

Comment spam is currently defined by @steemcleaners as:

  • 10 or more generic comments per day that are not in response to a question posed by the post or comment. “Thanks”, “Great Post!”, “Nice”, “Follow me”, etc.

  • Commenting on old posts to hide self up-votes or a voting trail.

  • Copy/Paste comments that serve no purpose or the purpose is self promotion.

  • Comments that inform the contributor that they have been up upvoted, resteemed, or flagged when the curator does not actually upvote, resteem, or flag the post.

  • Unsolicited and off topic referral links.

Continued comment spamming may result in action from the cheetah bot.

More Info: Abuse Guide - 2017.

@sagorahmed : as I have argued in my article (please read it first), I refuse to "flag" newcomers attempting to get some visibility. Yet this comment of yours is a good example of what my UA algorithm self-curates via the community. I've read your article you are linking here, and it is nice on its own, will probably get rewarded on its own (good-enough quality), so you don't need to advertise it here. Also, I do understand why you are trying to promote it: the current Steemit interface lacks a private encrypted direct messaging layer. There are however better ways to promote your content: just join steemit.chat and/or Discord chat, interact with users individually there, and people who like your content will probably upvote it, comment on it, and / or might decide to follow you for it. I wish you great success! :-)

So sorry @scipio. I was comment here because i love the way you working and i was comment here to get your opinion about my post.
Thanks for your advice. I won't do this again to promot my post.

I understand @sagorahmed ! That's why I didn't flag you, and explained why.
It's nice to hear that you like my content! Good luck!

PS: if you want my opinion on something in the future, just ask for it via direct messaging me! I'm also @scipio in the chats...