People have talked about the amazing use cases for smart contracts ever since Nick Szabo first purposed the idea in 1996. Despite the hype behind platforms like Ethereum, there’s still work to be done. Aside from scalability, smart contracts still lack the ability to receive external data in a decentralized way. This is crucial for expanding the use case of smart contracts beyond tokens and gaming.

What’s an Oracle?

An oracle is an individual who has access to gods. This enables them to obtain information that’s out of the reach of regular people, such as glimpses of the future.

In crypto it’s the same except there’s no god involved — an oracle is an agent which can give some extra information on real world occurrences, which would otherwise not be available. With centralized solutions this external data would come from third party API’s, however, third parties pose as major risks. So for decentralized applications, developers look to oracles instead.

Let’s take a look at the different types of decentralized oracles.

Market Data Oracles

The best examples of this are prediction markets like Augur and Gnosis. They use decentralized oracles to fetch data for markets they create.

For example, someone uses Augur to create a market with the question, “Will more Democrats or Republicans win the House for the California June midterms?” Participants can then purchase shares of that market based on what they think the outcome will be. Then the market creator picks an oracle to fulfill that request. When the event happens, the oracle has three days to provide the data. Then the market has seven days to dispute the outcome. If the oracle doesn’t provide the data, then another oracle will be selected.

(See pg. 4 — http://www.augur.net/whitepaper.pdf)

This means that market data oracles are primarily used to allow wages to be placed on future events within their ecosystem. They are critical for the success of prediction markets as much as Ethereum is.

Data Retrieval Oracles

Data retrieval oracles are primarily used to capture data for a wide variety of use cases with smart contracts. These solutions include Chainlink, Mobius, and Witnet.

For example with Chainlink, many different nodes are used to retrieve the requested data. Consensus is then made between them and the data is returned to the smart contract. This way, a smart contract would not need to rely on a single oracle to provide data for execution. Chainlink nodes can also retrieve data based on a schedule, which means they can act as a “data feed” for smart contracts rather than solely being used for one time data retrieval tasks.

While it’s important to provide efficient data retrieval, it’s equally important to secure those requests from third parties. That’s where Town Crier comes in. It’s a system developed by IC3 that provides trusted data to smart contracts using secure hardware such as Intel SGX. While these systems haven’t been tested at scale yet, early signs look promising. That’s why Vitalik once tweeted about his excitement over Chainlink.

Hybrid Data Oracles

Streamr is focused on a hybrid approach with data retrieval oracles and easy-to-use tools. This means they offer a visual editor for drag and drop functionality for oracle creation.

An Alpha version of the Streamr Editor (source — Streamr whitepaper pg. 5)

This drag and drop functionality originated from AWS Kinesis and AWS Lambda. Henri Pihkala, co-founder of Streamr, see’s their solution as the decentralized counterpart to those solutions.

Different focuses, different data providers

Each solution above aims to attract different types of data providers for their service. Here’s what each project is focusing on today:

Augur/Gnosis — oracles that allow wages to be placed on future events Chainlink — enterprise grade financial contracts (Swift, etc.) Mobius — oracles for consumer applications on their dApp store Witnet — general purpose anonymous oracles Streamr — internet of things (IOT), enterprise, and consumer grade applications MakerDAO — price feed oracles for the Dai stablecoin

Despite each project taking a different approach, they each have a method of rating and punishing node operators for providing faulty data. This helps to enforce validity and honest behavior as their networks expand.

Conclusion

It’s clear that decentralized oracles will soon address the need for external data, with many of these solutions launching on mainnet this year. This will help to accelerate the usability of dApps and fulfill the original vision of smart contracts. 2018 is shaping up to be another exciting year for crypto.

Thanks to Thomas Hodges for early feedback. Note —Some projects listed above are more decentralized than others.

Please perform your own due diligence before investing. This is not financial advice.