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.
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.
"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!).