Snopes meets Mechanical Turk: Announcing Reality Check, a crowd-sourced smart contract oracle

When we started building the Reality Keys smart contract oracle in 2013, we assumed that most of the data people would want would be able to be pulled from existing data feed APIs.

But in practice we found that a lot of the most interesting things people wanted data for didn’t have reliable, trustworthy existing feeds that gave them exactly what they wanted. And where people have tried to use data feeds directly from the web, it has often worked out badly for them.

What we really wanted was the ability to just ask an arbitrary question, whether it’s about a sports result, a house burning down, or a smart contract having a critical bug in it that justifies letting the original developers back in.

At the same time, the world is fretting about Fake News, and the web in general is going through something of a crisis when it comes to judging the legitimacy of information. The smart contract ecosystem, with its easily created self-governing processes and organizations, seems like it has some potential to help, if we can give these contracts a concrete problem to cut their teeth on, and a way to pay them if they do it right.

In particular I wanted a place to experiment with Subjectivocracy. I discuss the concept of a Subjectivocratic oracle system my previous piece, Get the facts: Hard-fork all the things.

So we’ve built Reality Check, a system that crowd-sources the answering of arbitrary questions asked by humans or contracts. Our goals were as follows:

  • You or your contract can ask a question and get an answer to it.
  • People who give the right answer make profits.
  • People who give the wrong answer make losses.
  • Gas costs are reasonably low, particularly for correcting false information.
  • Resolution is cheap and reasonably fast for the typical case.
  • Resource-intensive resolution processes are possible, and are funded by people who are wrong.
  • The system for arbitration — the final word about what is true — can be chosen freely and easily switched. You can use something centralized, distributed or experimental-game-theoretical.

There is a detailed explanation in our documentation, but here’s how it works:

Rewards are offered for answering questions, but when you answer the question you must post a bond. To contradict a previous answer, you have to double the bond. Answerers keep doubling until one of them gives up, and the final answer is considered correct, unless someone pays a fee to the arbitrator contract, in which case the arbitrator’s decision will stand.

The arbitrator can be any contract you choose. Reality Keys provide a trusted arbitrator contract, which simply provides our own opinion on what happened. We say a bit about other models here.

If you gave the accepted answer, you get to scoop up the initial reward, plus any bonds from people before you who gave a different answer.

Reality Check is now live on the Rinkeby testnet. We built a Dapp to try it with. Go ahead and play with it, and let us know what you think.

If you have questions or comments, feel free to post them below or come and talk to us in our Gitter channel.