1. Types of Oracles & Oracle Usage
The blockchain can record not only the information about currency transactions between parties but also about any agreements between them — the so-called smart contracts, best-known thanks to Ethereum (ETH). The distributed ledger allows for storing information concerning contracts without the necessity of traditional legal procedures, but in order to close a contract, you need to have information on how its conditions are conducted. Usually, this information occurs outside the blockchain network. This is where the oracles come in.
For example, two people (let’s call them bettors) make a bet on the prediction market (These types of markets are developed by the Augur, Amoveo, Bitcoin Hivemind blockchains and others). One bettor puts $100 claiming that the price of Brent oil per barrel by the end of the year will be above $50, the other — $ 100, that is lower. By the end of the year, the winner will get $200, receiving his own and the opponent’s bet.
A smart contract is registered on the blockchain network. To determine the winner by the end of the year the system will need information about the oil price rate. However, such data are generated not inside the blockchain but on the commodity markets. They are published on financial websites like bloomberg.com, finance.google.com, finance.yahoo.com. To extract the data and transfer it to the blockchain, we need oracle technology.
There are two main types of oracles:
- Automatic oracles
- Human oracles
While automatic oracles use only machine resources, human oracles rely on the opinions of network participants.
2. The Main Problems of Automatic Oracles
The simplest example of an automatic oracle is a device that makes measurements and registers the results on a network. For example, a thermometer connected to the network. Such kind of oracle can be very reliable. Even if a malfunction appears in one device, the reliability of the system can be increased by duplicating this device multiple times. However, this oracle is far from being a multipurpose one. Every specific task requires its own specific device.
More multipurpose oracles can be those that represent intelligent data retrieval systems on the Internet. For example, bots that visit financial websites to extract information about exchange rates, company capitalizations, etc. The Internet contains an enormous amount of information about the world, but extracting process is not such an easy task as it may seem at first glance.
Problem #1. Trusted Feeds
Websites should contain reliable data. If you need to find something very popular such as the price of oil, then it will not be a difficult task. In the meantime, for example, if you need to find the turnover or dividends information of a medium-sized company from Eastern Europe or Asia, then you may face difficulties as even some leading financial websites may contain various mistakes. The other type of information could be even harder to verify authenticity.
Problem #2. Pattern Recognition
Not all tasks are numerical after all. For example, the prediction markets can handle such bets as “Will the next Chinese leader be hairy or bald?” In this way, the oracle will have not only to track the change of leader but also make a conclusion about their appearance from photos or otherwise. It is unlikely that someone would dare to seriously risk money in such a dispute, trusting in an automatic oracle these days.
Problem #3. The Difficulty of Error Correction
Since the oracle may be wrong, there is a need for a mechanism to identify and correct these errors. In turn, such sort of mechanism requires the participation of people, questioning the automaticity of the oracle. If the error is immediately visible to network members, they can notify developers about it in the hope that developers will improve the algorithm. However, the problematic smart contract will have to either be closed “manually” or be considered as invalidate. If the error still remains unnoticed for a long time, then the smart contract will be closed erroneously. For example, bets may go to a participant who incorrectly predicted an event. Such an incident will definitely hit the network’s reputation and there is no guarantee it will not happen again.
So, the main modern problem of automatic oracles is their non-universality. They can perfectly cope with simple tasks such as estimating the price of oil or the results of a football match, but no more. There are plenty of tasks where even the most advanced artificial intelligence is second to a human. Thus, it is unwise to exclude a human from information retrieval.
3. Human Oracles as a Realistic Alternative
The second way of the oracle creation sacrifices automation in favor of universality, allowing people to take part. Universality is especially important in prediction markets, where, theoretically, any question can be a subject of betting.
It goes without saying, that it is impossible to replace the oracle with just one human (let’s call him a reporter) for any use case. If smart contracts are deployed frequently, then the reporter will not be able to cope with the amount of work, or, in some cases, the reporter might have not enough competence. Moreover, if a lot of money is at stake, the reporter can be bribed to lie. Therefore, any revealed corruption case discredits the network.
More promising is the idea of an oracle, which contains many reporters. They may have different competencies in different matters and provide answers only where their competence is sufficient. This still does not guarantee the integrity of the answers and requires additional measures of protection, though.
In the second part, we will discuss the way how human oracles are implemented in some real blockchains — Chainlink, Augur, Bitcoin Hivemind, and Amoveo.
Image by icons8.