Ideology and oracles


So… I had a meetup on AE a few days back and we had a really good discussion about oracles with the audience.

Some of the following things were brought up, and I would love to hear your opinions on that:

  • What if an oracle is lying (let us say that this particular Oracle does not care about reputation or the something at stake problem, he just wishes to constantly lie, as he was designed to do so)? Would it be his choice to do so?
  • What if the Oracle isn’t lying, but is mistaken in his judgment? A good example is a football game and the misjudgment of a referee (for the sake of discussion, lets put consensus aside - we want to know what do we do in that case). Is it ok?
  • Do we have to have a consensus between oracles? Wouldnt building layers are just vertical (rather than the desired horizontal) scalability?
  • How do we (humans) know that the oracle is telling the truth? Let us assume, for the sake of discussion, that there is only one oracle telling the temperature in Kansas. How do we know it is 25 and not 25.1?

Those are more of ideological questions, so all comments are welcome =)


Hey @serejandmyself,

Indeed, those are ideological, and not technical questions :slight_smile:

Some of them are answered here:

Others are answered here:

It seems like many æmbassadors are asked those same questions during their meetups :slight_smile:



Hmmmm… I’d be happy if you quoted me wrong, but I did not see the answers on those topics to the questions =)

In fact, the answers are given on what is going to be on either (a) the protocol level or (b) economical incentive level…

We still missing an answer that would solve the above issue. I am totally in agreement with one of the users on the forum that ML (with all the other incentives) is the only solution to this. But of course, then we tackle into the problem of “free choice”.

I would love to see some research work in that direction, if it exists. As I believe that this is the only solution to the issue (IMO of course).

The answers that were given by me during the meetup, are actually similar to what we have over the links above. But, once again, ideologically that still leaves us with questions unanswered.

I truly believe that if don’t try, then we will never know the answers. And hence AE has this thing more than correct - trying, doing, solving :smile:


hey serejandmyself,

these are core questions regarding oracles and every designer faces them. Part of the problem is that “oracle” means different things in different blockchains and there is no common well known definition.

We enabled to oracle to be bridge between external well known source of data and the blockchain. So, e.g. for football it can be FIFA website, for stocks bloomberg, for news some news channel. Of course you can proxy data from any source.

The tricky part is: how news channel knows what is true? Maybe they are manipulated as well. In real life, we have access to tens of news sources, TV, internet, radio, friends, and we make some judgement about the event that is reported.

It will be similar with our oracles. Either you trust one provider (e.g. FIFA organisation, which makes sense, as the result of the match is what they say, not what really happened. It is private company and they run the show) or you implement logic that lets you mimic real life experience.

You can have a contract that interprets the data from various sources and decides whats the output.

You can also have a contract that “displays” multiple possibilities and lets users decide what is true. This is very similar to prediction market - in case you add crypto incentive layer in the contract.

With the FIFA example, it is visible here, how imperfect solution it is - what if there were 5 goals shoot, but referee accepted only 4? Users could express their disappointment and point out maybe malicious referee by voting for another team success. But that is not binding and your business use case may need official result.

To conclude, we gave in our protocol basic bricks to build solution suitable for your needs.
You may need “branded” data or you may need consensus between oracles. The solution exists in custom contract layer.