Decentralized Reddit using a DHT to store content and a blockchain to rank it
slideshare.net
slideshare.net
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-...
[2] http://acropolis.cs.vu.nl/~spyros/www/papers/PolderCast.pdf
[3] BitWeav http://liamz.co/wp-content/uploads/2015/03/whitepaper.pdf
Here's a user's eye view of it: http://thenewstack.io/why-art-could-become-currency-in-a-cry...
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.
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.
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".
1. Do people have to buy points from miners? 2. What prevents someone from buying lots of points to promote their content?
2. It looks like the transaction sizing rules make it exponentially expensive to upvote multiple times.
So either you have to make it really expensive to vote and that would make this a no-go or you end up with cheap advertisement that you can't even block easily.
There is one trait to this system that is interesting: the cost to promote your content goes up with the rate of popularity of other posts. Kinda like in the real world where advertising on a popular page costs more than on a random blog.
But because there is no limit as to how many people would try to advertise, the whole content would soon be pure ads.
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.
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.
Can you elaborate? Is the blockchain not an example of an append-only data structure?
https://medium.com/@arthurb/what-do-blockchains-accomplish-e...
Votes belong to each user and are spent exactly once. You could try to vote twice but it would be detected and would not lead a double spending problem.
I think proof-of-work is a bad mechanis to prevent sybil attacks on any new blockchains except bitcoin because someone can just cause a massive jump in computing power for a dayand destroy the whole network. Now the infrastructure is there, we need proof of stake or something else.
1) What technology is appropriate for a decentralized reddit, and 2) What technology is best for a decentralized cryptocurrency.
Regarding (1), a small proof of stake stamp for upvote is fine. So, someone can upvote a Lock Ness monster comment to astronomical level for a while by buying computing power? Big deal. Or you can build a social network and rely on something like Sybil Guard. You don't strictly need a consensus here... you can decide to only view the upvotes associated with people in your extended network.
The reason they are using a blockchain is because it is sexy, and it is easier than thinking seriously about the problem.
Regarding (2), proof of stake with safety bonds and yearly checkpointing is probably the sweetspot.
The rare resource here isn't work, it's reputation. You personally won't add 1 million friends. If you want to get signals and votes from friends then you don't need proof of work.
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.
Lets see hackers invent decentralized currency, hackers invent decentralized government democracy 2.0, people encrypt all their data and decentralize communications.
reboot
Sounds like it would pretty much legitimise the problems with the current system. Or maybe I'm missing some key part here?
I don't.
I think you forget how Proof of Work works. Candidates can just buy more and more mining power to put their opponents out of the race.
It sounds like the problem you're trading for is the one that Bitcoin solved in the first place: No need for a central database of users. How do you decentralize authentication of one-person-one vote? I'm not sure it's even possible
Sort of forming a web of trust, but with negative incentives against signing for anyone trying to double vote?
Or maybe it is impossible.
It seems there would be a problem if the web of trust was fragmented, because for anyone not in a particular region of the wot, they would be unable to tell if it was a real wot, or only a fake one.
So any voting that occurred would have to only apply within a contiguous wot, and anyone in a different region would have to not have that vote count for them.
So, in a limited form like that, it could maybe be possible, but I don't know what it would be worth, because I don't know what sorts of things would be worth voting on, if the result of the vote can only apply to the identities used in the vote, because anyone could make another identity not part of the wot if they did not like the vote outcome. And a number of other similar problems.
notto take away from your main point, but money is a social convention, too....
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.
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?
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.
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...
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...
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
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
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-client
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
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.
These days it takes literally hours to put up a web application that would have taken many months to build in the early nineties, if not more!
There still isn't an existing technology stack to build these kinds of consumer friendly applications that take advantage of the properties of a decentralized, single-source of truth, public access database like the Bitcoin blockchain.
That means that everyone is having to first figure out what the technology stack is, where the interfaces are for the various systems and modules that comprise it, and the best practices for shipping working products.
We've been trying our best to publish what we've been learning and trying to find nice interfaces for our systems and modules, and in the process we've come up with Common Blockchain, an API interface for querying the blockchain and propagating transactions, and Common Wallet, an API interface for signing messages, signing transactions, and signing authentication tokens.
https://github.com/blockai/abstract-common-blockchain https://github.com/blockai/abstract-common-wallet
We've got a really simple implementation of a Common Wallet based on bitcoinjs-lib that does all the basics that we use mainly for automated test suites, but it is a fully functional Bitcoin wallet.
https://github.com/blockai/test-common-wallet
We've also got a Common Wallet interface that talks to the Bitcoin-QT or bitcoind JSON-RPC, meaning you can use the standard core wallet with all of our supporting protocols. There's also a Common Blockchain implementation for the JSON-RPC.
https://github.com/blockai/rpc-common-blockchain https://github.com/blockai/rpc-common-wallet
And there's a number of unofficial Common Blockchain wrapper for third-party blockchain APIs like Blockcypher, Chain, and Blockchain.info. We now use a Common Blockchain interface based on Blockcypher in production.
The main motivation for Common Blockchain was that we were tired of having to change our interface after a series of blockchain APIs we were using either went out of business or pivoted.
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.
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?
A low tech solution like the good old check (ink on a piece of paper) can be worth more than all Bitcoins.
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).
The value of paper money is actually pretty intimately entangled with the quality of its anti-counterfeiting technology. If anybody could just print viable currency on their home printers, cash would be useless.
http://www.royalmint.com/discover/uk-coins/counterfeit-one-p...
I don't think you're actually arguing that I could build a currency that scales beyond a tribal scope out of something that's trivial to copy, but that's the point I'm trying to make. If it's too easy to cheat, people will stop trusting the currency and will use something else; therefore the technology behind the currency does affect its value.
The UK £1 counterfeit rate is almost unbelievably high, but the key point is that individuals aren't really affected by it. The coins are all 'good enough' that you are unlikely to ever have any rejected by a shop, so the end result is no-one cares about it. (Incidentally, it's actually harmful to check your own cash for counterfeits, since spending counterfeit money is a crime, but ignorance is an accepted defence.)
(I don't know where the buck stops. Do banks check for counterfeit coins and reject them from shop's cash deposits? I'm absolutely not trying to say that counterfeiting coins is a victimless crime, just wondering whether everyone shares the cost or whether it eventually catches up with one unlucky party)
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.
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.
What something is worth depends entirely on its context and available substitutes (aka. supply/demand), for example a generator isn't worth that much under normal conditions as people have the grid as a substitute.
After a hurricane or something else that removes the grid as a substitute the generator is worth substantially more.
Ask yourself how much you think a lion would pay for your gold ring, house, or anything else you think has intrinsic value.
The nature of trade incentivizes individuals to find resources that are less valued by one person and more valued by another. For example starbucks finds coffee beans from farmers who don't find them terribly valuable, and sells them back to consumers who find them much more valuable, especially in conjunction with their value adds. Coffee beans are worth different amounts to different people, only when we make a transaction do we start to discover price.
Yes, however Bitcoin is still not used very much for traditional goods-and-services trade. Many people are buying Bitcoin as an investment in the ecosystem. They see the value in Bitcoin technology, and believe that it is promising enough to increase in value.
The transaction bandwidth for Bitcoin is laughably small, the ability for bandwidth to be added is limited (see how long current block size debate has gone on), and transaction fees required to get placed into a block add substantial fixed fees that represent a large % fee for micro transactions.
If a Bitcoin microtransaction service ever hit it big, it would immediately cripple the entire network.
These aren't problems, they're potential solutions to problems. Bitcoin and Blockchains are solutions to specific problems in currency and trust.
So decentralizing those things that can be represented at their core as a ledger of transactions is very much a problem which blockchains solve.
By definition only publicly traded companies have a market capitalization. BitCoin is not a publicly traded company and therefore does not have one.
That's about 1/14th of an Uber. It's literally nothing on a global scale.
The value of all "bitcoin companies" is larger than the value of all bitcoins themselves.
there are very few economic and political problems that the blockchain can say nothing about.
That's just crazy talk.
The valuation of Uber means people believe Uber has future growth potential. Similarly, the high valuation of BitCoin companies means people believe BitCoin has future growth potential. Rightly or wrongly, I guess the future will tell in both cases. Obviously I think rightly.
That's just crazy talk.
Ok.