Ask HN: Who is working on fully decentralized social networking?

73 points by jMyles ↗ HN
I imagine that the news about Parler having its plugs pulled both from app stores and AWS hosting has many of us thinking: what will it take to build a solution where that's simply not possible?

I know of Matrix, Mastodon, and PixelFed (and use the first two), but is there a 'facebook killer' in development right now?

My concern is that, while seizing control of social networking from big corporations is surely a great idea, it may be initially inundated (and thus, socially formulated) by the same whackjob culture that flocked to Parler from Twitter.

How can we ensure that balanced and healthy communities form on the decentralized web?

89 comments

[ 4.9 ms ] story [ 50.8 ms ] thread
Use XMPP the same way that cops and soldiers do.
Can you say more? This seems neat
They probably use OTR.
XMPP is an open protocol for chat, just like email.

Sheeple seem to be completely allergic to open chat so they run from one proprietary service to another like

* AIM

* ICQ

* Paltalk

* Skype

* Lynq

* MSN Messenger

* Google Talk (and I think a few others from Google)

* Skype for Business

* Facebook Messenger

* Go2Meeting

* Zoom

* What's App

* Signal

* Apple Messenger

* Discord

* Slack

This is the road to ruin however because these platforms go through a cycle like:

* Platforms reach a certain level of quality and then start to decay (remember when Skype worked as well as Zoom does now?)

* Because of the "two-sided network" effect people tend to stick with the chat services that other people use so that chat services have no reason to fight that decay;

* Every so often somebody finds an opportunity and gets a new product in, often with a new idea or two and the rough edges sanded away (remember how Skype used to "just work"; Zoom "just works" now but once it is a market leader you're going to put up with it no matter how bad it is.)

* Big companies like AOL, Microsoft, Facebook, Google, etc. periodically come out with chat programs that "innovate" by connecting to their networks, but for the most part you could squint and AOL Messenger looks the same as Facebook messenger.

* Some big companies in a further fit of mindlessness produce or buy an endless series of incompatible chat applications.

So long as you go down the road that somebody is going to administer this big server, the company is someday going to get bought and go bad.

----

Most people seem to think that using an open network is like putting your hand in a toilet. (Think of the "freedom" to wreck your hands with a mouse from the Apple 1984 ad)

The simple fact is that you could get a better client for a server IF there is a competition for clients. Twitter, Discord, et al.will just shut you down if you make a better client.

In the "police/military" sector communication with chat is widespread (e.g. most cops have a computer with an XMPP client in their car) They might tap out a message and it goes into Lotus Notes, be handled with a workflow, looked at by intelligence folks, etc. XMPP has all kinds of extensions such as: fill out something like an HTML form and send it somebody that serve those people well. (e.g. fill out a form about what happened on patrol today)

Contrast the continuous decline of proprietary chat w/ interoperable phone calls, SMS, you just take it for granted you can call a Verizon phone from AT&T and it is because the government got involved.

Europeans concerned about falling behind would be well advised to mandate interoperability for chat clients and servers -- the one problem is their privacy minimalism works in the favor of centralized companies like Facebook (which legislators might think they can control) opposed to a distributed network where somebody can record what goes by and have no respect for "the right to be forgotten."

I've heard of [friendica](https://friendi.ca/) as a decentralized facebook alternative. I assume you need friends who are actually using it, which is why I don't myself.
Your friends don't need to use friendica. It can also share with Diaspora, Mastodon, Hubzilla and others.
I was working on that idea a long time ago. Got away from it, but I still have an OSS project I work on here and there which is a "FB like" social network product, and another which is a "Reddit like". Neither currently has a lot of specific support for decentralization / federation, other than use of RSS and ActivityStrea.ms at the moment. But I would like to pick up some activity in this area again at some point and work on integrating with the "Fediverse" and maybe look at TBL's SOLID and see if there's anything there to incorporate.

Time is the biggest challenge, unfortunately.

> the same whackjob culture that flocked to Parler from Twitter

As long as people are primed to viscerally pre-hate any competitor, it won't work.

I sort-of am. I'm playing-around/working-on a decentralized messaging network using WordPress sites as the nodes. The advantage here is that WordPress sites are easy and standardized to host.
The problem with decentralized social networking is that there would also be no control; you NEED people with elevated access that can remove content, else it'll end up as a platform for hate speech and child pornography (I know, 'think of the children' is a tired argument, but if you cannot moderate, it will end up as a cesspool).
Any different from the internet itself?
Try to run a child pornography site on the internet and let us know how hard it was for you to be moderated out of existence (and into a small box with bars on the doors.)
That is also an issue. It probably can't be anonymous. If someone else hosts your content, they decide what you're allowed to post. If you host your own content, the authorities need to be able to find you.
That was my point, really. No one says there can’t be some level of moderation or hierarchy built in.

Decentralized != immutable != non-heirarchical.

And like sibling, it need not be entirely anonymous either.

The feds would allow it if they had some level of legal access to manipulate it, which would in turn be what most people who want decentralized social networking seem to want: to at least have a somewhat democratically elected body governing it, not an arbitrary private company.

Is it possible to achieve this level of control over the internet? Seems like hubris to me.

And if it were, is it even desirable?

It seems to me that we're headed for a land where data and ideas, once promulgated, become immutable, but that voluntary moderation regimes laid over those data can be utilized to keep the humans sane.

I wonder if you could use prediction markets (is this bad? yes or no) and incentivize people to moderate using some sort of cryptocurrency mechanism.
For hate speech there is already facebook!

You could have control at each node, deciding with whom you federate. You can also have a crowded moderation, similar to HN.

I think these elevated users should be law enforcement in the respective jurisdictions.

In the US, hate speech is protected speech. In the UK, hate speech is defined differently than in China. Illegal pornography may include bestiality or drawings in some jurisdictions, not in others. Protection of copyright is enforced differently. There's also the distinction between reading, publishing and hosting potentially illegal material.

This is how the internet works already. It is federated. Established protocols exist for websites and email, but not for social media. Arguably, it's time to change that.

putting "think of the children" aside for a moment, I would be very concerned about the legal implications of participating in such a network. depending on the implementation, I would assume you could be exposed to similar risks as in hosting a tor exit node.
> The problem with decentralized social networking is that there would also be no control

Decentralized social networking expects the user to control the user's own social input.

> else it'll end up as a platform for hate speech

A decentralized social networking user is not necessarily an anonymous social networking user. Such a user will still have contacts on computers and phones they own, still leave a connection trail on ISPs, and can still be held accountable. It's more difficult and less convenient for law enforcement--but privacy vs. law enforcement aceess and society's needs/interests thereof is a separate argument/topic.

You could argue e-mail is to some degree decentralized, anybody can run their own server and send and receive email. I'm sure people right now are using it for hate speech and illegal porn. If someone sends you via email dubious content, you are still allowed to block it and report it. If we follow your logic we would have 20 different companies with their email variations just like we have today with chat messages. In the case of social networks, a feature could be aggregation and sharing of ban lists (i.e. I have my ban list, other people that trust me can use mine and merge with theirs, servers can host 'centralized' ban lists that people are free to add or ignore, kinda like dns based ad-blocking).
The internet itself is a decentralized network where anyone can just throw up their own server. How did we handle the policing of illegal content for the past 30 years? Simple, we just let the feds deal with it.
I'm not convinced we need a decentralized model. You provide very specific points as to why and I agree with each.

We need a provider that is willing to host content that abides by the laws of the host country. The provider needs to take a stance such that they are willing to host unsavory content assuming it is legal. The 1st Amendment IS important and we need businesses that are willing to say as such.

> We need a provider that is willing to host content that abides by the laws of the host country.

If the host country is China, and it blocks content critical of the government? What if the host country is Nigeria, and posting gay content gets you shipped to the gulag?

I suspect your opinion is going to change in these cases. And if it doesn't, sorry, but I trust myself to figure out what content I want to read more than any nanny state.

I always thought the 1st Amendment was about prohibiting "The Government" from curbing speech. I think a lot of us have gotten used to being able to say anything--things unbridled in scope and unlimited in quantity on (private company) Social Media, but such expectations are not guaranteed by Our Goverment's Constitution.
The 1st Amendment does not guarantee the right to say anything we want, anywhere we want. POTUS still has the absolute right to walk around the sidewalks of DC and spout whatever non-sense he so chooses.

If I go to Walmart and choose to shop in my underwear, they have the authority to make me leave and escalate to authorities if I deny their order. To me, our current laws put us in the same position with speech on Twitter. Our current laws allow private business to make up whatever rules, restrict whatever they want. It's their platform their rules.

I'm suggesting we need a company who makes it their business to allow content and protect their users using the actual law. US law shields content companies from liability because of what their users publish and upload. If someone uploads CP to Reddit then it's not Reddit that's punished (assuming they made good-faith attempts to remove the illegal material).

AFAIK, the users on Parler did not write anything illegal. Maybe they did - idk for sure. The messages on Parler were purely grotesquesand someone didn't like it.

Social media has given humans the once-unthinkable capacity to influence behavior and discourse across the world in real time. Our laws in the US have not yet caught up with this still relatively newfound tool.

Is the intention to disallow certain content or to protect users from certain content? Because if it's the latter I think just having user friendly blocklists would be sufficient. If it's the former then obviously decentralization is totally antithetical to exercising control from a single point of control.
Email is a decentralized system with no moderation, and it isn't particularly a platform for child pornography or hate speech. (At least, my email box isn't.)

Imagine a social network where you have an identity based on a key pair. The key pair can rotate every month or so. When you meet someone, and you want to "friend" them on your social network, you scan a copy of their public key straight off their phone via a QR code. Now you can author encrypted and signed messages - you know they're only visible to the people you're interested in talking to, because you have their public keys, and they know the messages came from you, because they're signed with your public key.

If your friend Alice introduces you to their from Bob, they might forward you a copy of this Bob's public key, in classic web-of-trust fashion. Alice signs Bob's key, and sends it to you. So long as you trust Alice to not indiscriminately sign keys, you can be pretty sure you're really talking to Bob. You'd easily be able the check the provenance of a key - I have this key that was signed by Alice who claims she got it directly from Bob's phone, and it also signed by Sue, who claims she got it from an email.

When I post a message on my "wall", really I'm posting something encrypted with the public keys of everyone I want to share it with. My phone can reach out directly to those phones to pass on the message. If it can't reach all of them, that's ok, because Alice's phone can forward a copy to Bob's phone on my behalf, or we could have some kind of "dead drop" server online where my phone uploads stuff, and your phone checks for it.

How does this not devolve into your typical Internet cesspool? Precisely because it's not on Facebook.

First, if Bob starts posting crazy ideas about how women should never have gotten the right to vote, I can delete Bob's public key from my phone, and I'll never see anything he ever says, ever again.

Second, and maybe more importantly, this social network we've just imagined has no motivation to "drive engagement". It doesn't promote controversial stories to try to get people to click on more ads. In fact, it can't. There's no "service provider" here to profit from it in the first place, and even if there was, it couldn't read the contents of any of these encrypted communications so it wouldn't know which ones are the controversial ones it should try to drive. Twitter and Facebook need moderation mostly because they spend so much time promoting content from fringe crazy people in the first place.

(comment deleted)
I'm in the middle of tweaking Gurlic to use Matrix(Dendrite) as a backend. It's a ton of work unfortunately, with the limited time I have. It's codenamed Hummingbard and I hope to release something in a few weeks. It'll take a while for it to reach feature-parity with Gurlic though...

https://gurlic.com

I was hoping to build something.

Every publisher/user runs their own node, or from a node-service provider. And then you "friend" and follow built around RSS with signed or crypted items in the feed. Other nodes operate as aggregators and discovery services.

Signing posts, comments and likes is essential for federation. That way fake messages can be prevented. And it allows users to do their own calculation of what to show in a feed. E.g. only likes by whitelisted people could be considered.

It's technically not possible to avoid leaking private messages, but metadata like license and level of confidentiality in the posts should at least provide hooks for legal enforcement.

Kind of sounds like blogs and RSS as it already is.
Now you know why Google wanted to kill off Reader.
It is. The "trick" is to make that whole process as simple/easy as an FB/Twitter.
Except blogs as a social space are pretty well moribund. Comments are overrun by spam, and additional social features like pingbacks are practically unknown.
Long-term, it will take ownership of physical hardware/networking for hosting and in the short-term, usage of a distributed DB like IPFS or Sia's SkyDB.
I've used Scuttlebutt (https://scuttlebutt.nz/) and Aether (https://getaether.net/) which are P2P apps, but I never really started using them. Didn't find interesting content or communities to keep me engaged. It's not easy to build a vibrant social network from scratch.
I had the same problem so I made an "HN users" pub yesterday, come say hi:

hnpub.stavros.io:38213:@PJtGRbz9IwtobscVq+i4a8y0zZBc2j220D5jsoyKgaw=.ed25519~OezW1tkZu9dX/x7uhDLL/7m5xUosz68NeoqfDjhnYXQ=

I looked at this yesterday, but if I have to download something just to look at it, that's a huge barrier of entry.

It needs to (also) work over ordinary HTTP/HTML and needs to be indexed by search engines, just like Twitter.

The guys at STEEM.IT or LBRY.IO have figured this out. Also, somehow these sites aren't Neonazi cesspools. Not sure how moderation works over there.

> My concern is that, while seizing control of social networking from big corporations is surely a great idea, it may be initially inundated (and thus, socially formulated) by the same whackjob culture that flocked to Parler from Twitter. > How can we ensure that balanced and healthy communities form on the decentralized web?

Sigh. The problem with all decentralized platforms/solutions is that they're focused on "decentralized", not on "platform".

So high level plan should be: 1. Make platform that actually compete with w/ FB, Twitter, etc. 2. Decentralize it.

Maybe I read too much leftist theory but it is my opinion that:

You can't build a successful platform and then decentralize it.

The means must fit the ends.

Why do you want decentralized infrastructure? Why would users want it? Why should they care about the problems you see with centralized systems? How do you monetize your platform?

Let's put this on it's head and pretend we are GAFAM:

Q: Why is our successful platform centrally governed?

A: So we can more easily extract data from the accumulated userbase.

Remember, our product isn't the service, but the data extracted from the users. And the users aren't our customers either, they are livestock. And our actual customers are the advertisers that pay us.

This means, for a successful new platform: you need a product. You need something that is valueable for the user from the getgo.

After you found something useful, you can think about how to connect the insular instances of your application to make the product even better without compromising the users' control over their content.

Please don't work on fully decentralized social networking. Humans social evolution is thrown way out of whack by social media, which makes it unstable and dangerous. When it does need to be regulated, it should be possible. We are a society of laws.
Please expound on and clarify the term "social evolution".
How do you know it isn't that human society and evolution are thrown out of whack by laws?
I wouldn’t consider myself “technical”, so I don’t know if this is possible, but:

What about designing the entire system around tagging and filtering? Anyone can post anything, but users can choose which tags they want automatically hidden.

Example - any post with the word Trump in it gets automatically tagged with Trump, politics, etc.

This would remove the “filled with whackjobs” problem while simultaneously allowing for free speech.

That assumes your users are tagging things correctly and arent intentionally trying to maliciously bypass the system.

What you're suggesting isn't all that different from usenet, which largely failed due to the spam problem.

No I wasn’t assuming that users would tag messages themselves. Presumably the system itself could just filter things by keywords.
Either the filter will be trivial to bypass, or you have invented strong AI.
How would you suggest to actually do that without just moving problem from moderating content to moderating tags? How would be people motivated to correctly tag their own posts or alternatively prevented from maliciously tagging posts they don't like?
I didn’t mean for users to tag their own posts. The system itself would just tag everything.

Of course you may still get people trying to get around this, but I think you could avoid most outright awful stuff.

I am. I working on creating an "API-first" social network that doesn't specify implementation, only interface. This way everyone/anyone can run their own server that exposes their own content through the API. They can run this on their own domain and using whatever technology and implementation they want. Other users can choose to follow you and receive notifications directly from you. You can also use whatever security, moderation, throttling, and architecture you want.

This may sound like it places a lot of burden on the individual but I plan on having reference implementations from super simple all the way up to clustered nodes ready to run in Docker containers. And hopefully with it all be open source and API-specified only, people can contribute other implementations.

The API is extremely simple. It is REST based and easy to comprehend. Anyone could write a simple server and reader who can program PHP, Node Express, or anything else.

The driving idea is to put individuals in complete control of their data and experience, and maximize interoperability. Much like an HTML img tag only has a src attribute, but the browser know how to retrieve the image from a server (which knows how to serve it) and then display it in the browser. Conceptually pretty simple.

If anyone is interested in knowing more, please ping me. I would like to release an API specification soon for discussion and refinement. Email in bio.

Not to be discouraging, but isn't this the role ActivityPub already fills?
Yes, but I am shooting for something even simpler. Like going from SOAP to REST. I think a simple API will encourage more implementations. My vision is also something a little more narrow, such as: profile -> follow|unfollow, post, post -> comment|like|reply set of uses cases. It's not trying to cover all possibilities of social media interactions.
If you're doing that, it may be good for the API to be an abstraction over the existing protocols rather than creating a new protocol as well. That way you get the simplification and interoperability with the existing fediverse.
This reminds me a little bit of Perl 6
I moved to Diaspora after Google Plus was killed. It's mostly good, if small, but with one really big problem: you can block trolls, but trolls can always create new accounts and come back.

It's probably impossible to create a decentralised social network where don't constantly have to reblock the same trolls but also don't get locked into a tiny closed community. I want to be able to talk and share with the whole world, but I don't want to have to block the same assholes over and over again because they keep making new accounts. And I assure you that trolls can get pretty bad on any open, decentralised system. They certainly do on Diaspora.

Maybe something where your network only expands through trusted nodes in your network: if a friend follows a lot of trolls, maybe keep him as a friend, but don't allow your network to expand that way. But someone else might follow a lot of interesting people, so open up your network a bit more in that direction.

Just make it $1/yr per account. Sure there will be trolls, but they have to pay for the privilege of each sock puppet account
But who does the money go to if it's fully decentralised?
Simply burning it is an option.

(Though I must say, I don't care for this entire line of thinking - it just gives spamming advantages to the wealthy, which is exactly the reason for crafting an alternative to facebook in the first place.)

Could go to a foundation setup to fund development of the underlying tech.
I think it would be better to make all communications require an acceptance. Like accepting a facebook friend, of google hangouts.

Then charge for acceptances, even $0.10 per user would likely be not a big deal for users, but prohibitive for spammers who want to message millions and only a very small fraction will be gullible enough to pay for whatever the spammer is selling.

Something Awful solved this problem twenty years ago by charging a small fee ($5) to register an account. "Banned" users could re-activate their account by paying the fee again. "Permabanned" users would have to jump through more steps like different email addresses and payment methods. This upped the investment required for casual toxic trolling.

But this was for an old school "centralized" forum. Not sure what "paying for an account" would entail for a decentralized network.

4chan also does the same with a $20 (paid in bitcoin) 4chan pass. Without it, people have to go through an awful captcha each time they post.
One way some federated, decentralized communications platforms in development try to solve this problem by ensuring that there's a small charge of some kind to interact -- for example by putting a cryptocurrency into the platform and requiring all interactions to bear some kind of cryptocurrency cost. I'm not sure that this is actually tenable in the long term given that none of them have really been sucessful, I'm not sure if it's going to work out.
A good first start is to own/control a domain (such as whatever.com) and use a web hosting provider that supports its clients. I strongly encourage people to use Nearly Free Speech. They've been great to me over the last 15 years or so.

Beyond that, I think originating your content on your property is key. If someone repeats it on a social network, that's fine. Just don't create it there.

Not sure why you got downvoted, but the idea of individuals owning their own domains is an important pillar of a decentralized social experience. The indieweb is built on the idea.
(comment deleted)
I have a thought about building a generic p2p system over webrtc. As a hoster, I am incapable of moderating content since I don't keep the data (it's all in people's own hard drives, e.g.). The hard part though is that getting people to write webrtc-based apps is unreasonable, instead I'd let you get apps that expose html/js data and serve html/js over RTC.
The things I feel are broken about social media won't be fixed by decentralization. They'll be fixed by better business models. What most concerns me about social media is:

- privacy is not only not respected, but in fact actively and aggressively undermined

- online culture is increasingly polarized and extremist. Misinformation and disinformation are symptoms of this.

The reason for this, as I see it, is that social media platforms make their money off the actual online conversations. So to make money, they need to get more and more people on their platforms, they need to trigger strong emotional responses to "engage" their users, and they need to mine as much personal information from their users so that they can sell that to advertisers and other interested parties.

Contrast that with pre-digital social networks and hubs, like bars and pubs. The business model there is to sell food and drink, with the providing of a social place as an ancillary service, not the main product. To make money as a pub, you provide food and drink people actually want and an atmosphere they enjoy, but you're not attempting to directly monetize your customers' conversations.

I'd like to see a decentralized social network in the sense of online conversation hubs attached to actual businesses. No "global" platform, just thousands of smaller hubs where certain online shops get known for hosting good online conversations which draws an audience who _then buys things_. Social networks need to go back to being a way to attract customers, not actually being a direct source of income.

Whatever you do, please work off Activity Pub, IndieAuth, Webmentions and other protocols that already have traction. This is largely a UX/traction/business problem not a technical problem at this point.
The problem with ActivityPub is that federation is a poor substitute for real decentralization. I suspect anything based on ActivityPub will end with a small number of servers dominating the landscape, who will eventually turn off ActivityPub to try to convert to a walled garden, similar to how Slack killed off IRC/XMPP support.
I don't think this is ever going to work in practice because there is a significant incentives misalignment. The people moving to other platforms are doing so because the tech giants are trying to stamp out free speech. Someone who uses the platform for anything other than political speech has little reason to jump platforms to something that has significantly fewer people and an underdeveloped interface. You're guaranteed to create echo chambers of only the speech you sought to expunge.

More importantly, we should all revisit the world politic of exactly 10 years ago, where the biggest story was the Arab Spring--anti-government protests in the middle east. At the time, social media was heralded as a major factor in spurring the protests, despite tens of thousands eventually dying in the conflict. Governments were condemned for blocking access to the sites and many free-speech advocates attempted to develop work-arounds. Social media enabled the self-determination of the people in the middle east, something we should all care about.

Regardless of how people feel about the capitol riots, the war on free speech from silicon valley should scare the shit out of all of us. They are setting the precedent now for curbing any revolution in the future. The idea that "healthy communities" are the target really depends on who's doing the diagnosis.

> Someone who uses the platform for anything other than political speech has little reason to jump platforms to something that has significantly fewer people and an underdeveloped interface.

In addition to qualms about the idea that there is a significant amount of speech that is truly "other than political speech", I think you're missing a huge (in fact, the biggest) reason for flight from social networks: the mass-scale gaslighting that happens when closed-source algorithms decide to depict the lives of your friends in a way that's designed to produce consumer behavior rather than to give you insight over your community.

To me, the reason to herald the rise of more decentralized social networking is to separate the profit motive from the feed.

All new networks bootstrap off of a niche, by definition. This is a particularly volatile niche, for the reasons you mention, but I've often felt given the wider trajectories it was inevitable that politically suppressed speech would bootstrap the communication analog to bitcoin, must like illicit transactions did the same for that decentralized system.
>Someone who uses the platform for anything other than political speech has little reason to jump platforms to something that has significantly fewer people and an underdeveloped interface.

I just want to keep up with my real life friends without everything having to be snooped and datamined by Zuckerburg, Dorsey, Bezos, et al. The fact that they're now trying to control how people think is just an extra reason.

> The fact that they're now trying to control how people think is just an extra reason.

I thought they were controlling what people could post on the platforms whose terms require consent, not controlling the thinking of those people. Controlling how people think, now that *would* be impressive tech.