If you have been following the technology behind smart contracts and the blockchain recently, you may have come across a term “Blockchain Oracle”. These are indeed relatively new concepts that are most applicable to smart contract technology.
Blockchain technology is defined by all the information that is publically available on the decentralised network. However, there come certain situations where the blockchain does not have access to information that is off of the chain. This poses a unique challenge for smart contracts when they need certain conditions to be met before they can be executed properly.
There needs to be some way in which the blockchain and the smart contracts that execute on top of this chain are able to verify these conditions. This is where Oracles come in. Indeed, the choice of name is fitting as oracles were viewed as mystics who could tell people information they could not verify themselves.
What is an Oracle?
Oracles provide the data that is required for these smart contracts to execute. These are external data feeds that are provided by third party services and are designed to be used with these smart contracts. They will provide information to the smart contract such as whether a payment has succeeded, a price has reached some limit or even other external factors like the weather.
These Oracles will form part of multisignature contracts where the original trustees will sign a contract that will only execute or release the funds after all of those conditions have been met.
Oracles are essential to the functioning of the smart contracts. They provide essential inputs for all of these smart contracts and allow for the legitimate interaction of these contracts with real world and external factors.
The Need for Oracles
The manner in which Blockchain operates, makes it quite difficult for it to interact with external and off chain factors. This is because of the deterministic nature of where events follow another in a logical order. For instance, you will have transactions or the creation of a block which are handled deterministically.
However, gathering external information off chain that is not sequential would be impossible for the blockchain to understand. It was designed specifically in this way in order give it its unique immutable characteristic. The idea that the blockchain cannot be altered in any way.
With the real world, we know all too well that things are not deterministic. These events occur at random times in any specific order. This creates a fundamental challenge for the blockchain as there is no defined recording of the sequence with which the events occurred.
This is where Oracles are able to bridge the gap. They are able to take these real world events and digest it into a deterministic form which would allow the blockchain to effectively verify conditions.
Current Oracle Examples
Given that we are seeing a large increase in demand for these smart contracts, so too has the demand for Oracle solutions. There are a number of developers who have designed Oracles that are able to interact with the blockchain. These Oracles are in essence smart contracts themselves and hence require developers who can code solutions both on and off chain.
Oracles can already allow connections from the blockchain to existing Web APIs, allow payments to be made between the blockchain and other off-chain payment processors as well as the integration of smart contracts with other blockchains entirely. Below are a few examples of Oracle solutions.
- Hardware: Some smart contracts have been coded in order to interact with the physical world. They are designed to execute when certain conditions have been met. For example, with supply chains on the blockchain, once a product has crossed a certain stage or once a ship has landed at a particular port. There are obviously certain worries about data security with this.
- Software: Software Oracles will handle all online information required by the smart contract. This includes data such as asset prices, weather conditions, flight information. The Oracle will gather this information through web APIs and then send it to the smart contract.
- Consensus Building: When a smart contract relies on information from a number of different sources, this is where consensus based Oracles are best used. For example, with prediction markets where bets are placed on potential future events, it is crucial that the information of the event is 100% correct. They require confirmation of this from a number of different sources.
One of the leading companies that are developing Oracle solutions at the moment is Oraclize. For example, they recently developed an Oracle that would allow someone to check whether their digital identity (like that of Estonia) is linked to a particular Ethereum address. They have also developed interesting solutions to security problems with physical oracles that make use of cryptographic evidence.
Other larger companies that are involved in Oracle solutions include IBM and Microsoft. They are developing their own Oracle platforms that could be used for enterprise solutions.
With the increasing adoption and interest in Ethereum based smart contracts, there will too be increasing demand for Oracles which allow these contracts to interact with other systems on the web and the physical world. Indeed it looks likely that developers will design a simple uniform Oracle that will facilitate this communication with the outside world.
This will truly propel the use case for smart contracts and decentralized blockchains. Anywhere from logistics to identity management, from property ownership to intellectual property, smart contracts with Oracles will provide a solution.