There are many concepts and technological advancements to take note of in the blockchain world. Oracle services are of great interest right now, as they allow for more complex smart contract operations. Building oracle services on the blockchain is challenging, yet the demand for services will only increase over time.
At their core, a blockchain oracle can best be described as a third-party service providing smart contracts with real-world information. Smart contracts, which are deployed on the blockchain, cannot interact with data outside of their native blockchain. It limits their appeal in a significant manner, yet blockchain oracles can solve this problem with ease.
Creating bridges between the real world and the blockchain is an essential step in this technology’s evolution. Providing access to off-chain data is essential when it comes to acquiring price information, among other things. As smart contracts are contractual agreements, obtaining as much relevant data is of the essence.
Contrary to what some may think, a blockchain oracle isn’t a data source itself. Instead, it queries, verifies, and authenticates external data to be used on the blockchain. Data for these oracles can be sourced anywhere globally and can take many forms beyond traditional payments. An oracle makes blockchain contracts “smarter”. However, doing so comes at the cost of paying network resources, as nothing is free in the blockchain industry.
Table of contents
How Does it All Work?
With the help of a blockchain oracle, anyone can bring any data or information to the blockchain. For example.. if two people were to wager on the outcome of a real-world event, there needs to be a system to keep track of the wager. Rather than doing so on paper, a blockchain can serve as a better and more transparent option. It can also allow for more people to weigh in on this wager, either for prestige or to make money.
With the help of smart contracts, all participants lock funds in a contract that will release funds when certain conditions are met. As the contract itself can not acquire the necessary data to derive an outcome, it needs an oracle for external information.
In most cases, an oracle will query a trusted API – or multiple APIs – to validate the result of the wager before submitting it to the contract. Due to the transparent nature of blockchain technology and smart contracts, there can be no disputes over the information being relayed by the oracle or its outcome.
Different Types of Blockchain Oracles
As there are numerous options to explore in the blockchain world, it’s not entirely surprising to see different types of blockchain oracles come to market. Every oracle can have different qualities to the next, although developers can mainly categorize them into six main categories.
Despite these categories, there are still several aspects to consider.
- Where is the data coming from?
- Is the oracle inbound or outbound?
- Is the oracle centralized or decentralized, as it affects their trust rating?
Singular oracles can span multiple categories, as there are no constraints as to how simple or complex one can make this service. It is often better to span multiple categories, allowing for building more complex smart contract-based services and products.
The most interesting form of oracle is the software variety. With the ability to interact with various online sources of information, a software oracle is often the first to bring real-world data to a smart contract. These oracles can hook into any website, server, or database that is found on the World Wide Web.
A crucial aspect of this approach is how information can be transmitted from the oracle to a contract in real-time. Time is often essential when dealing with smart contracts and removing any delays is vital. For basic smart contracts – or solutions such as prediction markets or decentralized exchanges – software oracles will usually get the job done.
Hardware Blockchain Oracles
As is often the case in the world of digital technology, hardware-based solutions can go beyond what the software is capable of. For blockchain oracles, that situation is no different. Some smart contracts will require information from the physical world that may not be accessible online right away. Think of barcode scanners, sensors, and any other devices capable of reading, transmitting, or storing information.
In essence, a hardware oracle will translate real-world events information into a language that smart contracts can read and process. Shipment tracking, for example, is an interesting use case. If a package or truck passes through a certain facility, sensors can record the information and send it to a smart contract to execute that information.
For projects aiming to disrupt logistics and supply chain management through blockchain technology, hardware oracles will prove essential As the advent of the Internet of Things is upon us, there will soon be billions of “smart sensors” to tap into for information.
Inbound And Outbound
It may not seem like it initially, but not all blockchain oracles will send information to a smart contract. It is equally possible for data streams to flow in the other direction. Outbound solutions will send information from a contract to the outside world. Smart locks are a valid example.
Picture a physical locker people can rent to store things or pick up mail from. Every interaction with the locker requires payment or authentication. Powered by smart contracts with inbound and outbound oracles, the system can record when a payment or authentication is submitted. If valid, the contract sends information to the mechanism to unlock the smart lock.
Centralized vs Decentralized Blockchain Oracles
In an environment where decentralization is the main objective, there can be room for centralized oracles. While not a favorable solution for everything, it can be worthwhile to let single entities control an oracle. Designated providers of information for a smart contract can be viable, assuming the provider is trustworthy. Even then, it is often better to tap into multiple data sources to err on the side of caution.
Relying on one source of information can prove problematic for multiple reasons. For example, the data provider may submit wrong information to the network and contracts. Additionally, a central point of failure can be taken over by malicious people looking to disrupt operations. It is not a good system unless one can maintain the centralized oracle in a controlled environment. Even then, it remains advisable to opt for multiple data sources.
Decentralizing the oracles is the intelligent approach but can also incur more costs and higher usage of network resources. Unlike with a centralized version, the objective is to avoid counterparty risk and improve the reliability of the transmitted data. By querying multiple sources for information and data, an oracle can guarantee the validity and accuracy of the presented information.
It is equally possible for blockchain ecosystems to provide decentralized oracle services to other ecosystems. Doing so allows for more complex structures, products, and services to be created.
In theory, there is no limit as to how many smart contracts can hook into a centralized or decentralized oracle. However, sometimes it can be necessary to create a single-purpose oracle capable of interacting with one specific contract. A sensible approach, although one that will create logistical concerns when multiple contracts are deployed. They will all require a dedicated oracle, which is far from ideal.
The big downside to a single-contract oracle is how it can be costly to run and require much maintenance. It is not a practical approach to extracting or broadcasting information from and to the real world. The upside is building such a specific oracle for one use case, giving developers the flexibility to make it as simple or complex as necessary.
Human Oracles Are An Option
It may seem a bit strange to talk about human oracles in the blockchain context, but individuals can fulfill a similar role. An individual with sufficient knowledge in a particular field can act as an oracle by researching and verifying the authenticity of the information from multiple sources.
As a human, translating the information to make it readable by smart contracts can pose some challenges, making this option less favorable. On the other hand, humans can verify their identity through cryptography, reducing the chance of a culprit faking their identity.
Don’t Ignore Oracle Drawbacks
Despite all the benefits oracle services may offer on paper, there are still potential drawbacks to take into account. When a smart contract executes a decision via data provided by an oracle, the Oracle Problem can come into existence.
For those unaware, the Oracle Problem pertains to the handling of compromised oracles. Should such a situation occur, the smart contract the oracle interfaces with is also at risk. This trust conflict can be challenging, if not impossible. Solving this issue has stumped cryptographers and developers for years now but there is no viable solution on the market yet.
There are many things to like about the concept of blockchain oracles, although it remains to be seen if they will ever gain widespread adoption. Depending on how the oracle is implemented, it can serve as a viable solution to make smart contracts more versatile and useful. However, no one should overlook the Oracle Problem either, as it remains a pressing issue capable of holding back the entire industry.
Despite the potential downsides, it is essential to achieve communication between the real world and smart contracts. If blockchain technology is to hit mainstream adoption levels, something will need to change to make this industry more appealing. Decentralized oracles are the clear way to go, although there is room for improvement regarding their implementation.