How would moderation work here? Like, what prevents me from being literally inundated with people trying to sell me scamcoins, or viagra, or nudes, or whatever the latest thing is.
You say "Self-moderating: a user has enough control over what they receive to reject spam content", but it's unclear what that means. Are you telling me I'm going to have to keep saying "I don't want to hear from ViagraSupplier1493956" every time ViagraSupplier1493957 makes a new account? Won't they just automate creating new accounts so I continuously have to reject them?
Or is this an opt in system? That's not what the word "reject" means to me, but it's the other "simple" alternative that I could imagine this describing. If so, is there literally way for a new user to onboard to this network except to convince people to start "listening" to them via side channels (like asking friends on other social media to follow them)? That's basically how things like substack work... I'm not sure I see it scaling.
I think it was one of the reddit founders who recently made the point that content moderation is fundamentally about increasing signal to noise ratio, and frankly I can't think of a harder problem. When you're trying to pitch a decentralized social network to me, it's literally the first question I have.
Signal to noise in the context of discovery of public content is just hard. If you remove discovery, or limit it to curated content you can get around it. Haven[1] (my project) skips discovery and makes every source for your feed opt-in, but I'd love to see more attempts at curation!
The general philosophy right now in the ActivityPub admin space is to federate widely and weed out the baddies as they show themselves (thus the emphasis on "rejecting" bad actors).
Personally I think this is only going to work for a little while but if ActivityPub catches on, it's going to be as inundated with spam as email is (without any of our modern spam filters). Therefore I personally moderate my ActivityPub server by whitelisting a handpicked list of servers that I personally trust (which I knew about by having browsed discussion groups on this topic).
As for the scaling question, there are two layers to that: per-server and overall-network scaling.
Per-server scaling doesn't matter. All that matters is serving content that the users of that server find worthwhile. Whitelisting works fine for this, but discovery requires checking out different servers or having out-of-band knowledge of other servers. I think this is fine. People can promote servers they find worthwhile in all kinds of ways, same way as for example gamers find gaming clans.
Overall-network scaling is a function of how all admins decide to federate. Right now most admins federate widely so the overall network has scaled very quickly. But really this doesn't matter either because there's actually not necessarily any such thing as an "overall network". If you made a graph of all ActivityPub servers in the world, there might be multiple disconnected graphs and that's fine. If admins in those graphs have decided not to federate with each other, that's the system working as intended.
> That's basically how things like substack work
My understanding (but correct me if I'm wrong) is Substack is a central server where multiple authors can publish their work. Federated content is different in that I can publish my content on my server and anyone who federates it can also get it on their server (and likewise I can get theirs on mine). But if I go off the rails then they can cut me out while still federating other authors they find worthwhile. Each server can make their own moderation decisions. It puts moderation power back into the hands of independent admins instead of tech companies.
Thanks for the thoughtful question. Signal to noise, spam, sybil attacks etc. is probably the hardest problem to solve for this project, so I suppose it only makes sense its not really solved. But I hope that Chatter Net offers the tools which can be used to, if not solve, then at least make progress on the issue.
The short answer is that Chatter Net routes messages to you only from people you follow. If this was just messages authored by people you follow, it wouldn't be a very interesting platform. But in fact, whenever a message lands on your UI, you emit a View (https://www.w3.org/TR/activitystreams-vocabulary/#dfn-view) event on the message you just viewed. And so people who follow you will see that view, and that's how content makes it way around.
The long answer is.. well long. And it's not an answer so much as a conversation. I see this as all relating to trust. And it's not really possible to discuss trust without implicating the debate of anonymity vs. privacy.
In real world communities, you trust some people, and so you are wiling to spend time listening to them. These could be family, friends, actors, politicians etc.
On the internet, the mechanism for trusting someone is actually a bit odd. You believe that when you connect to a known domain, there is some trustworthy entity behind it serving you content of interest to you. And if that domain hosts a social media platform, and that platform trusts a user by allowing the user to create an account, then you sort of extend the trust you have in the platform to that user. But this is all very anonymous and leads to all sorts of issues such as bot farms and domain parking.
When things are framed that way, it almost seems the current efforts around moderation are really trying to treat the symptom, not the cause. Does it make sense to trust an anonymous user on some platform? The place this seems to work best is Wikipedia. But even there the implicit trust in user accounts is sometimes abused (https://www.theatlantic.com/business/archive/2015/08/wikiped...).
I think somewhere along the line the concepts of anonymity and privacy got confused. In the real world, if you walk around hiding your face and otherwise concealing your identity, people don't trust you. The things you want to keep private, you discuss in a private setting (e.g. in the comfort of your home). But when you are in a public forum, your identity is what you use to get others to listen to you and interact with you.
In this sense, Chatter Net is a public forum, while something like Signal or Matrix Chat would be a private forum.
Thanks for the explanation - it's good to hear a little about this. I have a couple of questions.
> But in fact, whenever a message lands on your UI, you emit a View (https://www.w3.org/TR/activitystreams-vocabulary/#dfn-view) event on the message you just viewed. And so people who follow you will see that view, and that's how content makes it way around.
Do you have to push a button to share it in some way? How do you stop all content traversing the entire graph of people if it's shared as soon as it's automatically displayed on your UI?
> In real world communities, you trust some people, and so you are wiling to spend time listening to them. These could be family, friends, actors, politicians etc.
How does this relate to echo chambers? It sounds as though it would be hard to avoid creating one.
To me it's still unclear if having a message traverse the entire graph is good or bad. Something like this is required otherwise this will really just be a chat app, and probably not a very good one at that. What I mean is that if you can see only messages directly addressed or shared with you, well that's just Signal.
The current implementation traverses the graph of follows, which has some nice properties. Even if you had 10x as many bots as users on a platform, they can all post and share and like etc. But if no one from your social graph is following those bots, you won't see any of their content. Of course all it takes is one person in your network to follow a bot, and now you're exposed to all that spam. In that case you might want to unfollow this non-discerning friend. And the threat of being unfollowed will create incentives for people to make meaningful follows in the first place.
Some more granular tools will need to be built to help refine this. For example, you might not want to see things more than 3 steps away in your graph. There is also the concept of flagging messages which is not currently implemented, but will allow one user to stop a message from spreading to their followers.
As for the echo chambers, I'm not sure yet what this will look like. In the physical world there are soft echo chambers. People make like-minded friends and join like-minded organizations. To some extent this is good, when comparing to the alternative where everyone has to listen to anyone which would create a lot of conflict. Taken to the extreme though it does seem to make people intolerant to differing ideas.
The question I am asking myself (and for which I do not have an answer) is: will a platform like Chatter Net encourage people to progressively discover new ideas (the more people you follow, the more variety of content you will receive), or will it give the tools for people to lock out any competing views.
You say "Self-moderating: a user has enough control over what they receive to reject spam content", but it's unclear what that means. Are you telling me I'm going to have to keep saying "I don't want to hear from ViagraSupplier1493956" every time ViagraSupplier1493957 makes a new account? Won't they just automate creating new accounts so I continuously have to reject them?
Or is this an opt in system? That's not what the word "reject" means to me, but it's the other "simple" alternative that I could imagine this describing. If so, is there literally way for a new user to onboard to this network except to convince people to start "listening" to them via side channels (like asking friends on other social media to follow them)? That's basically how things like substack work... I'm not sure I see it scaling.
I think it was one of the reddit founders who recently made the point that content moderation is fundamentally about increasing signal to noise ratio, and frankly I can't think of a harder problem. When you're trying to pitch a decentralized social network to me, it's literally the first question I have.
PS. The readme links to "https://chatternet.github.io/", but that doesn't exist.