At the beating heart of most blockchains are smart contracts. By utilizing smart contracts on blockchain networks we can increase efficiencies and we can reduce costs across an array of businesses and government services. Smart contracts are designed to minimize counterparty risk and provide transparency throughout the process. They do however have some limitations especially when dealing with third party systems.
As the need grows for external data to flow into blockchains and provide information for smart contracts there have been questions raised about Oracles. Oracles are agents that examine external data feeds. It then provides vital information to a blockchain that affects the execution of a smart contract. For example, a gambling DApp might only pay out if the BBC sports website states that the conditions for pay-out are met. Verifiable external data is an essential component of smart contracts and expanding the crypto ecosystem.
The primary function of an oracle is to provide a smart contract with data that is trusted and secure. Blockchains alone cannot access external data and need Oracles to trigger smart contract executions. Oracles are a vital part of multi-signature contracts where the trustees of a contract agree to the future release of funds only if certain conditions are met. It is an Oracle that must sign off this contract as well.
The differing types of Oracles
Hardware Oracles are sensors that interact with tangible objects. Examples would include RFID tags feeding data
Software Oracles pull data from third party sources such as web APIs. They are the most common type of oracle. Typical sources would include stock prices or weather data.
Consensus Oracles rely on aggregated data from several oracles with proprietary methods of determining their accuracy and authenticity. An example might by checking several websites to determine a football result.
Inbound Oracles execute a conditional statement. An example of this would be “if price X is met by Coin Y then sell Coin Y”.
Outbound Oracles send data to third party sources that sit outside of the blockchain network they exist on.
There is an Oracle at the heart of the Augur platform. The Augur platform is a decentralized prediction market. It is representative of a very complex Oracle that functions as its own data feed relying on the “Wisdom of the Crowd”. The participants in the system act as the data source. If enough people agree, the contract executes. Whilst Augur uses this system it also utilizes other oracles to report correct results. There is an incentive structure to encourage honest reporting.
The Oracle Problem
The Oracle problem is not a new one. Oracles have been around a lot longer than blockchain, as have smart contracts (the term was first coined in the mid-1990s). There has been an ongoing debate as to what extent we can trust and implement them.
The Oracle problem relates to the security, authenticity and trust conflicts between Oracles dependent on third parties and the trust less execution of smart contracts. How exactly does the digital world know what is happening in the physical world?
Given how integral oracles are to smart contracts and the potential power they can yield over outcomes. The data oracles provide have substantial influence of the execution of contracts. Can you trust the third-party data? And as such, are smart contracts truly trust less?
For example, let’s take the gambling analogy I mentioned earlier. What would happen if the BBC momentarily posted the wrong football result, before correcting it 2 minutes later? The smart contract could immediately execute – if not programmed to wait for a certain amount of time. What if someone was to place a large enough bet that it made economic sense to attempt to interfere with the BBC sport website. This could be attempted via a DNS attack or via holding a gun to the webmaster’s head. Both scenarios could result in the smart contract paying out despite the real-world conditions for the bet to pay out not being met.
You can never completely remove risk from any system. You can only seek to mitigate the risks as much as possible. Oracles when properly designed and implemented can represent a significant decrease in risk. As with any new technology it creates different risks. Consensus Oracles go a long way towards minimizing many of the risks involved in transactions and where possible should be implemented. By implementing a system that uses varying methods to confirm oracle data from a pool of oracles chosen randomly it can also make it easier to identify if someone is attempting to manipulate a smart contract and put a freeze on it.
As blockchain technology matures and becomes more mainstream it is likely the insurance industry will enter the market to offer products that indemnify the participants in smart contracts.
There are several organisations working upon solutions to the oracle problem. Most of them are attempting to implement solutions that are similar in nature to the solutions that remove bad actor issues from interfering with blockchains. The solution appears to be decentralization. Platforms tackling the oracle problem include Delphi, Oraclize, and ChainLink. Their focus is on leveraging consensus-based oracles, decentralized marketplaces, and novel methods of authenticating Oracle data.
For blockchains to prove themselves viable alternatives to our current systems across government and industry we are going to have to place increasing emphasis on the accuracy and reliability of real-world data. Significant strides have already been made in achieving this and great effort is being put in to improving it. There has been an ongoing battle between developers and hackers ever since the dawn of early networked computers. This game of cat and mouse will never truly be resolved as long as there are bad actors. The way we keep our networks reliable and secure is through constant innovation.