Introducing a "like" Button to Hive

in Hive Improvement4 years ago

So I just had this idea... (and maybe I'm not the first to have had it ;)

It feels revolutionary... it should be simple to implement... could it solve one of the biggest problems on Hive?

likes.jpg

TL;DR: the introduction of a "like" button could improve the trending page, help (new) users get much more visibility and solve the problem of "low quality posts"
 

Before I explain my idea, let's have a quick look at PoB

A big problem on Hive currently is that the implementation of "Proof of Brain" (PoB) doesn't really work very well. What is PoB you ask? There is a good post about this from several years ago by @greer184 entitled Taking A Deeper Look At "Proof-of-Brain".

Proof-of-brain is described in the Steem bluepaper as having the following two properties:

- a pool of tokens dedicated to incentivizing content creation and curation (called the "rewards pool")
- a voting system that leverages the wisdom of the crowd to assess the value of content and distribute tokens to it

These two properties come together to allow the Steem blockchain to distribute a large portion of the block rewards using human participation as the mining mechanism rather than using electricity and finding hashes which traditional proof-of-work blockchains utilize. The human work is what is valued here rather than the hash rate of your army of computers. (emphasis on my part)

 
Now that we understood PoB, why doesn't it work?

@greer184 goes on to highlight the problems with PoB: one reason being the centralized token distribution. PoB works best when tokens are distributed and held by as many users as possible (which is not exactly the case at the moment for Hive). Centralization on the other hand means that only few people get to decide which posts make it to trending (regardless of their content). This problem is exacerbated by profit taking:

The major issue is not the content itself, but the misalignment between the goals of the curators and the goal of the platform and the proof-of-brain system. In the current system, it is not compelling content that is rewarded, but profitable content. While at times compelling content can be profitable, this is not always the case. (emphasis on my part)

grafik.png

So what's a possible solution?

There have been quite a few suggestions made by the community and I won't address them here (e.g., see the post above for examples). Obviously none of the right ones were implemented or nothing really solved this problem as we are still faced with it now.

What I am suggesting is a "like" button for Hive.

Yes - it's that simple. Adding a "like" button (or whatever you want to call it) on top of the upvote mechanism would be a way to make posts more visible. Why does visibility matter? As valuable content (which might also include "low quality posts" such as selfies, memes or AMAs etc.) is often not seen by the community due to the failure of PoB or users simply not wanting to reward such content it is a simple way to give (all) users a chance of getting noticed. This of course would result in other users seeing these posts who could therefore decide to "upvote" such content, thereby making such posts also profitable.

However, I would argue that it is not even always about profitability... social media has shown that what people often want is just attention... That in itself can already by satisfying for some users. Attention, however, is something that is much more easily gained through "likes" and not necessarily by "upvotes". If Hive wants to truely become competitive in the social media landscape (and not just remain a niche) the current system has to change.

For the implementation of this idea I think it is crucial to keep the current reward system which is distributed with "upvotes", but also have a "like" mechanism which resembles the one found on other social media sites. We know that the former system is flawed, but obviously Hive wouldn't be Hive without a global reward pool (a fundamental which I think shouldn't be discarded too quickly). So introducing a "like" mechanism would build on this system rather than completely change it.

The "like" button could work as follow:

  • Simply "Like" posts that you like. This works just like with other social media platforms: the more "likes" the higher the post is on trending (the curve is linear)
  • Everybody has just 1 Like per post/comment (stake/vests don't have an influence!)
  • "Likes" don't distribute the rewards pool. They are simply a way for users to show their preferences for content.
  • The current "upvotes" on Hive continue to distribute rewards (no changes here, although there could be some as well)
  • "Likes" don't consume resource credits thus allowing users with low/no HP to contribute
  • "Likes" have an impact on trending: Posts would become visible (appear on trending) when they have many "likes" and many "upvotes" or many "likes" but no or a low amount of "upvotes" or few likes but many "upvotes"
    The exact way how this could be implemented (the mechanism) would have to be discussed. But I think it should be relatively simple.

What would change?

  • Trending would be much more organic: The top of trending would actually represent what the community (and individual communities) would like.
  • This would also allow for "low quality posts" to be on trending (but the community decides on how much they should be rewarded!). The main argument currently is that "low quality posts" like memes are not valuable resp. should not be rewarded due to "low effort". But we all know that social media is all about "low quality posts", so this a way to get these kinds of posts on the trending page and the community still gets to decide how much they should be rewarded.
  • Content consumers (with low HP) could finally decide what's on trending thus solving the problem of needing a big stake to make your voice being heard!

Bottom.jpg

So what do you think?

Could this solve some of the problems of Hive?

I would be really interested in getting feedback on this since I think it could really change Hive for the better. So I'm just going to tag a couple of users who I think should see this. Don't be afraid to spread the idea if you "like" it 😉

@peakd @asgarth @blocktrades @gtg @good-karma @themarkymark @anyx @someguy123 @yabapmatt @acidyo @netuoso @lukestokes.mhth @theycallmedan @therealwolf @dapplr @ecency

Bottom.jpg

⛅🌦🌧🌦🌧🌨☁🌩🌦⛅🌧☁🌤🌥🌪🌧🌨🌩⛅🌦☁🌤🌥🌤⛅🌤⛅🌦⛅

lovetheclouds_community_banner.jpg

Check out the Love The Clouds Community if you share the love for clouds!

⛅🌦🌧🌦🌧🌨☁🌩🌦⛅🌧☁🌤🌥🌪🌧🌨🌩⛅🌦☁🌤🌥🌤⛅🌤⛅🌦⛅

Bottom.jpg

Sort:  

You are free to design frontend that will organize content any way you want, but above doesn't make sense and will not work on Hive.
Just two simple no go reasons:
If something interacts with blockchain it has to consume Resource Credits, otherwise we are doomed.
One user = one vote won't give you better results. Quite the opposite (see: Sybil attack).

the likes not consuming RC's is just an idea I put out (I am not a developer). We could easily say that they do.

One user = one vote won't give you better results. Quite the opposite (see: Sybil attack).

Again, this is a basic problem that exists on social media. I could also create 1000 accounts on tik tok or whatever and like my posts. The crucial idea is to think of "upvotes" and "likes" together. They both have a function (i.e., "upvotes" distribute value given on stake and "likes" could mitigate the other problems that clearly exist with an only "upvote" system).

I really think we should give this at least more thought :)

Such "likes" already exist, it's just matter of sorting trending by amount of upvotes not the weight of upvotes, but that's just a bad idea.
Yes, you can create 1000 accounts on Tik Tok, but Tik Tok can remove those accounts if they will find that you are abusing system for your gain. On Hive created accounts are forever.
Everything that can be abused will be abused.
Those likes would give you visibility and visibility has value.
Even if you check how currently trending page looks like with "one user = one vote" rule, it's not how it will look like when you apply such algorithm because people will adapt. And trust me, those won't be people with most awesome content around.

Such "likes" already exist, it's just matter of sorting trending by amount of upvotes not the weight of upvotes, but that's just a bad idea.

That's only partly true; from the responses I have been getting so far I think most still don't understand that this is not an either/or but a both/and system: "upvotes" and "likes" would both add to trending. It is a matter of implementation how these two systems would work together (i.e., how much "weight" they have and this could be worked out by adapting to user behavior).

The other objection I have is that this is more speculation on your part: We simply don't know how users would respond. Similarly to how we weren't sure how the EIP would be adopted we had to test it in order to see the results. I think it's not very productive if we dismiss some ideas on Hive too quickly without seeing them in action first (is there a public testnet for something like this?).

It should also be relatively simple to add abusers/spammers to blacklists as is already being done so that their "likes" would't count. As @markkujantunen already pointed out there could also be "dislikes".

No :-) It's not partly true. It's just true. :-)
Vote from user means vote from user. There can't be two votes from single users so simple count of votes exists.
Hive gives you everything you need to build your own trending according to your own algorithm.
No. It's not speculation on my part it's knowledge about how such systems works.
There's no need to see something in action to know how what will happen. Knowledge, experience, that kind of stuff. There's not even a requirement for testnet because that's just a matter of front end (Well, a little bit complicated to compute stuff, but definitely 2nd layer thing on backend to compute such trending page and display it as trending in condenser). That also means that it doesn't have to be anything platform wide. And because of that, if you don't think it's a waste of time and resources, you can invest your own to try it out running your own frontend that implemented you own algorithm.

PS
Different weights for votes (with different or no relation to HP but with relation to other account metrics like rep 2.0) could of work but has nothing to do with your one user = one vote idea.

There can't be two votes from single users

I think this is exactly my point: couldn't there be some? I guess this is more of a frontend issue (but it could therefore also be easy to implement?)

That also means that it doesn't have to be anything platform wide. And because of that, if you don't think it's a waste of time and resources, you can invest your own to try it out running your own frontend that implemented you own algorithm.

I wish I could...Unfortunately I am not a developer, so I am just trying to get my idea out there :) This kind of discussion is exactly what I had hoped for. But I think I haven't quite explained my idea too well (or at least I think it is still misunderstood or I don't understand the fundamentals enough to see that this can't work 😅)

Different weights for votes (with different or no relation to HP but with relation to other account metrics like rep 2.0) could of work but has nothing to do with your one user = one vote idea.

We need something like this on Hive as PoB clearly doesn't work as intended currently. As long as we don't solve this, I don't see Hive thriving (at least as a social media site).

... PoB clearly doesn't work as intended ...

That was my idea.

Then there would be no pressure to be fast or check who else upvoted a post.

The conversation from @gtg has a lot of the reasons for how likes are complicated.
I believe what you are searching for is as he describes a "front end solution" and would likely not be decentralized among the many front ends.

As stated simply counting any vote as a like would result in manipulation of the data by someone using hundreds of useless accounts.
Also on top of it any feed of posts requires an API to give that sorting order based on the proposed "like algorithm".

Someone for example could create an algorithm and either convince all nodes to provide that algorithm OR run their own steady functioning API to produce the results of that algorithm whenever any user requests to see a feed based on that algorithm.
But then we go back to needing a system that can track LIKES in a way that isn't so easily broken it doesn't brake the whole system.

This basically rules out use of VOTES alone because votes are designed to fully allow automation. A front end perhaps could check when the action is done manually and not automated... that's my assumption maybe developers can verify that assumption (cc @asgarth) Or the front end could have a separate button clicking system with a symbol like a thumbs up. But then the front end would have all that data and would have to do it's own work checking for manipulation and probably keep how and why manipulation is working against a person under-wraps in order so that the manipulater doesn't know how to bypass their manipulation attempts.
A system to count likes from a front end is probably pretty straight forward the system to do self-checks and look for manipulation is the most complex part of it and in the end a system like this is basically not fool proof and accepts some manipulation as part of the package... which isn't the end of the world because when people aren't earning money and maybe only sorting preference (for just those who choose to sort content by this algorithm) then the abuse of this is likely not very high to begin with and probably for quite some time until placement of posts becomes worth the effort to beat the self-checking of the system.

Adding a like button to peakd is the easy part. Probably even tracking which votes are manually given on peakd itself. However presenting a feed for a topic page or the ALL TOPICS page is where it starts to get more complicated.


THE BEST SCENARIO

On another note this whole concept probably works easier in a community setting.
Counting the VOTES of each added MEMBER of a community... that way the community moderators are doing the job at qualifying who's votes should actually impact the algorithm.

thanks for clarifying that, really apprciate it! My knowledge of Hive on a deeper level is somewhat limited, this is why my idea seems to be lacking (especially when it comes to abuse). This really seems to be a tough nut to crack 😅 I hope we figure out a way eventually as we still need to make some leaps forward for broader adoption.

As stated simply counting any vote as a like would result in manipulation of the data by someone using hundreds of useless accounts.

How is this different than one account being followed by hundreds of "inactive" brain-dead (removing the B in PoB) accounts on hive.vote? They have a ton of artificial weight behind their votes skewing the numbers.

One person saw your post and 200 people didn't see it, but voted. How is that a useful metric?

it's certainly different... but i'm also not saying the algorithms known as Hot and Trending are amazing at displaying the best content. I'd love to see better algorithms available.

The good part about this proposal is that it can be implemented in a front-end, as @gtg said, without overhauling the blockchain code. But it's proposal #1001 to improve the front page indirectly by tweaking what determines the Trending page. I'd rather improve the front page directly by offering a choice of topics or showing random curation channels.

Personally, I don't want a like button because the UI is already cluttered. I don't want to explain to new users that their like doesn't count as an upvote.

Anyway, on a deeper level, Proof of Brain doesn't work because it's nonsense. For years, I didn't realize @dan actually believed in it. It's not proof like proof of work because it doesn't secure the blockchain. And it's not proof of brain, but proof of wallet. Let's forget this silly idea and stick to how Hive actually works. The only way to implement PoB seriously would be if you checked users' government-issued ID like Voice does - which would be a horrible plan for many reasons.

I get your points, thanks for sharing! It was basically just an idea to get others thinking about how we could improve things. Likes might not be the ultimate answer, but when I think about it I think it could work. But I might be wrong :)

Let's forget this silly idea and stick to how Hive actually works.

So you wouldn't want to change the current system?

I just doubt that the success of Hive will depend on choosing the perfect parameters. That's an aspect we've already given a lot of attention during the Steem days. For developers and other technical people, it's easy to overestimate the importance of 'fiddling with the knobs', and to underestimate unintended consequences.

Certain technical improvements are essential for Hive adoption: an easier onboarding process and a better reputation system. For improving reputation, @steem-ua was a good approach, but development was stopped for personal reasons, as far as I can tell.

Otherwise, it's a social network protocol, and now that it's owned by the users, we need to do more to recruit new users. Promotion on Twitter is going great, and @justineh did an excellent job reaching out to exchanges. But we need to get out more in the real world, as far as possible during a pandemic, and we also need to fund a fulltime PR person who can recruit high-profile accounts and help get more professional content on Hive.

yes, indeed this is so important as well. There are still a lot of "to-dos". But I think the community has shown that it is resourceful so far :)

"Likes" have an impact on trending: Posts would become visible (appear on trending) when they have many "likes" and many "upvotes" or many "likes" but no or a low amount of "upvotes" or few likes but many "upvotes"

I'm somewhat sympathetic to this idea. But I have to wonder how long it would take for someone to throw together a marketplace for likes. That's why I think there should be an dislike button as well. Another issue is that since Hive has no KYC, anyone can create as many alt accounts for voting as they like. In fact, for large stakeholders creating alts is very easy because account creation tickets are something that possession of resource credits confer.

On Hive, you vote with capital (stake) because that's the only honest way to vote when there is no KYC ensuring one man = one vote.

Even on Web 2.0 platforms upvote farming is a thing, which is why voting with money is the purest and most authentic system imaginable without going into centralized solutions.

Thanks for the feedback! A dislike button could be introduced as well of course... It's the idea I want to get out.

You are right on the abuse part, but this problem is unavoidable and exists for all sites out there. I also don't think this would be too much of a problem as we could balance it with the "upvote" votes (i.e., make "upvotes" have a stronger impact for trending). The idea is to combine both systems to get the best of both worlds

but this problem is unavoidable and exists for all sites out there.

Voice has gone a long way to try and mitigate it.

Thanks for mentioning Ecency. Kindly join our Discord or Telegram channels to learn more about Ecency, don't miss our amazing updates.
Follow @ecency as well!

Does @ecency, the site, use permlinks the same way hive-blog and peakd does?

The fundamental idea behind your thought-process is good. I'm working on smth, which is more complex than a "simple" like, but I'm sure you'll "like" it.

I'm looking forward to it :))

@tobetada
I do really like your idea!
That’s already a great idea you have so we can improve somehow even low quality content.
As you said social media is also for selfies and so on.

Myself I’m considering into looking for investment at the moment from few people and start growing the Bulgarian community/ (network I prefer to call it) by doing so to upvote all kind of content to the new people I’m getting here on the platform.
Because once they see it the potential will grow faster.

As I’ve showed in [This post]
And explain it you have a network of 100 users that have only 100 HP they can generate in their network 2.65HBD a day or simple said if I bring my 100 friends from Instagram help them to achieve 100HP one the next they when they give me a like(upvote) they all will create 0.26 HBD back to me.

I’m and I’ve been doing my best to get people but it’s quite hard if I had some financial support I think I can do better.
In this thought I think I need at least 50,000 hive power so I can make some people stay and post on a regular basis.
All we need is users and to hold them on here.
Mass adaptation can come very Easy I’ll make another post soon to present it.

Namaste 🙏

I use an autovoter. Fully admit that my account is NOT proof of brain. And it is almost always too low to dole out updoots to content I want to updoot because that would ruin muh curation ROI! I would love a way to signal a like on something (especially when I can't think of a comment to write)

I would also like a front-end that took into account your downdoots and worked to show you less of that content in your personal feed. Trending be trending, but if an artist I follow makes a ton of cool posts but also spams splinterlands content I would love a way to NOT SEE that splinterlands content while keeping that person followed. If the frontend was like "hey, this guy downdoots the "splinterland" tag a lot we shouldn't show him that on his feed" it would be wicked.

PoB works best when tokens are distributed and held by as many users as possible (which is not exactly the case at the moment for Hive).

A big reason for this is most people power down and sell.

"Likes" don't consume resource credits thus allowing users with low/no HP to contribute

So I can make 1000 free accounts and get anything I want on trending? Well at least until someone makes 1001 free accounts. There is a reason why RC's exist as most abuse fighting tactics are easily avoided by making a new account.

The other issue, is people with no stake would have equal share to decide what goes on trending. That doesn't seem fair to those who paid thousands and hundreds of thousands to have a large amount of stake, or those who don't sell Hive as fast as they make it.

So I can make 1000 free accounts and get anything I want on trending? Well at least until someone makes 1001 free accounts. There is a reason why RC's exist as most abuse fighting tactics are easily avoided by making a new account.

This is a problem that has always existed on the internet. Not having it consume RC's is just an idea and we could also make so that it consumes some. The details so to speak are up to debate.

The other issue, is people with no stake would have equal share to decide what goes on trending. That doesn't seem fair to those who paid thousands and hundreds of thousands to have a large amount of stake, or those who don't sell Hive as fast as they make it

This is where the idea of having both systems overlapping would come in: "upvoting" and therefore stake still matters and we could experiment by starting with a distribution of 75% "upvoting" strength and 25% "like" strength (again, the details are up for debate). But as I pointed out PoB doesn't work currently. Likes could in a sense mitigate this problem

Check out https://www.steemfiles.com/hive-102930/@tobetada/introducing-a-like-button-to-hive .

There is KYC everyone or use money to prevent sybil attacks.

There are certain changes a front-end maker can do, and certain changes that a front-end maker cannot do. We cannot change the way the blockchain rewards content. The trending page is something that is on the blockchain consensus so this is the same everywhere but a front-end could have a parallel kind of system that uses only what its users does and not the blockchain (for likes). This way your like on one site wouldn't be available through the full-nodes to another but they could conceivably be made available through a public API or perhaps even another blockchain.