8 ms·
Fix Reddit with Bitcoin
- yafujifide 11y agoAuthor 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.
- aaron-lebo 11y agoWhat'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.
- yafujifide 11y agoThe 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!).
- goykasi 11y agoHow/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?
- yafujifide 11y ago> How/where would content be stored? 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.
- dida1337 11y agoCould ipfs.io be used for content storing? Together with filecoin could it be better fit then your proposed solution?
- pjc50 11y agoHow 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.
- c_prompt 11y agoIf 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.
- popee 11y ago> Why not just do a federated network of servers like Usenet? Or SMTP-like, but instead email messages, federations share content/votes/...
- rolandnsharp 11y agoHi Ryan, What do you envisage happening to the downvote? I was thinking that charging downvoting could be one way that money could go into the system to pay off those who are hosting the system and/or give money to new users after gaining some "proof-of-participation". Also do you think advertising could work in this model at all? It's a great way to inject a bunch of money into the system without users having to deposit their own.
- gruez 11y ago>when a user upvotes content, that sends a small amount of bitcoin to the author of that content Doesn't this lead to a problem where money = votes? What would be other mechanisms to combat vote fraud? >In order to download content, the user pays a very, very small amount of bitcoin to the peers on the network. This incentivizes people to keep the app open so as to keep servicing the other users I don't think this is necessary. The bitcoin network shows that alturism alone is enough to sustain over 5000 nodes.
- yafujifide 11y ago"Upvoting" on such a system would be a little less like voting and a little more like tipping - think Changetip. There are some real problems here. What if a user pays theirself, thus voting their own content up? One way to solve this is for funds to be locked in some sense before they can be used. A user would have to lock up a significant amount of funds for a while before being able to vote, so it would be really annoying and expensive to commit fraud. There are also bitcoin transaction fees for putting bitcoin into and out of the system, so there is always that disencentive to fund a bunch of separate accounts for the purpose of committing fraud.
- goykasi 11y agoWhat about all of the thieves that have already locked up a significant amount of bitcoin? Wouldnt they be able to use that to easily overshadow a user? Maybe that would give rise to DaaS (downvoting as a service). Miners wouldnt care since they are getting their block rewards + mining fees -- which presumably the thief would gladly play.
- yafujifide 11y ago> What about all of the thieves that have already locked up a significant amount of bitcoin? That is a risk, but it is hard to do and wouldn't work most of the time. > Maybe that would give rise to DaaS (downvoting as a service) There is no downvoting in this system, only upvoting. (How would you take bitcoin from someone?)
- deleted 11y ago[deleted]
- ilovecomputers 11y agoAs I commented on the article, I think this whole monetary system might deter adoption of the application. Either way, check out Freenet if you want to see prior art in creating a decentralized web: https://freenetproject.org/ https://freenetproject.org/ In that p2p project, all you contributed was storage and bandwidth.
- yafujifide 11y agoI think the monetary system not only wouldn't "deter" adoption of the application, but would strongly incentivize its adoption. People will love being able to be paid for their work, rather than letting other people who they don't know get paid for it.
- ucho 11y agoRight, that worked great for Steam build in mod-shop, people sold only their own creations. Oh wait, they didn't, they submitted everything they could find on Nexus. Re-posters are already an issue, even when all they can gain is some karma/page views, it would be crazy to raise the stakes with bitcoins.
- ilovecomputers 11y agoYou're correct, getting paid for posts is a strong incentive. In the end, we won't know unless we try. Personally, when I think of a decentralized reddit, there's nothing monetary about it. Simple points equate with popularity and that's incentive enough, but it's hard to build up a large audience like reddit did. Honestly, when I started reading your article, I was expecting to read a proposal for something like Namecoin, but for a decentralized reddit. Then the monetization part took me by surprise because that would totally change the social dynamic of the site. I would feel it would be less about the content and the popularity and more about trying to make money.
- flashman 11y agoHow would this system approach, say, child pornography? If it is truly decentralised, then there is no way to keep such content off the network. But there must be a way for users/nodes to avoid hosting or encountering such content, otherwise the risk of participating in its distribution, even with plausible deniability, makes 'Reddit on the blockchain' a legal/moral/ethical non-starter.
- lcswi 11y agoYou could have a shared blacklist.
- yafujifide 11y agoIf you have a reason to be suspicious of some content, don't downloaded it. If you discover some content is illegal and you have already downloaded it, delete it and don't send it to anyone else. This is probably best handled with a flagging system. Such a system would not be perfect, but could be improved with time.
- Nursie 11y agoIn many countries, UK included, you have already broken the law and could go to prison over that.
- rlpb 11y agoRubbish. See: https://en.wikipedia.org/wiki/Mens_rea https://en.wikipedia.org/wiki/Mens_rea There are exceptions (https://en.wikipedia.org/wiki/Strict_liability_%28criminal%29 https://en.wikipedia.org/wiki/Strict_liability_%28criminal%2...) but they do not apply here.
- Nursie 11y agoIt's not rubbish. At the time the laws were last tightened there were serious discussion to the effect that simply being sent illegal images via email would be enough to get a conviction. I'm not saying it's a good law. Even if mens rea applies to this area of law, it includes categories of recklessness and negligence, which could quite easily be argued along the lines of "you were browsing an unregulated P2P network that is known for containing contraband images".
- FeepingCreature 11y agoI've done some thinking on this problem, but my own implementation (PeerNews) is sort of stuck in place because I lost interest. That said, if "P2P Reddit" sounds interesting to you, I'd love your feedback on this rough spec document. https://github.com/FeepingCreature/PeerNews/blob/master/spec.md https://github.com/FeepingCreature/PeerNews/blob/master/spec... The design takes advantage of the P2P nature of the network to customize content to the person reading. Using friends and de-friends (hates? unloves?), you would form your own trust weighting for people's upvotes, thus forming a network of cliques where everybody can read the same content, but sorted differently according to their interests.
- jedberg 11y agoNo offense as I'm sure you're a great guy, but I'm really glad they cancelled the project if that is what you were hired for. There's so many reasons this could never work (I would loved to be proven wrong though). 1) I'd say about 10% of the reddit user base even knows what bitcoin is, and far less have any. I don't see people willing to acquire bitcoin just to participate. 2) At some point you have to host the content on a computer somewhere. Time on computers costs money. In the case of reddit, this is 1000s of dollars a day (and would be even more in a decentralized system due to the overhead of coordination). Right now the bitcoin economy is not robust enough to extract 1000s of dollars a day, and there isn't any provider that will accept bitcoin in exchange for compute at that level, or even close to it. 3) Fewer and fewer people have the ability to host content anymore, be it at home or in a datacenter. So you'd be relying on just a few people who would be willing to host content. This basically leaves you very open to an "attack" on the network by a bad actor, who could take it over with reltive ease if they were just one of a few that were hosting content. 4) Child porn. It would be way too easy for someone to put that on the network and then everyone would be at risk, further reducing the number of people willing to host (see the list of Tor exit nodes that aren't government spy nodes as an example of how few people would be willing to participate). 5) Related to number 4, the laws in different countries are different. If I host in the USA and you host in say Sweden, content that is legal for you may not be legal for me, again opening me up to liability unless I closely police the content, and unlike reddit Inc, I don't have the lawyers and common carrier protections. Like I said, I'd love to be proven wrong, but given my experience actually running reddit, I just don't think the bitcoin ecosystem is big enough to support it today or even in the medium future.
- yafujifide 11y ago> I'm really glad they cancelled the project if that is what you were hired for. The idea sketched out here is not equivalent to the project I was hired for. That project was never sketched out in detail and probably would not have involved bitcoin. > 1) I'd say about 10% of the reddit user base even knows what bitcoin is, and far less have any. I don't see people willing to acquire bitcoin just to participate. Today, most reddit users would not participate in this system. But we don't need 100 million users on Day 1. > 2) At some point you have to host the content on a computer somewhere. Time on computers costs money. In the case of reddit, this is 1000s of dollars a day (and would be even more in a decentralized system due to the overhead of coordination). Right now the bitcoin economy is not robust enough to extract 1000s of dollars a day, and there isn't any provider that will accept bitcoin in exchange for compute at that level, or even close to it. Yep. Probably the best way to do this is to found a company that hosts servers that host a lot of the content. Anybody could do this, of course, and the company's servers are not privileged in any way. However, by being the first and best service provider on a new decentralized platform, they would profit (I call this business plan the "Satoshi model"). Note how in the article I explain that the users actually pay to download content - a possibility that was not available when reddit was founded. > 3) Fewer and fewer people have the ability to host content anymore, be it at home or in a datacenter. So you'd be relying on just a few people who would be willing to host content. This basically leaves you very open to an "attack" on the network by a bad actor, who could take it over with reltive ease if they were just one of a few that were hosting content. Think of the hosters as being more like bitcoin miners or bitcoin full nodes. Anyone can do it, technically, but almost no one bothers to. The people that do make a business out of it. > 4) Child porn. It would be way too easy for someone to put that on the network and then everyone would be at risk, further reducing the number of people willing to host (see the list of Tor exit nodes that aren't government spy nodes as an example of how few people would be willing to participate). Don't host content you don't agree with. There could even be a flagging system for stuff like this so that you never download it in the first place where possible. > 5) Related to number 4, the laws in different countries are different. If I host in the USA and you host in say Sweden, content that is legal for you may not be legal for me, again opening me up to liability unless I closely police the content, and unlike reddit Inc, I don't have the lawyers and common carrier protections. Yes. As I said, you do not have to host content you don't like (but you also can't prevent other people from hosting/sending whatever they want to other people). > Like I said, I'd love to be proven wrong, but given my experience actually running reddit, I just don't think the bitcoin ecosystem is big enough to support it today or even in the medium future. The bitcoin ecosystem is not mature enough to be as big as reddit today, but it is big enough to be as big as reddit on reddit's Day 1, or maybe reddit's Day 365 or so. This system and bitcoin could grow to ultimately be as large as reddit is today or larger, in 10 or so years (in a hypothetical best-case scenario).
- Animats 11y agoThere already are federated social networks. Wikipedia has a long list.[1] You never heard of any of them. Buddycloud, Diaspora and Friendica got far enough to have a number of servers in two digits. Buddycloud seems to have pivoted into a system for in-house use. Diaspora seems to be dying. Frendica is running, with a very modest number of users, and trying to replace itself with a new system called Red. It's quite possible to do this, but so far, nobody has been able to get anything like enough users to make it useful. [1] https://en.wikipedia.org/wiki/Comparison_of_software_and_protocols_for_distributed_social_networking https://en.wikipedia.org/wiki/Comparison_of_software_and_pro...
- vultour 11y ago> You never heard of any of them Quite bold statement
- yafujifide 11y agoNone of the federated social networks integrated p2p payments because that wasn't possible until bitcoin. The entire existing internet economy was built around the assumption that p2p payments were impossible. That assumption no longer holds.
- rakoo 11y agoWhat's preventing all those systems to integrate p2p payments now ? AFAIK users only need to share their wallet id, so it could be as simple as a line in the profile; when users click on a "tip this" button, the system can get the id and send some amount.
- Animats 11y agoNo, the early Internet economy tried micropayments. First Virtual, Cybercoin, Millicent, Digicash, Internet Dollar, Beenz... All failed. Anyway, payment isn't the problem with distributed social networks. Asshole amplification is the problem. If one jerk can easily annoy hundreds of users, there's a problem. Trying to build a federated social network which can survive spam nodes is going to be tough. Especially if users are anonymous and can create additional identities easily.
- utunga 11y agoThere are undoubtedly a lot of problems to figure out. But you absolutely have my support to run the experiment to try and figure out how to, finally, actually build the front page of the internet in a truly decentralized way. You (*or rather, relevant people) will have my bitcoins in support on day one, if this ever launches.
- davidgerard 11y agoRyan's work at Reddit was reimplementing bitcoind in JavaScript on node.js: https://github.com/ryanxcharles/fullnode/graphs/commit-activity https://github.com/ryanxcharles/fullnode/graphs/commit-activ... Here's where he sets out what he was trying to do: https://np.reddit.com/r/Bitcoin/comments/2uadvd/the_real_reason_ryan_charles_was_fired_from/co6r4q9 https://np.reddit.com/r/Bitcoin/comments/2uadvd/the_real_rea... The takeaway is: if you start with "... but with Bitcoin!", then iteratively putting different words before "but" is unlikely ever to result in something that is actually useful, not just interesting.
- clemensley 11y agoLove the idea. We are working on something similar, but without the decentralization at this point. In our system users can invest bitcoin in a post by upvoting it. If that post gets many upvotes subsequently the investor will make a profit, otherwise a loss. https://github.com/rolandnsharp/node-bitcoin-reddit https://github.com/rolandnsharp/node-bitcoin-reddit We are looking for collaborators for this project. Please feel free to get in touch if you are interested (@clemensley).
- kang 11y agoSuch systems are prone to political effects. For example, a pop song would get much more upvotes than a genuine discussion. Over time intellectuals leave because of the noise.
- clemensley 11y agoThat is true. In a sense that is the truly democratic effect: more people care about pop music than intellectual discussions (obviously our system would be a twisted form of democracy where money==votes; then again that's too different from real world democracy). I obviously have no idea how this will pan out, but it's just far too exiting to not just try. Edit: Our idea is really to "give bitcoin to the people who provide value". Nothing is set in stone yet, but our current thinking is that there are two ways to provide value in a Reddit style system: submit new content or upvote valuable content. We want to find a fair way to pay rewards in both cases.
- c_prompt 11y ago> That is true. I don't agree. You're going to have different communities, just as reddit does now. Intellectuals are (likely) not going to be posting in /r/I-love-taylor-swift; they would post to their own communities as they do now. If you're concerned about what makes it to the front page, you use a different algorithm than reddit uses. Or, better yet, you allow mods (or even users) to customize the algorithm their subs use.
- 11y ago
- dev-da0 11y agoAt first glance, I thought the title read: "Fix Reddit with Bacon" but no, decentralized reddit sounds like a better idea... maybe until figuring how how to distribute moderation and other privileges.
- tannerbrockwell 11y agoThis is already in development and has been through a genesis block colored coin issuance based on Bitcoin: http://www.synereo.com/ http://www.synereo.com/ They will reward content creators and participants with the colored coins: AMPs Advertising will also be supported with a market in the AMPs. Thus bringing equity to holders of AMPs.