Blockchain oracles are important instruments that allow blockchain networks to acquire information from the outside world. Similarly to how blockchain bridges enable cross-chain communication, oracles facilitate off-chain-to-on-chain transfers of information. Oracles help unlock the full potential of smart contracts and increase the range of applications that can be developed using blockchain technology. And to keep with the spirit of decentralization and reduce the reliance on a single source, an oracle network infrastructure is often employed.
What are oracles and why do we need them?
While blockchain networks are incredibly good at facilitating internal communication between their members, they generally lack the means to natively support communications outside the network. We’ve already talked about the challenges surrounding cross-chain communication and the different approaches in addressing them. Off-chain-to-on-chain communication is another area where blockchain networks have to rely on external tools. So why is that?
Well, blockchains are designed to be deterministic, meaning that every node has to always be able to replay every transaction that’s ever occurred on the network and produce the same result, which can only happen if the underlying data remains unchanged. However, because of this requirement, direct interactions between blockchains and external APIs are essentially impossible.
To illustrate why this is the case, let’s say that a smart contract needs to access an external API to acquire Ethereum price data needed to execute a transaction. If we then try to reproduce the same transaction using information from the same API, we run into a problem – the data would have changed based on the real-world price movement, giving us a different outcome. Not to mention that there’s always the risk of the API being hacked or compromised in some other way. All that means that acquiring off-chain data directly via external APIs is not an option.
Oracles present an elegant solution to this problem. An oracle essentially creates an additional layer that can connect to external APIs, gather information from them and verify the veracity of that information. Perhaps most crucially, after the information is verified it is submitted to the blockchain ledger and stored there as an immutable record. In that form, the information can be used for on-chain operations and the oracle makes sure that the data is updated regularly.
Notably, oracles can also be bi-directional, meaning that they can also be used to transfer data from the blockchain to the real world.
The oracle problem
It’s clear that oracles are a key component of the blockchain ecosystem that enables many real-world applications of the technology. However, they also have a flaw that is known in the blockchain circles as ‘the oracle problem”.
The crux of the issue is that relying on a single oracle as a data source clashes with the core tenet of blockchain technology – decentralization. In addition, relying on a single data source compromises the security of smart contracts – if the oracle is hacked it could be used to feed false information to a smart contract.
Using oracle network to solve the oracle problem
You can solve the oracle problem by using a decentralized oracle network to guarantee that there’s no dependence on a single oracle or a data source. Perhaps the most prominent provider of oracle network infrastructure is Chainlink.
The Chainlink model hinges on decentralized oracle networks, or DONs. A decentralized oracle network in Chainlink in a network that is formed and maintained by a committee of cooperating Chainlink nodes. These nodes can call different APIs and then communicate with each other to aggregate the gathered data before submitting it on chain. And because the aggregated result is submitted via a single transaction, this approach is also very cost effective.
In addition, many Chainlink DONs go even further by incorporating three layers of decentralization – at the data source, individual node operator and oracle network levels. This approach further reduces the risk of a single point of failure.
Blockchain oracle applications
Blockchain oracles come in different shapes and sizes depending on the functions they are designed to perform. The most well-known type of blockchain oracles is the input oracle (also referred to as ‘inbound oracle’), which supplies blockchain systems with off-chain data. But as we mentioned earlier, the connection can work in both directions, so information can be transferred from blockchain to the real world. Oracles designed to facilitate those types of transfers are known as output, or outbound, oracles.
Apart from these, we also have cross-chain oracles, which transfer information between different chains and, in doing so, help improve blockchain interoperability. There are also oracles known as ‘compute-enabled’ oracles. Those are particularly interesting, as they can perform off-chain computations and submit the results on-chain.
The variety of oracles and oracle networks speaks of the versatility of the technology and gives an idea of the variety of use cases it can support. Let’s examine some of those in more detai.
Decentralized finance is one of the most proponent Web3 trends of the past few years and with good reason. But in order for DeFi to reach its full potential, many DeFi services rely on data from external sources, be it off-chain or on-chain. This where an oracle or a decentralized oracle network truly shines.
Web3 gaming is still in its infancy, but it’s already starting to show some promising results. The area of fantasy sports, in particular, is looking as a great fit for Web3 technologies. However, fantasy sport games are typically designed around the actual performances of real-world athletes, which means that they are reliant on off-chain data. With the help of oracles, such data can be gathered and sent out securely to a blockchain, where it can easily be accessed by a fantasy sports dApp.
Oracles could be a key component in Web3 insurance products by sourcing real-world data to be used by smart contracts designed to verify whether claims are legitimate. Furthermore, outbound oracles can then relay the results of that verification back to the real world, which could then be used to determine payout to claimants.
Oracles can also be used to connect legacy enterprise systems with blockchain-based solutions. On these pages, we’ve already examined the role that blockchain technology could play in Industry 4.0 applications such as smart factories. In a smart factory scenario, the sensors feeding data to a blockchain-based database actually serve as hardware oracles that connect the blockchain system with the real world.
And if you find Industry 4.0 applications a tad futuristic, there are plenty of areas where blockchain oracles are readily applicable. The perfect example of this is the supply chain industry, which could benefit immensely from integrating Web3 solutions for tracking goods verifying provenance, combating theft and forgery. And, once again, that crucial connection between blockchain and the real world has to be facilitated by oracles.
Those are just some of the possible applications of blockchain oracles. In fact, their ability to connect blockchain networks with the real world can be useful in a much wider range of use cases and could even inspire some creative and novel uses of the technology. And for all those reasons we can safely say that oracles play a crucial role in unlocking the full potential of Web3.