What are Blockchain oracles?
Blockchain oracles sound like something from ancient Greek mythology, and in a way, they function in a similar role. In ancient stories, people didn’t have enough information to make decisions and turned to oracles for information beyond their understanding.
In the same way, Blockchains like those of Bitcoin and Ethereum, do not have ready access to information outside of the chain, and so there is no direct way to validate the conditions that smart contracts are based on. An oracle is, simply put, a translator for information provided by an outside platform.
Oracles provide the necessary data to trigger smart contracts to execute when the original terms of the contract are met. These conditions could be anything associated with the smart contract – temperature, payment completion, price changes, etc. These oracles are the only way for smart contracts to interact with data outside of the Blockchain environment.
How important are oracles?
Oracles are radically important. Just like the ancient stories could never have occurred without proper external information, smart contracts cannot function without some data source. Without access to these sources of information, use cases for smart contracts drop to just a tiny fraction of their potential.
However, with these systems, smart contracts have real world applications in virtually every field available. Once data hits the Blockchain, the information can be used to execute the contracts and provide use cases, which can disrupt industries across the board.
Why can’t decentralised applications communicate with the real world without oracles?
There is a fundamental difference of formats. Blockchain is deterministic, meaning that is a reflection of a specific series of events which take place one after another in sequential order – series of transactions. Accessing information outside of the chain would require data points that are not sequential, and would therefore be impossible for Blockchain to use or make sense of. This aspect of Blockchain gives it immutability, but reduces flexibility.
The off-chain world, however, is non-deterministic, meaning that there is no recording of the events in the specific sequence that they have taken place, which creates problems with transparency. Data points can be generated from and understood at any point, providing increased flexibility, but difficulty in communicating with the Blockchain.
This foundational distinction makes the two worlds incompatible with each other by default, and only the presence of an oracle can make two-way communication between them possible.
What recent developments have taken place?
Blockchain developers at the cutting edge of new Blockchain technology are making constant progress regarding ways to make Blockchain better integrated with the outside world. Because oracles are, themselves, smart contracts, designed to interact with the Blockchain by providing necessary data, they require developers with expertise in both off-chain and decentralized fields.
The recent and profound need for external data on Blockchain has given rise to new and interesting developments in the space. For example, oracles would allow Blockchain connection to any existing API, allow payments using traditional payment networks from Blockchain, and would allow interchain connections between smart contracts and other Blockchains.
Which companies are at the forefront of current oracle development?
The marketplace for these highly specialized middleware software models is growing rapidly, and, as new ways to utilize Blockchain technology are being conceived of every day, the demand will only increase.
Currently, the marketplace for these types of contracts has continued to expand, and is being led by several companies that are active in developing oracles. Oraclize has been an industry leader in oracle technology. Other startups like ChainLink and Blocksense are also seeking to take market share in this area. Finally, large scale corporations (IBM and Microsoft) are seeing the potential for huge market presence and are developing these platforms now.
Types of oracles
There are different types of oracles based on the type of use. We differentiate between software oracles, hardware oracles, consensus oracles and inbound and outbound oracles.
- Software Oracles
Software oracles handle information available online. An example could be the temperature, prices of commodities and goods, flight or train delays, etc. The data originates from online sources, like company websites. The software oracle extracts the needed information and pushes it into the smart contract.
- Hardware Oracles
Some smart contracts need information directly from the physical world, for example, a car crossing a barrier where movement sensors must detect the vehicle and send the data to a smart contract. Another use case is RFID sensors in the supply chain industry. The biggest challenge for hardware oracles is the ability to report readings without sacrificing data security. Oracalize proposes a two-step solution to the risks, by providing cryptographic evidence of the sensor’s readings and anti-tampering mechanisms rendering the device inoperable in the case of a breach.
- Inbound Oracles
These provide the smart contract with data from the external world. Example use case will be an automatic buy order if the USD hits a certain price.
- Outbound Oracles
These provide smart contracts with the ability to send data to the outside world. An example would be a smart lock in the physical world which receives a payment on its blockchain address and needs to unlock automatically.
- Consensus Based Oracles
Prediction markets like Augur and Gnosis rely heavily on oracles to confirm future outcomes. Using only one source of information could be risky and unreliable. To avoid market manipulation prediction markets implement a rating system for oracles. For further security, a combination of different oracles may be used, where for example 3 out of 5 oracles could determine the outcome of an event.
Oracles are third party services which are not part of the blockchain consensus mechanism. The main challenge with oracles is that people need to trust these sources of information. Whether a website or a sensor, the source of information needs to be trustworthy. Different trusted computing techniques can be used as a way of solving these issues. Companies like Oracalize, for example, have been leveraging Amazon with the TLSNotary-based proofs. Town Crier, another company, is focusing on the utilization of the Intel Software Guard Extensions (SGX). Providing smart contracts with trusted information sources is crucial for the users because in case of mistakes there are no rollbacks.
Which trends should we expect in the future?
As the increasing number of use cases for smart contracts continues to rise, the need for new oracle structures will also rise as the structural framework that makes smart contracts possible. This will drive increasing investment and design into the market space, and new innovations will make Blockchain-to-web communication more simple and elegant.
One of the more likely future trends is the development of a unified, integrated platform for communication between Blockchain and the outside world. Standardized tools and interfaces make it easier for both the developers and the users of Blockchain-enabled services. That means that we’re likely to see fierce competition between multiple providers, until one, or several of them achieve widespread recognition.