What are blockchain oracles? The guide that you need!
If you conduct a Google search via the term “blockchain oracles”, you will find the following quite comprehensive definition:
“Blockchain oracle is an agent who seeks and verifies information and occurrences in the real world, outside of the blockchain, to be used by smart contracts.”
From first sight, the definition seems quite understandable and straightforward. However, as you dig deeper, several questions arise! So let’s dive in!
What happens on the blockchain stays on the blockchain!
Due to their deterministic nature blockchains never interact with arguable events; in other words, there are no sensors to understand or even get information on any event outside of the blockchain, which is pretty much everything that happens around us! For instance, blockchain may never know the exchange rate for USD to Euro, or the weather forecast in Amsterdam.
But wait! Actually, this is the case with all types of closed systems/networks. They need external devices/sources for getting that information. For example, your awesome and all-knowing laptop that can be programmed for anything and access any kind of info through the global network can’t take photos, if it doesn’t have a camera.
The same is with blockchains. They need external sources that will provide them with data they can’t reach, such as price feeds for assets and financial applications, info for peer-to-peer insurance, random number generation for gambling, etc. These sources of truths are called blockchain oracles.
Blockchain oracles are centralized parties that supply the blockchain with data. Smart contracts or decentralized applications can’t request centralized applications to provide them with the data directly; it’s all up to centralized parties’ will. Even if a centralized party does decide to share data, because it's external, there is no way to know whether it's true or false. To put it simpler, if an external source provides information to the blockchain, the integrity and immutability of the whole system become at risk. The role of the blockchain oracles is to ensure that the external data is as accurate as it gets, and is provided in a timely manner.
At the end of the day, the integrity and solidity of a given smart contract rely on the quality of data provided by the oracle, if the contract is oraclized.
The process of integrating oracles into smart contracts is called oraclizing. There are public oraclizers available for top blockchains. They provide data on demand for a small fee. All you need to do is set up the data you want to get from the centralized portal and integrate a few calls to read the data from the oracles.
So let’s say we put an Oracle service, for instance, Oraclize, between the blockchain and the outside world. The Oracle service will be responsible for relating that consistently relaying data from the outside world onto the chain. For example, if you want to make an insurance contract that says “ I will pay you 20 Ether if your flight is delayed”, you will need a reliable way to know whether the flight was actually delayed or not to be able to operate that data in your contract code.
The concept of Oracles is not bound to a single, individual implementation. On the contrary, there are multiple ways to implement an Oracle service, but they all have the same general idea.
Why does Fasttoken need an oracle?
Our oracle will mostly provide data for the upcoming decentralized sportsbook. Why? Cause if the football match ends 2–0 in the outside world how will the blockchain know about it? It is impossible to create a self-executing contract on Ethereum as every contract call should be triggered by an outside event.
So if we want to get the results of the football match from the outside world, it will require us first to call a contract on the chain. That contract is going to have the knowledge of which Oracle service to use hard-coded into it. So we call the contract, and it will call the Oracle service. Now the Oracle service will be responsible for interacting with the outside world, getting the results of the football match in a reliable way and arranging it into a consistent format. The Oracle service will then to call the smart contract to provide the info.
Of course, our bright minded followers will criticize the irony of using centralized third parties in the world, while we continually promote the perks of decentralization and the lack of intermediaries. However, we hope that the thorough explanation and the examples provided above will prove that Oracles are necessary for the utilization of Smart Contracts. Trustworthy, real-world data sources can stay centralized, for now.