
A Decentralized Lie Detector - joeykrug
http://www.augur.net/blog/a-decentralized-lie-detector
======
mdbco
This consensus algorithm looks pretty good, but it seems it could get into
trouble in cases where the distribution of outcomes is multimodal. One thing
that is mentioned is that users would be reporting on several events
simultaneously (let's say _k_ events), but it seems entirely possible that
there could be strong consensus among _k_ -1 events, but multimodality in the
reported outcomes for the _k_ th event, making it very difficult to see who is
wrong and who is correct for that event.

I know that Augur is planning to allow people to report event outcomes as
"invalid", and that might clear up some of these cases, but what about an
event where the outcome initially appears to be objective, but after-the-fact
it is unclear and open to interpretation, resulting in two distinct camps of
reported outcomes (and hence multimodality)? Perhaps one solution would be to
simply declare events with strongly multimodal properties in the distribution
of reported outcomes as invalid, and thus avoid the somewhat arbitrary
decision where one mode would be declared the "consensus" by the algorithm,
costing reputation to those who reported the other mode as the outcome.

~~~
joeykrug
In events without a clear outcome (say greater than 65% certainty, this is a
tunable parameter) there's an audit system where a different group of
reporters is asked to answer the question. The idea is that they'd notice the
extreme multimodality of the last group who reported on it, and in self
interest of preserving their reputation, report an "invalid" outcome.

------
wyager
This doesn't address Sybil attacks.

Bitcoin is unique in that it presented the first viable decentralized solution
to Sybil attacks (via proof-of-work).

To leverage that solution here, it would require that only people who
successfully solve the proof-of-work puzzle are able to submit statements to
the "decentralized lie detector", otherwise I could just spin up a billion VMs
to spread the lies I wanted.

The only other solutions to this problem are centralized, a la government
identification.

That said, the math is certainly cool; I just doubt it's very useful in a
decentralized system.

~~~
jewel
People have suggested proof-of-work as a way to stop spam. Legitimate users
wouldn't notice if their computer spent a few seconds generating a proof in
the background as the email is being sent out. The only problem is that
spammers have access to vast amounts of computing power in the form of zombie
PCs.

The reason proof-of-work worked for bitcoin back when an army of zombie PCs
could have legitimately controlled 51% of the network was that the rewards for
a 51% attack were far less than just doing legitimate mining. I think that
setting up a system similar to bitcoin won't work when there aren't the same
financial incentives to keep the miners honest.

P.S. Isn't the PGP web of trust also a decentralized solution to Sybil
attacks?

~~~
david-given
This has been done; it's possible to exploit the SMTP rules to force the
client to do proof-of-work before the server accepts the email. What you do is
reply to the client's first connection with a temporary failure; this forces
the client to cache the message locally and resubmit. On the client's second
connection, you accept the message.

It's called greylisting, and it works really well as a cheap and easy spam
prevention mechanism. I wrote an implementation and used it for years as a
first-line-of-defence; it let me use a crappy little 32MB ARM box as an SMTP
server. (<plug> [http://spey.sf.net](http://spey.sf.net) </plug>)

------
pards
Something isn't necessarily true just because the majority of people believe
it to be true.

At one point in history most people believed the world was flat.

~~~
joshuapants
Which point in history was that?

~~~
joeykrug
;) --- idea is that truth is a schelling point

------
gzur
That page loads but doesn't render for me (Chrome 4.x/FF 36) ... I feel so
excluded.

    
    
      Uncaught TypeError: Cannot read property 'in_china' of undefined

~~~
bjackman
Same here

TypeError: $S.global_conf is undefined
blog_editor-8c9dc8f38e8dff53f0a4430e9075aaca.js:35040

"Invalid App Id: Must be a number or numeric string representing the
application id." all.js:61

"FB.getLoginStatus() called before calling FB.init().

[http://www.motherfuckingwebsite.com/](http://www.motherfuckingwebsite.com/)
is looking better by the day

edit: wow I'm counting over 50k lines of JS in this page.. I think it's this:
[https://github.com/craigcollie/Bobcat](https://github.com/craigcollie/Bobcat)

This makes me feel sad

------
LukeFitzpatrick
I think this will have multiple applications for various devices in the
future, not only subject to Bitcoin.

------
justbecause
Interesting, I wonder how this could be used in a consensus smart contract.

~~~
diminou
Smart contracts can use oracle systems to get consensus on info from the
outside world. So a smart contract normally can't communicate with anything
besides its internal state, but with Augur they can get info about outside
events.

One example of how this could be used (and our primary focus) is on prediction
markets using the oracles to report on the outcomes of events after they
occur. (Imagine a decentralized InTrade)

