Are you already using applications that run on the blockchain (dApps)? Probably not many people do. They are still using centralized applications, and that makes sense, because with such applications more is possible. But that is something that blockchain Oracles should change. Although that is not at all easy yet, and that is because of the Oracle problem. In this article we'd like to explain to you what the Oracle problem is, and how blockchain Oracles should make using dApps a lot easier.
What are blockchain Oracles?
In blockchain technology, an Oracle is an information source that allows real-world variables to be integrated into smart contracts.
This is because blockchain does not allow data to be collected from external sources (outside world). We also call this off-chain data because it is data that does not come from the blockchain. The data that is already available on the blockchain
is called on-chain data. It is often difficult to get off-chain data onto the blockchain and to transport on-chain data to the outside world.
However, the model of delivering external data to the blockchain is not viable because the external content would have to be uploaded into a block through a third party. So, every time the blockchain is downloaded, the external data is invoked. If the external data became unavailable, it would compromise the operation of the blockchain.
Therefore, it is important that the external data is available at all times, in order for a blockchain to always work. The Oracle is responsible for providing the external data that can make decentralized applications (dApps) and smart contracts work on the blockchain.
What are smart contracts?
Smart contracts are contracts that are executed only when certain, predetermined, conditions are met. This triggers an event on the blockchain, such as the transfer of a certain number of crypto coins. An awful lot is possible with smart contracts, and they are now mainly used on the Ethereum
blockchain. However, there are more and more blockchains that work with smart contracts.
Decentralized applications are applications that run on the blockchain. Ethereum is also a popular blockchain for dApps, given the structure and technical operation of the blockchain. However, dApps could be used much better if off-chain data could also be sent to the dApps. If this is not possible, it will be difficult for dApps to replace the current and therefore centralized applications.
What is an Oracle used for?
The Oracle allows data from the outside world to be added to a blockchain. These Oracle are third-party services that provide a lot of data such as election results, weather conditions, results of sports competitions and flight delays. There are an awful lot of different types of data that could be provided by an Oracle.
They act as authority and truth. Depending on the information provided by the Oracles, the smart contract will be triggered or not. Remember that the blockchain has no access to data stored outside its network.
There are several types of oracles:
- Software Oracles: they manage the information available on the Internet. Their sources are usually websites. They can retrieve data such as temperatures, race results or flight delays from various sources. An example of a software Oracle is Chainlink; they actually provide data that is available on the Internet.
- Physical Oracles: they transmit information directly from the real world. For example, they can be motion sensors or RFID chips that allow the location of an object to be determined via GPS.
Physical and software Oracles are called Incoming Oracles. They allow data from the outside world to be integrated into the blockchain, particularly via smart contracts.
However, there are also other types of Oracles:
- Outgoing Oracles: they make it possible to send data from the blockchain to the outside world. For example, a transfer of certain values takes place on the blockchain, which can unlock a "lock" in the real world.
- Predictive Oracles: Augur and Gnosis are the precursors to these types of Oracles. They allow for confirmation of future outcomes, especially through the Wisdom of Crowds. Indeed, it is often the case that if a large group of people think something will happen, it will happen that way. So, this is what we call the Wisdom of Crowds.
Reliability and security of Oracles
The reliability and security of Oracle are incredibly important. Because how can you be sure that the data provided is reliable? We also call this the Oracle problem. Many blockchains or blockchain projects struggle with the Oracle problem, although there are some projects that claim to have the solution in hand.
To trust Oracles, it is necessary not to choose a single data source. Imagine that this source provides wrong information (this could be through hacking, an error or manipulation), then the blockchain would also be based on wrong data. This could cause users to move away from the blockchain because it is not usable.
It is, therefore, preferable to select several Oracles so that the sources can cross-check each other. The information provided by the largest number of Oracles is chosen and added to the blockchain. It is then necessary to choose which Oracles will be taken into account when creating the smart contract.
Suppose we want Oracles to integrate the results of a soccer match into the blockchain, we ask them to extract the information from 30 reliable sports news websites. If 27 websites indicate that FC Barcelona – Real Madrid ended in a 2-0 win for FC Barcelona, and three websites indicate a different result, the 2-0 result is assumed to be true.
It is therefore important that this data is secure and reliable. This is critical because, in the event of an error, there is no going back if the contract is executed, even if the data is incorrect. This is just how the blockchain works, and it creates problems that Oracle crypto projects are trying to solve.
Oracle crypto projects
There are several Oracle crypto projects that deal with blockchain Oracles. They try to provide external data to blockchains and solve the Oracle problem with it. The best-known projects that do this are Chainlink, Augur and Gnosis. There is a big chance you‘ve heard of these projects, as they also have their own coin/token that is available at the exchange of Coinmerce
With Augur and Gnosis, it is possible for users to set up a prediction market. This is a kind of bet, in which users can participate. For example, someone can set up a prediction market for the election results. Winners of the prediction market can then win tokens with this.
Wisdom of Crowds is used here. This means that, based on the expectations of the participants, the possibility is calculated that something will actually happen like this. With the expectations of a large group of people, these crypto projects try to generate a value that they can deliver through blockchain Oracles.
Chainlink is a project that wants to make smart contracts available to the whole world. They do this by providing external data to the blockchain. This data is provided by different nodes, and then Chainlink looks at which information is correct. Then the correct information will be delivered by the Oracle.