Author here. AMA. Happy to work out the details of how this would work if anyone would like to see. It takes a little more than just "bitcoin" - you don't want most transactions to be on the blockchain, for instance. Instead, we would do what Streamium did, which is to use payment channels. That will allow for tiny payments.
Also, how the hosting and sharing of content works requires a lot of effort. We can use Web RTC to do the p2p communication over the web. Most people don't yet know this exists - but p2p communication over the web is indeed possible. The only catch is that you need a rendezvous server. That server would be run by anybody, so the network would be two tiered - the simple-to-use web clients that share content but don't provide the rendezvous service. Then the "full nodes" where the users would also run a rendezvous service, allowing people to find each other.
To most users it would look and feel similar to reddit. Anyone would be able to run a "business" by just running the "full node" app full-time and delivering the content to users.
Of course there's a lot more to it than this. I've solved many of the problems, but not all, and there is no prototype yet. But I believe the fundamental technology now exists to create a decentralized reddit, where the users get paid for hosting the system and providing the content.
What's the need for a true p2p network? Why not just do a federated network of servers like Usenet? That's more efficient, cheaper, and it had been done before.
In your model how are unique identities assigned? Do they tie directly to addresses on the blockchain?
Could you write a more concrete proposal? I know that's asking a lot, but you said ask anything. I've been thinking about this for some time and a decentralized reddit sounds really great but the devil is in the details.
The need for a true, decentralized p2p network is to solve the problem once and for all so that we can shed all of the moral hazards around having a company at the center. If a company starts the project, and abandons their ideals and starts censoring content, users can just download the same content from other nodes. The ideals are salvaged. On the other hand, if 99% of users agree that some content shouldn't be permitted, it would be really hard to find that content.
"Unique identities", or naming, is a hard problem by itself. One way to solve it for our purposes that I think would be sufficient is to just let each user own a keypair to authenticate messages, and the names are NOT unique.
As for a concrete proposal, it takes a lot of time to write something like that, and I just haven't done it yet because I was unsure of the community interest. However, it seems there is a good deal of community interest based on this article. Perhaps I could write a whitepaper, or maybe just a longer, technical document, where I try to solve all the problems. Note I don't actually claim to have solved them all yet - but maybe I would be able to solve them all in the course of writing the paper. Having community feedback really helps identify the problems that need to be solved (thanks!).
How/where would content be stored? As transactions on the blockchain? Seems like that could be bloated. Maybe an identifier could be added somehow to a transaction that points to where the content is stored?
Also, how much would you expect each message to cost? Assuming 1 message = 1 transactions, how does that translate to actual coin amounts + mining fees?
Modern web browsers have a real database called IndexedDB. The users store the content. Most users, of course, would not store most content. Users that wanted to could run the app full-time on their local machine, where the database would be leveldb instead of IndexedDB. They would store much more data. Not all data would necessarily be saved forever.
> Also, how much would you expect each message to cost?
Payment channels reduce the cost of transactions to next to zero. An "upvote" does not actually go on the blockchain - only when channels are opened or closed to transactions go on the blockchain, incurring a transaction fee.
How does content moderation by group moderators and content removal work? This is actually the critical question. You need to stop groups destroying other groups with brigading. You need some means of removing doxxing attempts or you're going to get used in someone else's proxy war with SWATting.
If you charged very small transaction fees (for posts, comments, upvotes) and charged higher fees for downvotes, you wouldn't completely eliminate the problems but you'd reduce them significantly as it would now cost something real for abuse.
For example, if an upvote cost 1 karma (putting aside for a moment what that translates to in bitcoin) and a downvote cost 2 karma (but also removed 1 karma from the OP), there would be a large disincentive to brigade. Similarly, if a post cost 2 karma to add and a comment cost 1 karma, spamming would be significantly reduced.
As far as doxxing attempts, every new user could be required to pay a "security deposit" (similar to when you rent an apartment). If you break any of the ToS, you immediately lose your security deposit. To get your security deposit back, you close your account.
Finally, by using small transaction fees (and collecting fees for downvotes, as the operators would get the 3 karma for each downvote), now you have something to reward moderators with.
Also, how the hosting and sharing of content works requires a lot of effort. We can use Web RTC to do the p2p communication over the web. Most people don't yet know this exists - but p2p communication over the web is indeed possible. The only catch is that you need a rendezvous server. That server would be run by anybody, so the network would be two tiered - the simple-to-use web clients that share content but don't provide the rendezvous service. Then the "full nodes" where the users would also run a rendezvous service, allowing people to find each other.
To most users it would look and feel similar to reddit. Anyone would be able to run a "business" by just running the "full node" app full-time and delivering the content to users.
Of course there's a lot more to it than this. I've solved many of the problems, but not all, and there is no prototype yet. But I believe the fundamental technology now exists to create a decentralized reddit, where the users get paid for hosting the system and providing the content.