The Kleros-Realitio Oracle Explainer

Written by William George, Kleros Cryptoeconomic Researcher

With the launch of the Kleros-Realitio Oracle platform, today we bring you an all-encompassing explainer, delving deep into the tech behind it.

So, let’s begin.

When a Realitio user provides an answer to an oracle question, she stakes a bond on that answer. The initial person that provides the first answer to a question can determine the bond she wants to place. After each answer, a countdown period begins during which anyone can submit another answer. Challenging the current outcome of the oracle and providing a new answer requires submitting a bond that is at least double the bond that is staked on the current answer. If, after some submission, the countdown period expires without a new answer being submitted, the last answer submitted is considered the final answer.

When realitio users “add a question” they specify, in particular, a countdown during which new answers can be submitted that resets with each new answer, and they can contribute an amount of ETH as a reward that goes to the party that submits the final answer.

Parties who submitted answers that did not ultimately become the correct answer lose their bond. The person who submitted the “highest bonded correct answer”, namely the last person to submit the final answer, receives the bond(s) and the reward, if any, though an amount is deducted if someone else had submitted an answer in a previous round that turned out to match the final, correct answer (see answer takeover fees). Also, have a look at Realitio’s documentation for more details.

At any point, anyone can “apply for arbitration” to bring in an external arbitrator to resolve this process. This is where Kleros comes in, along with potentially other arbitrators (which arbitrator is responsible for a question is designated at the beginning by the question asker). To again quote from Realitio’s documentation:

“To request arbitration you must pay the arbitrator a fee. The fee may be quite high, and it will not be returned to you even if you are right. However, [if the current answer is ruled incorrect,] you will receive the bond posted with the incorrect answer. To make it profitable to request arbitration, you can increase your bond to the point where the person posting the incorrect answer will either give up, making your answer the winner, or post a bond that exceeds the amount you will have to pay the arbitrator.”

Namely, the arbitrator will either confirm the current answer, in which case that answer is the result of the oracle and the party who provided that answer receives the bond, or the arbitrator will invalidate that answer, provide another answer which is considered definitive, and the party that paid the arbitration fees receives the bond.

For this application of Kleros, as the successive staking of bonds already functions as a sort of appeal system, if Kleros is called, it jumps straight to the “last appeal”. Namely, a large number of jurors (currently 500) are drawn in the general court, and further appeal is not possible. The party that triggers the external arbitration in Realitio has to pay the arbitration fees for this, which might seem like it would be prohibitive. However, again, if the answer bond has doubled enough times, it will eventually become worth it to pay these arbitration fees to win that bond. Thus, Kleros acts as a court of last resort for Realitio and whilst rare, extreme situations are likely to make it to a Kleros ruling; however, in those rare cases a very large percentage of Kleros jurors are likely to be drawn. Moreover, the fact that any case could ultimately be arbitrated by Kleros incentivizes honest behavior in all Kleros-backed Realitio cases.

The Kleros Juror Side of the Oracle

From a Kleros juror’s perspective, the situation is not too different from other uses of Kleros. Jurors are asked to choose a true option among some collection of options. The answer that receives the most votes wins. Jurors that are incoherent with the winning answer lose a deposit in PNK, while all jurors that voted for the winning option split the arbitration fees and the lost deposits.

One important novelty in this application of Kleros is that questions may have more than two possible answers. Realitio questions can have answers that are binary, single-choice (one answer should be chosen from a list), multiple-choice (multiple answers may be chosen from a list), date, or number.

We have previously avoided using Kleros to address non-binary questions as situations where no option can be reasonably expected to get 50% of the vote can lead to tactical voting, unstable equilibria, and other pathological phenomena. However, oracles have an advantage compared to other Kleros use cases that makes these dangers less likely in this case: questions tend to be less subjective and, even if there are multiple options to choose from, one choice is likely to receive overwhelming support. We are currently conducting future research drawing from social choice theory to choose a voting system likely to produce just results in more subjective, non-binary cases.

Things to keep in mind when asking a Realitio question with Kleros as the arbitrator:

Ask questions which Kleros jurors could reasonably know the answer to:

The wisdom of the crowd can only go so far…

Ask questions that have unambiguous answers:

This question is hopelessly ambiguous - doubtless, historians would argue about the correct response, and the answer would heavily depend on the definitions of words like “democracy”.

In number-type questions, specify the amount of precision (the number of decimal places) desired in the question:

Note that the question specifies the desired number of decimal places.

In situations where Kleros jurors are asked to provide an answer that is binary, single-choice, multiple-choice, or a date, the juror experience is essentially that of drawing some choice out of a (finite) list.

Cases where the answer is a number are somewhat different, so we consider them in greater detail.

In many number-valued oracle cases, such as when estimating the price of an asset, it is not reasonable to talk about the “true” value beyond a certain precision. One might be able to defend either 1ETH=270.01 USD or 1ETH=270.02 USD, or even 1ETH=270.014 as “true”, considering that ether is traded on many exchanges at any given time.

As Kleros jurors in number-valued Realitio cases in this version must answer exactly the winning answer to be considered coherent, it is a problem if multiple, slightly different answers can be considered true. Our short-term solution to this is that any Kleros-backed, number-valued Realitio question should state its desired precision in the question. For example, in a question about the price of ether at a given time, the question might ask for the price rounded to the nearest dollar (or even to the nearest 10 dollars). Then, one can hope for a large consensus around a single value, even as more precise estimates might generate debate.

The question asker should carefully evaluate what precision she requires. On one hand, she should ask for a sufficiently precise answer for her needs; on the other hand, if she asks for too much precision it is likely that the system will not return a good result. Kleros court policies might specify a default precision that would apply to any number-valued Realitio case where the asker does not specify the precision in the question (e.g. to always round to the nearest integer). However, this default may be poorly adapted to the asker’s needs.

We have researched a more sophisticated real-value oracle that provides a more flexible experience which should be used in future releases.

A realitio user can “apply for arbitration” and pay a fee to send the case to Kleros.

Kleros jurors are asked to input a number. As indicated in the question, they round the number to the nearest integer.