What are Oracles? Smart Contracts, & “The Oracle Problem”

TEEX
5 min readAug 20, 2019

--

Smart contracts running on blockchain networks have significant potential to increase efficiencies and reduce transactional costs across an array of industries. Smart contracts effectively minimize counterparty risk and provide transparency, but they still face several limitations to their capacity.
The growing need for external data flowing into blockchains and, by extension, smart contracts has led to debates and innovation around Oracles. Oracles are data feeds from external systems that feed vital information into blockchains that smart contracts may need to execute under specific conditions. The growing need for oracles represents the continued expansion of blockchain systems into practical and real-world use cases, where accurate data is crucial.

What are Smart Contracts?

Smart contracts are a self-operating computer program that automatically executes when specific conditions are met.

Smart Contracts = Trustless Contracts

With smart contracts, you can share anything of value, among strangers in a conflict-free transparent way.

You can also think of smart contracts as a Blockchain based vending machine. Just like vending machine are configured to take in dollars to dispense your choice of item, smart contracts use ether as a fuel to execute code based on pre-configured rules.

What is Oracles?

The notion of oracles — even decentralized oracles — has been around for years and continues to fuel debate about how to implement them and whether they can be trusted.

Oracles retrieve and verify external data for blockchains and smart contracts through methods such as web APIs or market data feeds. The type of data required by smart contracts can include information on price feeds, weather information, or even random number generation for gambling. Leveraging oracles consists of querying the data source for specific information and subsequently connecting to that source to interface between the blockchain and the data feed. As a result, smart contracts can execute based on the particular information flowing from the data feed.

Data feeds in real-world markets and web APIs are usually not deterministic like blockchains and smart contracts. Oracles act as a bridge that can digest external and non-deterministic information into a format that a blockchain can understand and execute particular conditions with. Oracles can even be used for N-of-M multi-signature transactions to reach consensus on which transaction to sign, in relevant scenarios.

Oracles form the basis of platforms like Augur, which is a decentralized prediction market. However, Augur is more representative of a complex oracle itself that functions as a data feed based on the “Wisdom of the Crowd” where participant behavior effectively acts as the data source. Augur also utilizes oracles for reporting the correct result to prediction markets with an incentive structure driving honest reporting.

There are several forms of oracles including:

  • Hardware Oracles
  • Software Oracles
  • Consensus Oracles
  • Inbound Oracles
  • Outbound Oracles

Hardware Oracles are sensors integrated with tangible physical objects. Primary examples would be in supply chain tracking with the use of RFID tags for feeding data like environmental conditions of products to the blockchain.

Software Oracles are the most common form that pull data from third-party sources such as web APIs and can include real-world information like flight statuses and weather data.

Consensus Oracles represent a step towards decentralized oracles and rely on aggregating data from several oracles with proprietary methods for determining their authenticity and accuracy.

Inbound Oracles reflect “if this happens then do that” scenarios associated with software oracles such as “if this price is met by an asset, then trigger a sell.

Outbound Oracles allow smart contracts to send data to sources outside of the blockchain network they exist on and are also software oracles.

The potential ability of oracles to bridge off-chain and on-chain data as an interface between traditional networks and blockchain networks has important long-term ramifications. However, the inherent problem is that these oracles are from centralized points of origin that typically require third-party permission. Additionally, the obstacle of authenticating oracle data is where trust-minimized systems like blockchains and traditional trust assumptions clash.

The Oracle Problem

Jimmy Song provides an excellent breakdown of the fundamental problems of oracles and smart contracts. The Oracle Problem is defined as the security, authenticity, and trust conflict between third-party oracles and the trustless execution of smart contracts. The digital world needs to know about the physical world.

Oracles retain an enormous amount of power over smart contracts in how they are executed because the data they provide determines how the smart contracts execute. Therefore, data feeds from third-party sources give that data substantial influence over the execution of a smart contract, removing its trustless nature as part of a decentralized network.

Specifically, in the context of tethering physical assets to the blockchain, oracles are not capable of providing trustless verification that ownership of an asset such as a house is actually transferred to the new owner, even if the new owner holds a token representing ownership on the blockchain. Possession in a smart contract does not always transfer to possession in the real-world, thus removing the killer application of smart contracts, trustless execution. This is a result of the smart contract needing to rely on some third-party verification of the events in the real world, in the form of an oracle.

The limitations of oracles in regards to blockchains and smart contracts are well-documented with some substantial research into how to effectively implement them. Platforms tackling the oracle problem include Delphi, Oraclize, and ChainLink. Essentially, these platforms are predicated on building decentralized oracle solutions by leveraging consensus-based oracles, decentralized marketplaces, and novel methods of authenticating oracle data.

Conclusion

For blockchains to have a sustainable impact in practical applications and various industries, they need to be able to interface accurately and reliably with real-world data. Achieving this with oracles is difficult and presents many challenges. However, significant progress has already been made on this front, and the future connectivity between blockchains and external data feeds will represent a major leap forward for the technology.

--

--