Blockchain Semantics Insights
Business Case | Deep Tech | Announcements | Blockchain Glossary |
What is an Oracle? How Oracles connect Smart Contracts to the real world?By Abhishek Singh | April 6, 2018, 8 a.m. GMT
Ethereum-based Smart Contracts are simple but effective forms of code designed to provide guaranteed and automatic execution of services in exchange for certain values being fulfilled. However they cannot access external data which might be required to control the execution of the business logic; for example, the stock price of a security that is required by the contract to release the dividend payments.
This is because it is not practical to make arbitrary network requests to access data outside Blockchain. As smart contracts are executed independently by every node on a chain, any request to retrieve information from an external source has to be performed repeatedly and separately by each node. But because this source is outside of the Blockchain, there is no guarantee that every node will receive the same answer. Perhaps the source will change its response in the time between requests from different nodes, or perhaps it will become temporarily unavailable. Either way, the consensus is broken and the entire Blockchain dies. Therefore interactions between smart contracts are limited to on chain data by Ethereum. This is where an Oracle comes to rescue.
Oracles are trusted third-party services that deliver data from an external source to smart contracts. They are usually supplied by third parties and are authorized by the companies that use them.
Of course, critics will highlight the irony of using third parties to solve an issue on a decentralized platform that boasts of reducing the need for such intermediaries. The issue of centralization vs. decentralization is at the crux of the Smart Contract and Oracle debate. Since Smart Contracts and Blockchain are in essence decentralized while Oracles are (at least in their most common form) not, this not only provides a philosophical obstacle but also a practical hindrance for the widespread utilization of Oracles. But Oracles are a necessary step forward in the practical utilization of Smart Contracts. The utilization of real-world data in Smart Contracts requires reliable Oracles.
LINK is trying to solve this issue by creating a decentralized oracle network, allowing Smart Contracts to securely connect to off-chain feeds such as APIs or widely-accepted payment systems. Anyone who has a data feed, useful off-chain services such as local payments, or any other API, can provide the data feed directly to smart contracts in exchange for LINK tokens.
While creating a decentralized solution like LINK would be ideal not to break the security model implemented by Blockchain platforms, practically speaking this approach has several limitations. This model depends severely on external parties available for processing requests. Depending on the number of parties available, the processing time for each request would be affected.
Oraclize is another popular service that has a vision for creating a reliable service between external APIs and smart contracts. But since this is a centralized network, it offers authenticity proofs proving that the data was not tampered with. These proofs enable smart contracts to verify the authenticity of data before using it and eventually avoiding its use in case the data is compromised.
Regardless of whether the Oracles are centralized/decentralized, the advent of oracles boost the already robust Blockchain technologies.