Hacker News new | ask | show | jobs
by cwkoss 1107 days ago
Posted this a while back, but maybe someone will want to pick this up and run with it now:

I specced out a decentralized spam-resistant reddit alternative a while ago, and posted it here a few months ago. Please build this, happy to sign away non-exclusive IP rights if you have an idea of how to monetize. ---

I've specced out a decentralized reddit alternative a little bit, but have too many side projects. Someone please take this and build it. Let me know if you try, would love to spectate and advise on development.

The key is there shouldn't be a globally consistent front page. Sorting should be done on an individual basis. Upvotes boost signal signal to peers and downvotes squelch. By propagating content scores transitively through the network proportionally to trust scores, users can moderate their own feeds by voting and managing their friend list.

Users have a peer list, containing a list of server/users on it. Each peer has a user-managed 'trust weighting'. Each user has a list of "good content" (ideally hash identified for content addressability), with each item having a score based on that user's votes and votes from peers, weighted by that users trust in that peer.

Periodically, your server contacts all of your peers, and asks them for their good content list. The scores from peers are multiplied by your own trust weight for that peer, and you build a personal "good content" list that merges the lists from each of your peers together (and drops insufficient scores).

You are presented with a score-descending-sorted page of content. Whenever you upvote something, it increases your score weight for that content as well as the trust weight for each peer who sent you the recommendation, and vice versa for downvotes. Votes are transmitted to peers as a crypto signature of the content hash, but when retransmitted to peer-of-peer, they only see the intermediary's aggregated and trust weighted merged scores.

The specifics of the algorithms on how you calculate and adjust weights can be configurable by each individual user, the protocol only cares that peers are able to produce some kind of score list.

Dividing content into topics is a bit trickier, could just label content with tags. I think it may be preferable for each user to have multiple topic focused 'personalities' that are basically distinct user accounts with unique peer lists and votes. In that way, I could follow Dave-gardening without having to follow Dave-sports.

For this example I'm using 1 user per server for simplicity, though not required. All users could be on same server, which is probably best for MVP to avoid implementing p2p networking stuff until validated.

Ex.

Alice follows Bob with weight of 0.5, Dave with 0.1

Bob scores content A as 0.8, B as 0.2

Dave scored content A as 0.4, B as 0.9

Alice downloads both lists.

Alice score content A as avg(0.8 * 0.5, 0.4 * 0.1) = 0.22

Alice scores content B as avg(0.2 * 0.5, 0.9 * 0.1) = 0.095

Content A gets sorted higher than B.

https://news.ycombinator.com/item?id=21011645 (previous discussion)

5 comments

I said the same about Mastodon v Twitter, but decentralized solves nothing. It just makes it impossible to complain to anyone. We absolutely need centralized and uniform moderation rules and guidelines. And it needs sustainable funding to operate. There are not really any major tech challenges to achieve this. You could build a 140-character microblog in a weekend. The problem is attracting enough users to generate the requisite network effects and building trust amongst those users. Both of which are human problems and very, very hard to do.
This model makes every user moderate their own follow list: if you're transitively pushing spam/hatespeech/garbage to the people who follow you, they will unfollow you or be at risk of pushing the same to their followers. Upvotes are effectively 'vouching' for content, and so you should only upvote judiciously.

Attention is the reward for moderation.

That's beautiful! Inverts the whole process, flips the script. I can see it splitting bi-modal in a bad way though. Friends are one thing, but most following will probably be of aggregators / known figures, and they're going to be either lowest-common-denominator, or highly specialized. Basically gonna look like old reddit, where your options are AskScience or rage comics.
Yeah, my goal for this would be to develop an open protocol (similarish to email) that can solve reddit-like use cases. I think something along these lines could accomplish both lowest common denominator and specialized use cases (perhaps needing users ability to have separate 'personas' with different follow weights).

I think there could be different clients for different kinds of users - do you want to curate your follow list and transitively republish? Or do you mostly want to only consume and only publish your direct upvotes?

But I haven't gamed out the network effects very deeply, could be some pernicious scaling problems I have handwaved away.

So RSS aggregators with friends list. I think it could be interesting but on top of being probably a bitch to tune in a way that makes people happy, still someone needs to host at least the aggregates and the per user info, even if the aggregation was done entirely client-side.
There are some good thoughts in there but it seems like it'd make echo chambers.
You just described twitter.