
Decentralized Reddit using a DHT to store content and a blockchain to rank it - sktrdie
http://www.slideshare.net/lmatteis/kudos-a-peertopeer-discussion-system-based-on-social-voting
======
liamzebedee
Re: the hosting of topics/subreddits in the DHT, I've done quite a lot of
research [1] into a very innovative yet not well known P2P publish-subscribe
network design [2] from some Norweigan computer scientists that removes the
role of hosting for nodes not interested in a topic, even designing a
decentralised microblogging platform on top of it [3].

It's called PolderCast, and the way it works is that it models subscribers of
a topic as a ring, and then uses 3 different overlay networking modules to
efficiently constructing the network (a basic gossip one, one that finds nodes
with intersecting interests, and then a final one which constructs the
neighbours for a node in the topic ring). Thus, only subscribers of a topic
are responsible for hosting, in contrast to a DHT where every node would be
(even for questionable content that they may not agree with).

[1] [http://liamz.co/wp-content/uploads/2015/03/Computer-
Science-...](http://liamz.co/wp-content/uploads/2015/03/Computer-Science-
Extended-Essay_Liam-Edwards-Playne.pdf)

[2]
[http://acropolis.cs.vu.nl/~spyros/www/papers/PolderCast.pdf](http://acropolis.cs.vu.nl/~spyros/www/papers/PolderCast.pdf)

[3] BitWeav [http://liamz.co/wp-
content/uploads/2015/03/whitepaper.pdf](http://liamz.co/wp-
content/uploads/2015/03/whitepaper.pdf)

~~~
jchrisa
I have an idea for a federated blockchain to support a subjective crypto
currency. So each coin's value is unique and determined by whoever might be
trading it. The way that knowledge of the network state will flow looks like
boosted gossip, maybe similar to PolderCast layers.

Here's a user's eye view of it: [http://thenewstack.io/why-art-could-become-
currency-in-a-cry...](http://thenewstack.io/why-art-could-become-currency-in-
a-cryptocurrency-world/)

------
mahranch
One question; what protections are in place to prevent some of the problems
which plague user aggregated links (which are selected/ranked according to
votes)? Is there any anti-vote cheating mechanisms in place? Anti-Spam
measures?

One of the biggest problems that digg (RIP) and reddit have been fighting is
organized groups of people (and/or their sockpuppets or network of bots)
voting up their own links. Everything from SEO companies, marketing agencies
to just plain old greedy spammers all attempt to game the system. There's
quite a monetary incentive to reach reddit's front page and people have been
abusing the system for over a half a decade now. What keeps those people in
check, those who discover ways around or through their automated anti-vote
cheating code (which is the majority), are the moderators. They're the fail
safe. Having the entire thing decentralized removes the mods from the equation
and your fail-safe as well. That's the problem; removing the mods may give you
slightly less censorship, but you're not accounting for all the good things
that come with having mods.

I don't mean to be cynical about this, but I do know _for a fact_ this will
never be more than a small experiment. I know this because if this ever got
popular, I'd abuse the shit out of it myself and I have little to no incentive
too. I can't even begin to imagine the abuse level from people with an actual
motive.

~~~
sktrdie
You can only abuse it as long as you have points. With Reddit (or systems like
it) you have no limits - for instance, you could upvote all content on the
front-page every hour. On the other hand, with this Kudos system, you would
run out of points rather quickly if you did that.

I agree, as others posted in this thread, that there are many other problems
that need to be addressed. Frankly I don't know if a p2p network system can
even be built to address all issues - social voting networks based on
reputation are rather complex.

However I hope to have shed the light on some interesting properties that can
be achieved by combining the decentralized aspects of DHT keys, with the
consensus features of a blockchain. Moreover, the idea of of using
cryptocurrency tokens, for things other than currency, is a field that needs
to be explored more.

~~~
mahranch
> You can only abuse it as long as you have points.

You seem to be implying that this is some sort of road block or hurdle for
those interested in gaming the system. Unfortunately, it's not even a speed
bump. I think you underestimate just how resourceful and clever these people
are. I'm a mod of a few large subreddits on reddit and I can assure you,
"having points" is no more a hurdle to them than saying "on reddit, you have
to have an account to vote".

------
eis
What I don't see covered is the following problems:

1\. Do people have to buy points from miners? 2\. What prevents someone from
buying lots of points to promote their content?

~~~
clarkmoody
1\. Not sure.

2\. It looks like the transaction sizing rules make it _exponentially
expensive_ to upvote multiple times.

~~~
colordrops
Could you elaborate on how it is exponentially expensive? I don't see how that
would work. If 100 people are allowed to vote on a topic with this system,
then one person with 100 sock puppets should be able to vote on a topic, as
there isn't a technical difference.

~~~
clarkmoody
It looks like funding all those sock puppets with coin would cost lots of
money.

From the slides:

    
    
      Sending 10 points to someone would require 10 addresses
      with at least 2 points each. Creating 10 addresses with
      2 points each would require 10 transactions of 4 points
      each, meaning 40 points.
    

Those 10 addresses require the same funding amount whether from sock puppet
accounts or from one account.

Perhaps it's not exponential though.

~~~
eis
Well to acquire a point you can use in voting would have to get one from a
miner. That would be the same, no matter if you are a real person or an
advertiser/spammer. Unless you gained points before with your own content.

Even if the price would be 4x the amount of the cost of other votes, it can't
be a deterrent because 4x a little amount is still a little amount. If a vote
costs 1 cent then the spammer would pay 4cent. Not a big deal.

------
murbard2
You do not need a blockchain to do this. If you can represent something using
an append only data structure, a DHT is enough.

~~~
jstanley
> If you can represent something using an append only data structure, a DHT is
> enough.

Can you elaborate? Is the blockchain not an example of an append-only data
structure?

~~~
murbard2
A block-tree would be append only. The blockchain is a block-tree + a
canonical leaf (or a head) which is a mutable variable.

[https://medium.com/@arthurb/what-do-blockchains-
accomplish-e...](https://medium.com/@arthurb/what-do-blockchains-
accomplish-e9a5efa246bf)

------
osmode
Self-censorship and censorship by others will continue to hamper online
discourse until people feel safe from reprisal. A decentralized P2P discussion
system would be a huge step toward this goal. I've been following Ethereum for
a while now; have you considered using the platform to build this as a dapp?

------
RileyJames
Some additional details:
[http://lucaa.org/docs/kudos.pdf](http://lucaa.org/docs/kudos.pdf)
[https://bitcointalk.org/index.php?topic=1148175.0](https://bitcointalk.org/index.php?topic=1148175.0)

------
NoMoreNicksLeft
This is clever and interesting, but I'm not sure it addresses the central
problem.

Reddit made the news in the last year for some (mostly unfair) claims of
censorship. However, rather than directing censorship which the plebes had to
accept, the social pressure from the plebes necessitated these overt acts. For
weeks afterward with FPH, we kept reading comments like "well, what about
coontown?". These commenters may have felt they were being ironic, or
espousing fairness (hey, what's good for one is good for the other), but the
collective/aggregate effect was to clamp down even further. These same people
are the ones who were able to push Reddit's management in that direction in
the first place.

These people won't disappear if you implement blockchain-reddit. (Though,
there's probably a plausible argument that they might stay away.) There will
be no blockchain-reddit management to pressure into overt censorship, but they
ruined reddit long before they got that far. They'll ruin this too. Downvotes
are, after all, a "fuck you" and not a "you're fallacious". Disagreements are,
after all, evidence that the other person is wrong/stupid/uncool, and not a
difference in perspective.

The problem is people, and there is no computer science fix for that.

------
acd
Doing the same technology for political ideas would be an interesting
experiment of new form of people driven democracy.

Lets see hackers invent decentralized currency, hackers invent decentralized
government democracy 2.0, people encrypt all their data and decentralize
communications.

reboot

~~~
throwaway7767
So people's level of input into political decisions will be directly tied to
the amount of money they're willing to spend?

Sounds like it would pretty much legitimise the problems with the current
system. Or maybe I'm missing some key part here?

~~~
oldmanjay
There will never be a human power structure that avoids catering to the
powerful, whether expressed with money or some other proxy. The most you can
hope for is that the structures also make catering to the non-powerful worth
doing.

~~~
throwaway7767
So do you think a system based on buying votes on the blockchain would make
catering to the non-powerful worth doing?

I don't.

------
EGreg
The DHT is good, although I wonder whether the routing is centralized through
relying on DNS, or whether it's completely decentralized.

What is the point of the blockchain, though? Is it just to avoid a double
spend problem? Proof of work is terrible now for new blockchains because
people have rigs that can easily execute a 51%+ attack and destroy the
network. It needs proof of stake, which becomes better the more participants
there are. But proof of stake has a more centralized character not unlike a
website with moderators controed by the initial host.

Isn't there a better way these days to prevent sybil attacks? All you need is
to make it very expensive to make more than one account. How do you do that?
You take what 99% of people have one of (such as their body, or their house,
or their cellphone) and have them prove they own it. But that defeats
anonymity, doesn't it?

Isn't there anything that people have only one of, can prove they own it, but
doesn't reveal their identity?

Someone should implement this. THAT would be the real way to prevent sybil
attacks.

------
legulere
The problem I see with this is that there's no moderation. Moderators are
usually the difference between a good and a terrible subreddit.

~~~
fleitz
1\. Blockchain. 2\. ??? 3\. Profit.

------
technimad
Reading stories like this makes me always wonder what's wrong with NNTP? Can
be decentralized and federated, just run your own server.

~~~
fleitz
NNTPs exact problem is that it works.

It's like if you decided to start making CPUs out of silicon on a RISC
architecture, that's boring because it likely works and is a simple way of
solving the problem of computation in a fast way. Essentially any idiot with
sufficient engineering know how could do this.

However, rather than buy a CPU for a few dollars and get down to the business
of computing you could start making logic gates out of balls, water, or
something wholly unsuited for computation, and then try to build a CPU on top
of that. At that point you'd have something very impressive that solved no
problem people actually had before that point. And everyone who bought a CPU
would look and think, why make all that fuss to do slower what we had been
doing for years before?

------
amyjess
I was hoping it would use something inspired by NNTP, since "decentralized
Reddit" is basically Usenet with voting.

~~~
xj9
I had an concept once for a decentralized reddit-like that used NNTP to
distribute content and an inflationary cryptocurrency to store karma. The idea
was that karma is only valuable while the thing that is generating it is
relevant. If you wait long enough, your "karma-coins" will be, essentially,
worthless. The deflation of your coins is dependent on your average net-worth
over some period of time and the state of the global economy. (Maybe?)

I got busy with work, so I never got into the implementation stage, but it is
on my backlog. Hopefully I get to it some day.

------
Coffeewine
Do they say anywhere what mining scheme they're considering? It seems a
weakness of this scheme would be the distribution of points. If they have a
scaling difficulty similar to bitcoin, it seems possible that early adopters
could wind up with vast quantities of points which late adopters would be
starved for, allowing them to control what content is rewarded and published
for a goodly while, impairing the initial attractiveness of the platform.

------
cbeach
Sounds like a great idea, although I fear people may stockpile points in order
to promote their own material later.

~~~
colordrops
Why is that a problem? The person got a lot of points because people liked
this persons contributions. People with more reputation should be allowed to
post more.

~~~
mahranch
The problem is promoting quality content people want to read. What if
hackernews was just all viagra ads from spammers? Would you be fine with that?
I sure wouldn't. That's the problem. Instead of quality content making it to
the top or 'front page', people who pay the most can make it to the front page
regardless of content quality.

------
Ono-Sendai
Using the blockchain for something like this is a total waste of energy. Just
run it on a single fast server. (or a small cluster)

~~~
hlfshell
Wouldn't that then make it centralized? I think the point is to make a reddit
wherein censorship - beyond voting bombs - can not be enacted.

~~~
Ono-Sendai
Yes. Centralisation is just much more efficient in this case. (and maybe in
all cases?)

~~~
clarkmoody
Much for efficient, yes. But also much less decentralized, which is the point
of this presentation.

------
salamy
Sounds like hosting on maidsafe would be a secure option, once it's ready
anyway.

------
williamcotton
Interesting, we're doing something similar with Open Publish, Bitstore, and a
couple of DHT backed delivery systems, namely IPFS and BitTorrent.

Content is published by registering a SHA-1, BitTorrent InfoHash, an IPFS key
and a URI pointing to the content on the Bitcoin blockchain.

[https://github.com/blockai/openpublish#register-media-
with-a...](https://github.com/blockai/openpublish#register-media-with-an-open-
publish-transaction-posted-to-the-bitcoin-network)

Payments or tips towards that content are registered by creating a Bitcoin
transaction that pays the person who registered the content by referencing the
SHA-1.

[https://github.com/blockai/openpublish#tipping-and-
micropaym...](https://github.com/blockai/openpublish#tipping-and-
micropayments)

We've experimented with some Reddit-style ranking algorithms where we consider
payments or tips as upvotes.

One big difference between what we're building and what this presentation is
describing is where and how the content itself is stored.

We expect the content to be available on BitTorrent (and WebTorrent) as well
as IPFS, both content-addressable data stores that use DHTs, but we also have
a fallback to a URL for the content.

We made our own service called Bitstore, a content-addressable file hosting
and distribution service that uses Bitcoin public key infrastructure for
authentication and payment.

[https://github.com/blockai/bitstore-
client](https://github.com/blockai/bitstore-client)

So instead of having to run your own IPFS or BitTorrent node that's always
serving up your content, you can pay a small fee in Bitcoin to have your file
hosted... something like a coin operated S3.

Both Bitstore and Open Publish use the same form of authentication and
permission, the public key nature of Bitcoin wallets. Users are identified by
their public wallet addresses. This login mechanism has been implemented in a
number of wallets that support the spec Common Wallet interface.

[https://github.com/blockai/abstract-common-
wallet](https://github.com/blockai/abstract-common-wallet)

This opens up a number of really interesting interactions, such as something
like "tip to comment", where a web service can check the Bitcoin blockchain to
see if a self-identified wallet address did indeed tip the content it is
attempting to comment on.

[https://github.com/blockai/my-two-bits](https://github.com/blockai/my-two-
bits) [https://github.com/blockai/my-two-bits-
client](https://github.com/blockai/my-two-bits-client)

~~~
joosters
What are the problems with existing services that you are attempting to solve?

~~~
williamcotton
In short, the entire nature of how information is published and monetized.

There are numerous problems with the current ad-sponsored publishing systems
with web content, but some of the more interesting ideas we're looking at deal
more with the professional publishing industries around photography, music and
books.

We were very excited to read this report from the Berklee School of Music that
outlined a system very similar to what we've been building!

 _In addition to the aforementioned benefits, a compre- hensive, accurate
database of music rights ownership information would provide a platform for
new technol- ogies to be applied in potentially game-changing ways. We
encourage the investigation of the use of emerging crypto-currencies, such as
Bitcoin, and their underlying technology, Blockchain, as new royalty-
distribution mechanisms for the music industry.

...

A database of accurate rights ownership information, like the one we have
proposed, could form the founda- tion of a similar cryptocurrency log. In
addition to rights ownership information, the royalty split for each work, as
determined by a mixture of statute and contracts, could be added to the
database. Each time a payment is generated for a given work, the money would
be auto- matically split according to the set terms, and each par- ty’s
account would instantly reflect the additional reve- nue. For example, suppose
a song is purchased from a digital music store, such as iTunes. After the
store takes its cut, for ease of demonstration, we will hypothetically assume
the revenue generated by the purchase comes to US$1.00. This money would be
split between the two different works contained in the song, with a 9.1 cent
mechanical royalty going to the musical work, and the remaining 90.9 cents
going to the sound recording.

Next, if the contract between the publisher and songwriter specifies a 75/25
split of revenue from downloads, the publisher would receive 6.825 cents and
the songwriter would receive 2.275 cents. With an identical split at the
record label, The label would receive 68.175 cents, and the recording artist
would get 22.725 cents. The block- chain network could also further divide
this 22.725 cents between the members of a band, if applicable. This entire
process would take place in less than one second, allowing all parties to
access their money immediately after it is generated. Further, this payment
system is fully trackable and would ensure that royalties are not held by
third parties, such as labels and publish- ers, before being passed to the
artist and songwriter. This would eliminate concerns about accidental or
intentional underpayment of royalties._ \- Fair Music: Transparency and Money
Flows in the Music Industry, p.27-28

[https://www.berklee.edu/news/fair_music_report](https://www.berklee.edu/news/fair_music_report)

~~~
joosters
Hey, thanks for the detailed and considered reply. So many of the proposals I
see (including the slides in the main article) seem to be either technical
plans without any obvious motivation (other than 'because we can'), or are
people trying to use technology to magic away laws that they personally don't
like. It makes me very cynical of it all at times :(

~~~
exstudent2
> people trying to use technology to magic away laws that they personally
> don't like.

Isn't this a good thing? If the law is unjust then technology will expose its
weakness (copyright law for instance). If the law is just, it will be
strengthened by being tested by technology and if it's applicable in new
areas.

Law should not impede progress, progress should push law.

~~~
joosters
There's no magic that means good laws will get strengthened and bad laws will
be weakened. The other way around is just as possible.

~~~
exstudent2
That's what makes you cynical?

------
paulmd
I originally wrote this post as a response to Osmode, but it ended up swelling
more than I'd intended. I fundamentally agree with his goals of supporting
free discussion and suppressing self-censorship. However, I see several
problems with this approach to achieving those goals.

The core problem with social-capital type schemes like Reddit (or indeed HN)
is that they're very susceptible to bandwagoning. On Reddit the groupthink
varies by community, but there's some mixing bowls and as a result the
community does have an overall balance, despite having some short-term
bandwagons. HN has a really strong bent towards the opinions of 20-something
Silicon Valley startup coders without much counterbalance, and I know that
I've certainly self-censored on certain topics that go against the grain here.
Yes, in the words of Drew Carry, "everything is made up and the points don't
matter", but then why is there still a counter in the corner of my screen?

Here, you're literally talking about putting a pricetag on dissenting
opinions. If you go against the grain you're not just getting downvoted, each
post actually costs you a certain amount of real money on servicing the
blockchain. Conversely, circlejerking will get you a lot of kudos. That is -
in and of itself - a strong social pressure that hampers the full spectrum of
discourse. Much like the Bitcoin blockchain, it is fundamentally based on the
assumption that no one group controls a non-trivial portion of the [social]
network.

The same mechanisms that work against reprisal or spam also work against
opinions that dissent from the common wisdom. It's vitally important for a
strong discourse that sometimes-unpopular opinions be heard. Otherwise it's
far too easy for the majority to carry themselves along (the Iraq war
immediately springs to mind). I don't know how you counterbalance that against
suppressing actual spam - because botnets and such mean that those groups will
also have a great deal of capital from blockchain/network operation.

Some of the best communities on the web have actually been gated ones. Back in
the day it cost $10 to activate an account on SomethingAwful. If you trolled,
well, at least you're helping pay for the servers. If you leech on private
trackers, you get banned and someone else takes a hit for inviting you. Gated
NZB sites work in a similar way. I don't have a problem with such communities
at all, but fundamentally they work on the basis of clearly defined social
standards. On the flip side, Twitter and Tumblr have a very low level of
discourse, because it's all about pithy soundbytes that get you retweeted.
People leech from ThePirateBay all the time, because from their perspective,
why not?

I don't see how this is different from "twitter, but using bitcoin". Something
like FreeNet seems to accomplish the above goals much more effectively -
popular opinions result in distributed re-caching, unpopular ones still get
served if they have sufficient traffic, and _really_ unpopular ones can be
broadcasted by vigorous network participation and re-seeding.

------
debacle
You guys really need to let go of the blockchain trope. It's a hammer seeking
nails.

~~~
Aqueous
The blockchain represents trust-less global concensus, the first time such a
thing has occurred in history. From remittances to microtransactions to voting
there are very few economic and political problems that the blockchain can say
nothing about.

The current market capitalization of BitCoin is $3.7 billion. Did all that
money just appear out of thin air because blockchains are worth nothing and
solve no problems?

~~~
zakk
The market capitalization of Bitcoin has NOTHING to do with the value of its
technical solutions.

A low tech solution like the good old check (ink on a piece of paper) can be
worth more than all Bitcoins.

~~~
Aqueous
Really? Nothing? If the technical solutions were worth nothing wouldn't the
value tend towards zero? Surely sustaining a market cap in the billions says
_something_ about the economic value it represents.

~~~
zakk
> If the technical solutions were worth nothing wouldn't the value tend
> towards zero?

Nonsense. The value of Bitcoins is not the value of the algorithms behind it.
People agree to trade Bitcoin for that amount of money and that's it. Market
laws.

Just like the value of cash is not determined by the technical solution behind
it (essentially colored inks on a piece of paper).

~~~
Aqueous
So all market valuations exist in a vacuum, and say _absolutely_ nothing about
how much something is _actually worth_? And how do you think this economic
theory applies to the stock market or commodities markets? Are shares in
companies and commodities inherently worth nothing but the price people agree
to pay for them? Don't they say something about their collective belief in
that asset's future?

Market valuations can become decoupled from intrinsic value, but that doesn't
mean the _intrinsic value_ is zero. In the long term if something really
repesents _zero_ value its market valuation will approach that.

~~~
debacle
Bitcoin is a cryptocurrency. Bitcoin is also a technology. You're conflating
the two. You could have a cryptocurrency without a block chain and you can
have a block chain that has nothing to do with cryptocurrency.

~~~
Aqueous
They are very much linked to one another. If BitCoin didn't offer anything
novel over and above other media of exchange, like fiat currency, its value
would approach zero. Its differentiating quality _is the blockchain_ and peer-
to-peer distributed concensus.

 _You could have a cryptocurrency without a block chain_

Perhaps, but then you'd need to solve the problem of trust-less peer-to-peer
Byzantine concensus a _different away,_ using a different mechanism. And
that's exactly why the blockchain is novel.

