Decentralized blockchain-based apps have a wide spectrum of real-life uses, and have been growing in number and variety since the rise of Ethereum and its integrated smart contract technology. Now, there are many different blockchains with smart contracts powering decentralized apps, and these sometimes need data from the physical world to function. Oracles bridge the gap between the physical world and the blockchain, providing data for the execution of smart contracts.

An oracle is simply some code that queries real-time databases and can return answers based on the data. For example, an oracle can be created to tell if the temperature in a Florida orange grove has dropped below freezing. The oracle would read data from a thermometer, and when the temperature hits freezing it would broadcast a message which would execute a smart contract to turn on the sprinkler system to protect the oranges. While counter-intuitive, icing up oranges with a sprinkler can save them from freezing: as ice freezes, it releases latent heat, which keeps the orange itself just above the freezing point.

Other applications for oracles include tracking goods as they arrive at certain points in the supply chain, restocking shelves by tracking when goods in a store fall below critical levels, and any other data in the physical world that a decentralized app could use.

Oracles are especially useful for futures contract trading platforms called prediction markets, which is essentially a form of gambling. Outcomes of sports games, political elections, weather, stock prices, Bitcoin’s price, and anything else that can be bet on can be tracked by an oracle. The oracle executes smart contracts in a decentralized app to distribute funds to those who made accurate bets.

The problem that arises when money becomes involved is making sure the oracle is reporting true data. An example is an oracle that runs a fire insurance smart contract. If the oracle’s answer can be manually controlled by the fire department, then the fire department could theoretically say a house burned down and release the money in an insurance smart contract even when there was no fire, costing the insurance company money. Regardless of whether this was done intentionally, clearly the solution is to find a decentralized and accurate way to feed data to the oracle to make sure its answers are always tied to reality.

On the Ethereum blockchain, oracle output can be tracked in a public immutable ledger, so if an oracle is misbehaving then it can be blacklisted or fixed. A blockchain prediction market platform called Augur claims to solve the problem of misbehaving oracles by rewarding good oracles with REP tokens, and punishing bad oracles. Each oracle must have REP tokens held in a bond, and this bond is forfeited for incorrect information. Whether an answer is correct or not depends on a voting mechanism. Of course, whether the vote can be manipulated or not will determine if this method survives the test of time.

Overall, oracles are an essential piece of technology to connect decentralized blockchain-based apps to the physical world, but to make oracles optimal requires a balancing act between decentralized and centralized.


Follow on Twitter at

Telegram Alerts from at

Image Courtesy: Pixabay
Comments are closed.

Check Also

Chaos In Hong Kong Amid Passage Of Chinese ‘Security Law’, Could Cause A Surge In Bitcoin Demand

Could Hong Kong’s new security law giving China full control over the territory̵…