Plebbit: A serverless, adminless, decentralized Reddit alternative (Whitepaper v0.3.0) #2
Replies: 22 comments 61 replies
-
|
Interesting. So can each node choose to duplicate different "subplebbits," or is each instance N number of "subplebbits?" I could also see this as a way to aggregate RSS feeds, any thoughts on that? |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
Concerned by censorship, I built a proof-of-concept over the past couple of days that covers a little of what you are trying to do: It is a serverless, adminless, decentralized method of saving, editing and publishing content (not a plebbit, but a lame text only blog currently). The idea that vexed me was to make it accessible to non-technical users particularly and addresses issues inherent to requiring users to run services.
My idea works as follows:
This machine relies on IPFS, while I have been following IPFS since its inception and initial design I am not fully familiar with it. But as far as I can tell effective clones where a Problems I haven't considered or resolved:
You can see my crude idea here: https://github.com/festinalente/spawnDotSocial |
Beta Was this translation helpful? Give feedback.
-
|
Good |
Beta Was this translation helpful? Give feedback.
-
|
Cool |
Beta Was this translation helpful? Give feedback.
-
|
I was recently banned from Reddit for saying genocide is bad. Reddit's admins decided not to reverse the ban. Please keep moving forward with this idea. Reddit has become inundated with terrible people that think they're good moderators and administrators. We need a fair and decentralized community. |
Beta Was this translation helpful? Give feedback.
-
|
Let me know if you need any help from IPFS/Filecoin side! |
Beta Was this translation helpful? Give feedback.
-
|
I'm curious what this would look like from a security standpoint. Each user's client would have to essentially make their public IP address identifiable to, at a minimum, the subplebbit moderator (via his node) for the initial post creation. That could create an environment where subplebbits hold onto IP address information, and use that information to attack or dox users later on. Without an anonymity layer built into a protocol, it sounds like a significant privacy+security risk that could be exploited at any point by an attacker via a user's home internet connection. In the case of Reddit, this is obfuscated by a permission layer (ie, only Reddit admins have access to a user's IP address information, not subreddit moderators, etc). |
Beta Was this translation helpful? Give feedback.
-
|
My two cents: I think for something like this to truly thrive, you need to incentivize running nodes, which takes us back to blockchain land. Nobody wants to run their own node. |
Beta Was this translation helpful? Give feedback.
-
|
Rust. |
Beta Was this translation helpful? Give feedback.
-
|
@estebanabaroa have you checked out Holochain? |
Beta Was this translation helpful? Give feedback.
-
|
Could it be possible to have a wallet that holds your key for signing instead of a captcha? Also, it seems like you could utilize a blockchain in that way to share a node with users that don’t want to spin one up? Could also implement a token for tipping, rewards, etc similar to Reddit awards? |
Beta Was this translation helpful? Give feedback.
-
|
Note: I haven't read the whitepaper yet, but this is important. Many decentralized open source projects that I've seen have two issues:
Taking these two points into account since the very beginning can be quite helpful. |
Beta Was this translation helpful? Give feedback.
-
|
Floodnet? |
Beta Was this translation helpful? Give feedback.
-
|
I ran across this because this is super timely for now with what is happening. The solution is that each of enduser client is running the blockchain while in use. The user pays for their access in helping out the network. As long as this is aboveboard and legit and not used for profit taking, it would be pretty ethical. Anyway did this ever go anywhere? |
Beta Was this translation helpful? Give feedback.
-
|
Can someone explain to me how this is supposed to be "adminless"? Looks to me like the "subplebbit owner" has pretty much all the same powers as an admin (apart from useful ones like being able to style the UI, delegate power to moderators in more complicated ways than those provided by your protocol, block IP addresses and perhaps ranges used for abuse, etc). |
Beta Was this translation helpful? Give feedback.
-
|
I quite like the look of the upcoming new version of Freenet (codenamed "locutus") for making decentralised apps. |
Beta Was this translation helpful? Give feedback.
-
|
Questions:
|
Beta Was this translation helpful? Give feedback.
-
|
Can someone explain in clear terms what problem this is trying to solve? |
Beta Was this translation helpful? Give feedback.
-
|
It would be cool to have something like Aether with it's decentralised moderation. |
Beta Was this translation helpful? Give feedback.
-
|
Redditt is bootlicker central. Having an alternative that doesn't have gagging tools would be nice but its specifically became so huge because of those tools. I have watched communities move there to "avoid trolls" which is really just their way of controlling the narrative. I think the issue would be how to attract users and already established communities once it is built. And I'm talking about communities that are purported to be open and independent like Monero that moved from bitcointalk and now hide behind all reddit moderation tools. |
Beta Was this translation helpful? Give feedback.
-
|
how is this better than zeronet? ipfs is just a slow version of bittorrent, zeronet is based on bittorrent |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Plebbit: A serverless, adminless, decentralized Reddit alternative (Whitepaper v0.3.0)
Abstract
A decentralized social media has 2 problems: How to store the entire world's data on a blockchain, and how to prevent spam while being feeless. We propose solving the data problem by not using a blockchain, but rather "public key based addressing" and a peer-to-peer pubsub network. A blockchain or even a DAG is unnecessary because unlike cryptocurrencies that must know the order of each transaction to prevent double spends, social media does not care about the order of posts, nor about the availability of old posts. We propose solving the spam problem by having each subplebbit owner run a "captcha service" node over peer-to-peer pubsub. Peers who fail too many captchas are blocked from pubsub.
Public key based addressing
In Bittorrent, you have "content based addressing". The hash of a file becomes its address. With "public key based addressing", the hash of a public key becomes the address of the subplebbit. Network peers perform a DHT query of this address to retrieve the content of the subplebbit. Each time the content gets updated, the nonce of the content increases. The network only keeps the latest nonce.
Peer-to-peer pubsub
Pubsub is an architecture where you subscribe to a "topic", like "cats", then whenever someone publishes a message of topic "cats", you receive it. A peer-to-peer pubsub network means that anyone can publish, and anyone can subscribe. To publish a post to a subplebbit, a user would publish a message with a "topic" equal to the subplebbit public key (its public key based addressing).
Captcha service over peer-to-peer pubsub
An open peer-to-peer pubsub network is susceptible to spam attacks that would DDOS it, as well as makes it impossible for moderators to manually moderate an infinite amount of bot spam. We solve this problem by requiring publishers to first request a captcha challenge from the subplebbit owner's peer. If a peer or IP address relays too many captcha challenge requests without providing enough correct captcha challenge answers, it gets blocked from the pubsub. This requires the subplebbit owner's peer to broadcast the result of all captcha challenge answers, and for each peer to keep this information for some time.
Note: The captcha implementation is completely up to the subplebbit owner. He can decide to prompt all users, first time users only, or no users at all. He can use 3rd party services like Google captchas.
Lifecycle of creating a subplebbit
Note: It is possible to delegate running a client to a centralized service, without providing the private key, which makes user experience easier, without sacrificing censorship resistance.
Lifecycle of reading the latest posts on a subplebbit

Lifecycle of publishing a post on a subplebbit


Note: Browser users cannot join peer-to-peer networks directly, but they can use an HTTP provider or gateway that relays data for them. This service can exist for free without users having to do or pay anything.
What is a "post"
Post content is not retrieved directly by querying a subplebbit's public key. What is retrieved is list of "content based addressing" fields. Example: latest post: "bGF0ZXN0...", metadata: "bWV0YWRhdGE...". The client will then perform a DHT (or Bittorrent-like trackers) query to retrieve the content. At least one peer should have the data: the subplebbit's owner client node. If a subplebbit is popular, many other peers will have it and the load will be distributed, like on Bittorrent.
Using anti-spam strategies other than the captcha service
The captcha service can be replaced by other "anti-spam strategies", such proof of balance of a certain cryptocurrency. For example, a subplebbit owner might require that posts be signed by users holding at least 1 ETH, or at least 1 token of his choice. Another strategy could be a proof of payment, each post must be accompanied by a minimum payment to the owner of the subplebbit. This might be fitting for celebrities wanting to use their subplebbit as a form of "onlyfan", where fans pay to interact with them. Both these scenarios would not eliminate spam, but they would bring them down from an infinite amount of spam, to an amount that does not overwhelm the pubsub network, and that a group of human moderators can manage. Proof of balance/payment are deterministic so the P2P pubsub network can block spam attacks deterministically. Even more strategies can be added to fit the need of different communities if found, but at this time the captcha service remains the most versatile strategy.
Unlinking authors and IP addresses
In Bittorrent, an attacker can discover all the IP addresses that are seeding a torrent, but he can't discover the IP address of the originator of that torrent. In Bitcoin, an attacker can directly connect to all peers in the network, and assume that the first peer to relay a transaction to him is the originator of that transaction. In Plebbit, this type of attack is mitigated by having the author encrypt his comment or vote with the subplebbit owner's public key, which means that while the attacker can know a peer published something, he doesn't know what or from what author.
Conclusion
We believe that the design above would solve the problems of a serverless, adminless decentralized Reddit alternative. It would allow unlimited amounts of subplebbits, users, posts, comments and votes. This is achieved by not caring about the order or availability of old data. It would allow users to post for free using an identical Reddit interface. It would allow subplebbit owners to moderate spam semi-automatically using their own captcha service over peer-to-peer pubsub. It would allow for all features that make Reddit addictive: upvotes, replies, notifications, awards, and a chance to make the "front page". Finally, it would allow the Plebbit client developers to serve an unlimited amount of users, without any server, legal, advertising or moderation infrastructure.
Please contact me on Telegram @estebanabaroa or Discord estebanabaroa#2853 to get involved, we hiring JS devs.
Beta Was this translation helpful? Give feedback.
All reactions