Have you heard about blockchain oracles? If you didn’t and wanted to know about them, then you have come to the right place.
Blockchain has the potential to change the world. But, it does require an ecosystem where it can communicate with the different services and solutions seamlessly.
Blockchain oracles let blockchain reach its true potential.
So, how does it achieve it? Let’s explore.
What Is a Blockchain Oracle?
Blockchain oracles are third-party service providers. They provide external information to smart contracts and act as a bridge for connecting the outside world of applications and services with blockchain.
By design, both smart contracts and blockchains cannot connect with the other world. In more technical terms, they are not designed to access any data that is off-chain(not on the network).
By bridging the gap, blockchain oracles play a crucial role and enable blockchain to have a proper way to access off-chain and on-chain data.
The ability to access the off-chain data also improves smart contracts’ functionality. It broadens the scope of smart contracts and their applications. This also means that smart contracts would not have that much impact if there were no blockchain oracles as it would not be possible for smart contracts to work with data outside the network.
In technical terms, a blockchain oracle is a layer of solution that verifies, queries, and authenticates data sources external to the network. Once it does all the operations, it then relays that information.
Also, the data that is transmitted by the blockchain oracle can be any data that is of value. For example, a healthcare system could request data pertaining to insurance with the help of oracles. In contrast, the food industry will want oracles to transmit information about the food supply chain.
To make sure that the oracles can work effectively, network resources need to be spent by the smart contract or its associated entities.
Blockchain Oracle Example
To understand how a blockchain oracle works, we need to go through an example below.
Let’s take two parties into play, Max and Viper.
Both Max and Viper love betting. That’s why they create a smart contract to have the best possible transparency in their betting process.
This time, they betted on when the vaccination for Covid-19 will be released.
According to Max, it will come in 2020, whereas Viper is being more cautious in his bet and thinks it will come in mid-2021.
They create a smart contract that has set the rules for the bet. However, to make the smart contract work on its own, it needs to extract the information from outer sources.
This needs to be done using an external source, and this is where Oracle comes in. Once configured correctly, the oracle will feed the data to the smart contract from time to time.
Once the betting deadline is over or there is a vaccine found for Covid-19, the smart contract will execute, altering both Max and Viper. The information will also be relayed to any other parties that registered for the bet to happen.
With the help of oracle, smart contact can provide an excellent solution where there are transparency and trust.
Different Types of Oracles
We can classify the blockchain oracles into different types based on the following points:
- Source → The origin of the data. Is it hardware or software?
- The direction of information → Is the data outbound or inbound?
- Trust → Does the data come from decentralized or centralized solutions?
Based on all of these three points, we can classify the oracles into six major types:
- Software oracles
- Hardware oracles
- Outbound and inbound oracles
- Decentralized and centralized oracles
- Human oracles
- Contact-specific oracles
Let’s go through each one of them below.
Software oracles are the oracles that take information from online sources, and that sends the information to the blockchain. Online information can come from any source, including websites, servers, and online databases. You are using the web as a source of information.
Software oracles come handy when it comes to supplying supply chain information to smart contracts in real-time. Other key use-cases for oracles, including digital asset prices, real-time traffic information, and so on!
Hardware oracles are oracles that interact with the real world using an interface. This means that if a smart contract needs a connection to the real world, it can do it with hardware oracle. So, if a smart contract needs to relay information from barcode scanners, electronic sensors, and others, they would need hardware oracle.
These types of oracles are excellent in converting real-world information to digital values. The best example for hardware oracle can be given in the food supply chain where if one type of food moves through the supply chain, then the information is automatically relayed to the smart contracts handling it and then the smart contract will take proper action based on the information.
Outbound and Inbound Oracles
Inbound oracles are those oracles that use external sources to transmit data to the smart contracts, whereas the outbound oracles are those that send the information generated by the smart contract to the real world.
A good example of an outbound oracle is a smart contract that sends an update if someone deposits money to his virtual address. A sensor sending updates to the smart contract is an inbound example.
Decentralized and Centralized Oracles
Centralized oracles are oracles that are controlled by a single entity. This means that they are sole providers for providing information to the oracle. Using centralized oracle can be a tricky situation as centralized oracle effectiveness is less compared to a decentralized one.
As for decentralized oracles, there are best used for public blockchains. There is no centralized authority here that controls the oracles, which means the data has multiple sources of truth. The data that is transmitted using decentralized oracles can be verified and trusted.
These oracles are designed to work with single, smart contracts. In this case, it would be necessary to deploy multiple contract-specific oracles if the developer decides to deploy multiple smart contracts.
In reality, contract-specific oracles are not worth the time and effort required to maintain them. They are impractical and should only be used for a particular use-case.
Individuals can also act as oracles. In this case, the chosen individual needs to be highly qualified personals that can act as oracles for the given field.
The human oracles are responsible for researching the information and its authenticity before the information is translated and fed into the smart contracts. Cryptography ensures that the right person is accessing the smart contract.
Importance of Oracle
From the above example itself, it is easy to understand the importance of oracles. Oracles are there to stay. It enables smart contracts to function as it cannot do it without any data source. In the era of big data, it is important to have seamless data transfers. If it is not provided, then smart contracts use cases will become limited.
Also, smart contracts’ importance impacts oracle importance. With smart contracts’ ability to work with real-world applications, oracles can open up many opportunities.
Reasons Why Dapp Cannot Communicate With the Real-World Without Oracles
Oracles are necessary for another big reason as dApps cannot communicate with the real-world without oracles. But why are dApps not able to do it? That’s because the formats are fundamentally different.
Blockchain is an append-only solution where the transactions are deterministic. The transactions get appended one after another in sequential order.
For blockchain to access data outside the blockchain, there would be a requirement for non-sequential data points, which is impossible in the case of blockchains.
So, the blockchain immutability feature limits its reach and flexibility.
When it comes to real-world off-chain data storage, there is non-sequential, non-deterministic data that means that the events are stored according to their purpose rather than any specific sequence.
Oracles help blockchain to talk with the off-chain world data and make sense about it. Without oracles, it would not be possible for the blockchain to have meaningful communication with real-world applications, services, and data sources.
Problem With Oracle
Oracle is not free from problems. Infact, the question arises from the fact that oracles cannot be compromised. This is important as the smart contracts rely on the data provided by the oracles.
Faulty or wrong data sent by an oracle can compromise smart contracts.
Unfortunately, it is yet not possible to solve this problem as oracles are not part of the blockchain consensus method.
This is where the trust comes in. Oracles can only function properly if there is proper trust among the involved parties.
This leads us to the end of our blockchain oracle article. So, what do you think about oracles? Do you think there is an alternative to it? Comment your theories below!