Plebbit is a selfhosted, opensource, nonprofit social media protocol, this project was created due to wanting to give control of communication and data back to the people.
Plebbit only hosts text. Images from google and other sites can be linked/embedded in posts. This fixes the issue of hosting any nefarious content.
it has no central server, database, HTTP endpoint or DNS - it is pure peer to peer. Unlike federated instances, which are regular websites that can get deplatformed at any time,
ENS domain are used to name communities.
Plebbit currently offers different UIs. Old reddit and new reddit, 4chan, and have a Blog. Plebbit intend to have an app, internet archive, wiki and twitter and Lemmy. Choice is important. The backend/communities are shared across clients.
The code is fully open source on
What do you need moderation for that for? All a domain name service needs is some kind of reputable link between two things (e.g. domain name and IP), and Plebbit seems to be using it to reserve community names (so name -> public key, or maybe the other way, I haven’t looked into it). The reputation comes from the blockchain, which dramatically increases the barrier for an attacker to change an entry. Instead of a central authority, you have a group of individuals (ETH is based on proof-of-stake now, and I assume ENS is as well) who verify claims before it becomes part of the blockchain.
To me, it’s the least problematic part of it, I’m more concerned about communities having owners, and thus communities can die if the owner decides to stop hosting it or decides to dramatically change the rules (or moderators, etc). One of the major points of decentralization is to remove the power of individuals to change/break things, and Plebbit doesn’t do that. The most problematic part, IMO, is ties to cryptocurrency, which seems to be its profit motive, so the moment it takes off, the creator gets rich (because they hold a ton of PLEB token), and that doesn’t bode well for the long-term viability of the project.
That said, we’ll see how it works out. I think it has some interesting ideas, and I’m all for alternatives to the established players in the social media space.
Have you been living under a rock? Just allow me to register plebbbit.eth and make it simple steal user accounts then redirect to the actual website. This, and plenty of other tricks need to dealt with
You could do the same with DNS, nothing is stopping you from registering a similar domain name and doing the exact same thing. ENS doesn’t change anything with the attack, it merely exchanges registrars for a block chain.
Except dns requires proper registration, and has a place to report abuse, and those reports are actually acted upon. Moderation here is not preventative, it’s reactive.
Stop trying to justify this approach, a blockchain is cool but you’re really just monopolizing domain registration
Oh, I think the approach is problematic, I just don’t think ENS is a major concern here. I don’t think you need DNS/ENS for this kind of service, nor do you need any form of blockchain.
My point is a blockchain DNS system isn’t significantly worse than the current system, where we already see a ton of similar abuse. The proper solution, IMO, is to avoid the need for DNS at all.
Accurate, what would you do instead of dns though?
Nothing?
DNS exists to give an authoritative answer for who owns something. I would have a completely different design where nobody owns communities.
Basically, I’d treat communities as topics that live on a DHT as keys, posts would be keys semantically related to the community (e.g. “communities.<community>.posts.<post>”), and so on. Anyone can post to that topic or to any posts or comments related to that topic by creating subkeys, all of which use UUIDs to guarantee uniqueness. All entries in the hash table are signed by the author’s key, and people can create identical entries (i.e. the same key), which can be distinguished by the signature. The signature is important, because we can’t trust timestamps to distinguish between collisions (e.g. someone mimicking someone else’s post id vs someone editing their own post).
Moderation consists of a web of trust system, where users are given weights based on how much you trust them. When deciding whether to display a post, you’ll check the moderation of that post by people you trust, and show/hide it accordingly. The same goes for votes, you could disregard votes from users you consider spammers/trolls. Building that moderation graph is largely automatic, if you vote or moderate similarly to someone else, you start to trust them more, and their weight in your graph increases.
In other words, nobody owns communities, so there’s no reason to have DNS, and the main reason to have DNS is for moderation, which becomes moot when moderation is itself distributed.
A domain name system is for naming domains, not moderation. And just use a database instead of reinventing the wheel.
That alternative “show if trusted” approach would be nice in an ideal world where everyone already has a perfect filter bubble with only their perfect friends. But unfortunately the world isn’t like that.
You gotta learn to walk before you can run
Right, plebbit seems to use ENS to connect a name to a place. If the name doesn’t point to a place but instead a distributed collection of posts, you don’t need a domain name system.
A DHT is a distributed key value database. I’m modeling everything in terms of structured keys using existing data structures.
Moderation is the hardest nut here to crack, and that’s pretty much the entire point of this experiment: can I build a distributed trust system? I’ve read a few papers on approaches that could work, and this transitive trust system should do okay. The idea is that I trust user A by X%, A trusts B by Y%, so I should trust B by something less than both X% and Y%. To get a decent result, I need enough data to make it work well, but not so much that computation is slow.
I think it’s feasible. If it works, we don’t need centralized moderation, which solves a ton of problems in current social media networks.