Definition of an Oracle
In blockchain technology, Oracle is a source of information that allows variables from the real world to be incorporated into smart contracts.
Indeed, the blockchain does not allow the collection of data from external sources (outside world). This model is not viable because external content would have to be downloaded in a block via a third party. Thus, each time the blockchain would be downloaded, the external data would be called. If the latter were to no longer be available, this would compromise the blockchain.
Self-executing contracts (or smart contracts in English) are contracts that only execute if conditions previously set are met. This triggers an event on the blockchain, such as a transfer of value.
Oracle is responsible for providing external data enabling, or not enabling, the operation of dApps ( decentralized applications ) through the execution of smart contracts .
Usefulness of an Oracle?
Oracle makes it possible to add data from the outside world into a blockchain network. These oracles are third-party services that provide a lot of data such as temperatures, sports results, air delays, etc.
They serve as authority and truth. Depending on the information provided by the Oracles, the smart contract will fire or not. Remember that the blockchain cannot access data stored outside its network.
There are different types of oracles:
- Software Oracles: they manage the information available on the internet. Their sources are mostly websites. They make it possible to collect data such as temperatures, flight delays, product prices, etc.
- Physical Oracles: They send information directly from the real world. It can, for example, be by motion sensors or RFID chips which make it possible to know the location of an object.
Both physical and software Oracles are called Inbound Oracles. They make it possible to integrate data from the outside world into the blockchain, particularly through smart contracts.
Other types of oracles exist:
- Outgoing Oracles: They allow data from the blockchain to be sent to the outside world. For example, a transfer of value takes place on the blockchain, which allows the unlocking of a lock in the real world.
- Predictive Oracles: Augur and Gnosis are the precursors. They make it possible to confirm future results, in particular thanks to the wisdom of the crowds.
Reliability and security
Why trust an Oracle? To trust Oracles, it is necessary not to select a single data source. Imagine if this source were to be erroneous (hacking, error, manipulation…), then the blockchain would also be based on erroneous data.
On the contrary, it is preferable to select several Oracles so that the sources overlap between them. The information reported by the greatest number of Oracles will be the one chosen and added to the blockchain. It is then necessary to choose when creating the smart contract which Oracles will be taken into account.
For example: if we want Oracles to integrate the results of a football match into the blockchain, we will ask them to retrieve information from 30 reliable websites in the field of sports news.
It is also important to secure and make reliable this data. This is essential because, in the event of an error, there is no going back if the contract is executed, even if the data is false. These are challenges that the companies Oraclize or SmartContract must solve.