Fix Reddit with Bitcoin
medium.com
medium.com
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.
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).
At some point to run a business you have to participate in the economy. The way you do that is be getting things you can use to trade for other things. Usually we use money as a way to simplify this.
How do you extract value from the bitcoin ecosystem, until there are enough people willing to exchange good for bitcoin, like food, clothing, and shelter?
> 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.
I think that's just proving my point. There would only be a few people participating as full nodes because it's complicated, putting the entire network at risk of a bad actor.
> Don't host content you don't agree with.
That's great but how do I find the content I 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.
Who would flag it? Can I trust them?
I'm not sure how familiar you are with bitcoin, but you can buy real stuff with it. It is quite well integrated into the normal economy at this point, considering how young it is. But of course it is not as popular as credit cards yet.
> How do you extract value from the bitcoin ecosystem, until there are enough people willing to exchange good for bitcoin, like food, clothing, and shelter?
You can buy food, shelter, and clothing with bitcoin. Spend some time around /r/bitcoin and you will see these opportunities. How many places could you use a credit card when they were only 6 years old?
> I think that's just proving my point. There would only be a few people participating as full nodes because it's complicated, putting the entire network at risk of a bad actor.
A p2p network where anyone can run a node seems strictly better than a central organization to me with respect to "bad actors". When reddit, Inc. makes a decision the users agree with right now, they can't overturn admin decisions. It would be far easier to do so with a decentralized reddit.
> That's great but how do I find the content I don't agree with?
I'm not really sure - most of the time you probably wouldn't know, so there would be times when you unintentionally hosted something you disagreed with. One way to solve that is to simply not host content at all, and only download.
> Who would flag it? Can I trust them?
This is the general problem of reputation, trust, authentication, and naming all in one. I think this project should aim to solve these problems sufficiently well to make things work effectively, and not solve them 100%. For instance, flagging could work by having a buddies list, and trusting their flags, and maybe their buddies' flags. That would be partially effective and better than nothing, but not perfect either. We would iterate and improve the flagging system with time.
I'm quite familiar with it, but you really can't survive off bitcoin alone. There just aren't enough vendors taking it, but more importantly, this is because it is hard for vendors to price items since it so rapidly fluctuates. Bitcoin is also tax disadvantaged because it's classified by the IRS as an asset not as currency, so you get taxed every time you transact bit coin and it has "changed value" relative to the dollar. Can you image trying to do business with dollars if you had to pay tax every time it's value changed compared to the Euro?
> You can buy food, shelter, and clothing with bitcoin. Spend some time around /r/bitcoin and you will see these opportunities. How many places could you use a credit card when they were only 6 years old?
Food and clothes yes (although very limited choices). Shelter? I'm not familiar with anyone who takes bitcoin in exchange for a place to sleep.
You compare it to credit cards, but that isn't really an apt comparison because credit cards just represented dollars in another form.
> A p2p network where anyone can run a node seems strictly better than a central organization to me with respect to "bad actors". When reddit, Inc. makes a decision the users agree with right now, they can't overturn admin decisions. It would be far easier to do so with a decentralized reddit.
But then you get chaos and a fractured ecosystem. I would say that's worse.
> I'm not really sure - most of the time you probably wouldn't know, so there would be times when you unintentionally hosted something you disagreed with.
It's not the stuff I disagree with that's the problem, it's the stuff that's illegal -- ie. my government doesn't agree with.
> This is the general problem of reputation, trust, authentication, and naming all in one. I think this project should aim to solve these problems sufficiently well to make things work effectively,
I'm not even sure what to say here. I know this is HN, but this XKCD explains it perfectly: http://xkcd.com/1425/ (It's the one about making the computer recognize a bird)
From 3 minutes on Google:
http://www.cheapair.com/hotels/
http://www.travelforcoins.com/
http://blog.9flats.com/9flats-accepts-payments-with-bitcoins
I'm not commenting on anything else you've said, but I really do have to question your claim that you're "quite familiar" with the bitcoin market
If we were arguing about the overall health of the bitcoin economy, then your point about conversion to USD would be relevant, but we're only discussing the utility of bitcoin for the consumer here. From the customer's point of view, it is irrelevant, what matters is that the company will accept their bitcoin.
>This is the general problem of reputation, trust, authentication, and naming all in one. I think this project should aim to solve these problems sufficiently well to make things work effectively, and not solve them 100%. For instance, flagging could work by having a buddies list, and trusting their flags, and maybe their buddies' flags. That would be partially effective and better than nothing, but not perfect either. We would iterate and improve the flagging system with time.
If karma equated to Bitcoin in some way (i.e., had tangible value), where users were giving each other karma via upvoting, you could reward users with a "bounty" for correctly flagging content as a certain type (e.g., spam, CP, not relevant to sub). Mods for that sub then make the decision if the flag was appropriate. If it is, those who flagged correctly get the earned upvotes (which equate to bitcoins) divided among them.
If you're going to say that the reward now must entirely come from the person who posted said content, well, that requires also solving the problem of each poster having to have a sort of "deposit" of money, which is marginally better.
No. The bounty comes solely from dividing up the upvotes among the users who flagged the post. Additionally, the cost to flag is 1 karma (so there's a disincentive to try to censor content), but you get that 1 karma back if a mod agrees with the flag. If there aren't any upvotes, there isn't any bounty to be divided and distributed.
Edit: Here's an example of the way it could work - https://valme.io/c/gettingstarted/faq/5qqqs/whats-a-modqueue...
Is it technically possible to divide a specific content to many providers? For example let this string "1234567890" be a content. Could an incentivized server A hosts first, third and tenth characters and server B and C host other characters. Could a client download the content properly in terms of speed. It seems like it is very similar or same with torrent and possible. Therefore, anyone could not be accused of hosting those random samples. Only integrating those samples -downloading- can be a kind of a guilt.
Sure the load could be distributed to a p2p network, but how are you really going to prevent malicious users/nodes? It seems like it would be a nightmare to develop a fair system. A fair system where a user's post is actually propagated (included in mining) to the network and not silenced by a large installation that doesnt want the content on the network. It would seem that if youre using some sort of bitcoin system (or some derivative), a node would just need to contribute enough hashing power to exclude specific content that they don't like (or have been paid to exclude) a significant amount of time to frustrate users. Your centralized resources would always have to be able to provide more hashing power to keep control of the network. Seems silly to chase after big mining installs. Maybe I dont understand your idea... "Fix reddit with bitcoin! [[insert story about being let go and why what you were working on was actually valuable]]" doesnt really explain anything. Maybe this could be a good idea, but it just sounds like vaporware at this point.
Just create an altcoin that you have more control over. But I guess that no one (you?) would benefit enough, because its not tied to bitcoin's value being inflated.
Disclaimer: I own some bitcoin. So dont think Im just trashing on bitcoin.
The point of using bitcoin is so that users are rewarded both for sharing content, and for hosting the content.
> What role does it play besides some sort of integrated pay to post and tipping system? Both of these things can be done without bitcoin -- and far simpler too.
Although the idea I sketched out is for a decentralized reddit, a centralized reddit that just integrated payments is also totally valid idea. Imagine if Changetip were integrated directly into reddit so that upvoting tipped people. That would still be really valuable and a lot of people might use such a thing. But it doesn't solve the other problem of what to do when the owners of the service have different ideals than the users. (Note that I actually worked with the guys at Chain.com to produce a proof-of-concept of something like this.)
> Just create an altcoin that you have more control over. But I guess that no one (you?) would benefit enough, because its not tied to bitcoin's value being inflated.
A new altcoin would not be as useful as bitcoin outside of the system. Using bitcoin makes karma as real as possible. Using an altcoin would just be annoying and a lot fewer people would want to use the system.
But is that really true? The overwhelming number of users that would participate (at reddit's scale or a couple of magnitudes less) have 1) never heard of bitcoin, 2) dont own bitcoin, 3) think its scammy or for buying drugs. Almost all of the potential users would have to purchase bitcoin just to participate. The only people that would be annoyed by using an altcoin are the ones that currently own bitcoin and would not receive a benefit from an increase in value.
Lets be real. This type of application could definitely be developed with some sort of decentralized/p2p token system where tokens are earned, posts are paid for them and maybe the tokens gain some sort of value, but it doesnt require bitcoin. It could literally just be pebbles picked up off the ground if enough people believe that that is correct. Bitcoin isnt valuable enough and doesnt have enough utility for it to be an absolute requirement.
So if there is a "first-and-best" service provider, how exactly does this change from what Reddit is doing today? I can't really wrap my head around how you have defined the problem, nor how this solves it. You still have Reddit at the center - and to most users thats all they will ever see.
This solution doesn't seem very different from writing an application that downloads all content from reddit and posts it to voat. If reddit decides to be a bad actor, it won't really matter because they still own most of the pie.
This is a big issue for systems like this, but I believe it could be addressed through machine learning algorithms. Rather than a spam filter, you have a child porn filter, or a whatever-it's-illegal-to-host-in-my-jurisdiction filter. At least in the child pornography case I believe it could be fairly effectively detected, though of course keeping the model up-to-date would be difficult.
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...
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.
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.
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.
"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!).
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.
Or SMTP-like, but instead email messages, federations share content/votes/...
There are exceptions (https://en.wikipedia.org/wiki/Strict_liability_%28criminal%2...) but they do not apply here.
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".
Ah, unsubstantiated claims of Internet speculation over something? That must make it true!
> I'm not saying it's a good law.
What law? Where?
> ...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".
"You were browsing the Internet, which is unregulated and is known for containing contraband images".
In reality, you filter when you browse the Internet, and that defines your intent. The same would apply here. Access the "HN" sub-P2P-reddit for unflagged posts then nobody can claim that you had intent. If the "HN" becomes rife with unflagged contraband and you stop using it when this starts to happen as a consequence, then nobody can claim that you had intent.
If the whole network becomes unusable because it's rife with off-topic unflagged contraband, then what you really have is a different argument. You'd be claiming that the network would be unsable because of off-topic unflagged contraband. You wouldn't have any argument about the risk of criminal liability from unintended contraband download, because no law-abiding user would ever get that far.
In short: if functional network then no legitimate risk.
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_pro...
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.
Quite bold statement
Here's where he sets out what he was trying to do: 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.
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.
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?)
A lot of good posts and a lot of good comments are at a single-digit number of points (quite often 1), because clicking the upvote button is effort. I can only imagine how many posts will stay at one bitpoint if it takes actual money / work / computation to upvote. And those will be indistinguishable from genuine spam, trolling, off-topic rants, etc. (Given that the current Reddit uproar is about poor tooling for moderators, I don't think that shifting even more moderation burden onto the mods is fixing anything.)
There might be an exception in the voting patterns on the very large / default subs, but decentralizing the defaults alone is a very different goal. Most of the value of Reddit, especially if you care about anti-censorship, is in the long tail of subreddits.
This system would not be the same as the reddit of today. Whether moderation would still work - see all my other comments in this thread about flagging. Basically, flagging would serve as downvoting and would be partially effective. Would love to find a better way, but flagging may be good enough.
Lets just think about how many coins have been "stolen". Those are all available to crap all over your p2p blockchain forum. The normal users could never compete. So now, not only do you have to maintain enough hashing power (as suggested above), now you need to maintain a sizable wallet of btc that can outspend a thief's reserve of coins. Just so your users can post on a decentralized forum network? Sounds like a losing battle. Good luck.
In a Bitcoin economy those are also available to spend on useful things, just like money. Put it this way: would rich trolls spend significant cash to troll you? I don't think so - they'd buy valuable things with their money for themselves instead.
We are looking for collaborators for this project. Please feel free to get in touch if you are interested (@clemensley).
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.
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.
Ultimately I think it is wrong that people put so much effort into social media and do not get rewarded for it in a meaningful way (and no, I don't consider a "like" or an "upvote" a sufficient reward). If we could find a way to reward people monetarily for producing and finding valuable content, that might lead to a huge increase in quality.
I have this theory for how companies could be built: look for where value in transferred on the internet (for example if someone watches a video on YouTube, value is transferred from the video producer to the viewer); then send bitcoin in the other direction. This model seems much more efficient to me compared to today's model where the value from the content consumer to the content produces is transferred through a sequence of intermediaries (social media sites, advertisers, advertising networks) that all take a cut.
Obviously one needs to think about the incentives for all actors, I do not think that donation based networks will work because there is really not much incentive to donate.
Already built. The front page algorithm section at valME.io allows you to select reddit's as the default [1] or choose your own customizations (include NSFW, max hours to evaluate post, num of posts on front page, num of karma by karma type and weightings, OP's karma balance and weighting, OP num of comments, post views, OP age, num of OP flags, etc.)
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.
In that p2p project, all you contributed was storage and bandwidth.
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.
You (*or rather, relevant people) will have my bitcoins in support on day one, if this ever launches.
"Fix Reddit with Bacon"
but no, decentralized reddit sounds like a better idea... maybe until figuring how how to distribute moderation and other privileges.