Oracles allow blockchain platforms to handle external data. Why is this difficult, and how will oracles revolutionize blockchain applications?
Blockchain platforms can no longer compete by simply serving as a clone of Bitcoin. Although blockchain is still primarily used to create cryptocurrencies, blockchain platforms also need to support full-featured dApps to compete with traditional web apps and expand the list of functional use cases. These blockchain applications have the potential to handle vast amounts of information and perform a great diversity of functions, but many currently lack this capability in practice.
At the moment, smart contracts, dApps, and other blockchain programs mainly interact with blockchain-based data and not much else. This means it is rare that a blockchain can securely communicate with another data source. Although even the simplest traditional platforms are able to handle raw external data, this cannot typically be done by blockchain platforms. Luckily, oracles provide a solution, and they may be just what blockchain needs to clear this major hurdle in the race to adoption.
What’s Wrong With External Data?
One issue is the fact that blockchain ledgers are sequential and immutable. It may be difficult or impossible to change blockchain records, even though external information can be modified, updated, or provided out of sequence. Oracles handle the idiosyncrasies of external data sources so that blockchain platforms can work with that information.
In practice, this issue usually applies to smart contracts. Smart contracts are essentially programs that are triggered by the data they interact with. However, smart contracts cannot handle raw external data, so oracles feed them data in a form that they can react to.
In other words, blockchain applications need to be able to act on information that they receive, even though most data sources do not account for their limitations. Oracles solve the above problems by converting external information into a form that is specifically designed for a blockchain platform to use.
How Oracles Get Information
Unlike their mythical namesake, oracles don’t necessarily make predictions about the future. Instead, they gather information from various sources:
Software: Oracles can use programs to retrieve information that is hosted online or stored locally. Decentralized exchanges, for example, may need to get market data or banking data from external sites.
Hardware: Oracles can use devices like chips or detectors to return data about the real world, such as the location of an item or whether a seal has been broken.
Users: Oracles can rely on (and reward) human beings who provide data. Augur, for example, gives REP tokens to users who report the outcomes of events.
Consensus: Oracles can aggregate different data sources, compare them, and make decisions based on whether those sources are in agreement. Augur relies on a consensus, not just individual reports.
There are many variations on these modes of acquiring data, but what unites them all is the fact that oracles can supply data in a trusted and reliable way.
Just as there are many approaches to data collection, there are many different ways in which an oracle may be implemented. Sometimes, an oracle serves a very particular purpose for a single platform: Augur uses a very specific oracle that is designed to incentivize its users to report real-world events.
Other platforms have more general support for oracles: Aeternity is a blockchain that offers a variety of oracles, which developers can use in smart contracts. Some oracles run alongside or on top of other platforms: ChainLink, for example, provides oracle nodes for Ethereum, while Zap offers a curated marketplace of oracles.
Although oracles can improve upon traditional data sources, they can become problematic in their own right.
Rewarding bad actors: Oracles may reward sources that provide information. However, users can take advantage of this and find loopholes, and multiple sources can collude to provide false information. As one blogger notes:
Why would an oracle prefer to profit from future fees when it can make more money by colluding with a bad actor to lie about the outcome of an event, split the winnings, and ride off into the sunset? / Leon Johnson of Lightswap
Poor information: Blockchain technology is extremely secure and reliable, but external data sources may not be. Websites can be wrong, hardware can break, and people can make mistakes. A blockchain platform may be able to work around less-than-optimal information, but ultimately oracles are only as good as the information they rely on.
Insufficient sources: The issue of poor information is mitigated by the fact that oracles can collect data from multiple sources. Unfortunately, if a platform’s focus is niche enough, there may not be multiple data sources to compare.
Oracles are a vital component of blockchain platforms, and they will become increasingly commonplace as dApps and smart contracts become popular and begin to rival traditional web applications.
Decentralized applications that run on Ethereum, EOS, and Tron are already on the rise, and oracles will become instrumental by providing data in a way that is well-suited to each particular platform. However, oracles are only as good as the sources that they draw information from, which may be flawed or untested.