What are Oracles?##
An oracle is a person or agency considered to provide wise and insightful counsel or prophetic predictions or precognition of the future, inspired by the gods.
Image: The Divine World by Khalil Gibhran
Leaving aside predictions and Godly figures, and no, we are not talking about Oracle, Inc. either, oracles are in a strict software sense, external data feeds used by software engineers and developers to collect real-time data, based on their applications need. Commonly, the data provided by Oracles is manually and periodically updated by a third party, who is trusted to provide true and fair information. Oracles retrieve and verify external data for all form of applications and software, through methods such as web APIs or market data feeds.
Say Yahoo Finance needs to show the price of Gold at a particular time. Its back end API is assigned an Oracle service, to which it will contact and receive the current price. Big enterprises and data providers like Yahoo Finance, Facebook, Google, etc., cannot depend on just one oracle for propagating information as it might be prone to manipulation. In such cases, a consensus-based oracle is used that takes in information from numerous sources and projects the mean of all.
Types of Oracles
The Applications of Oracles are innumerable in today's technologically dependent world. The necessity of Oracles can be found in obtaining market prices for news sites, getting sports scores for betting sites, temperature readings from IoT devices, etc.
The types of oracles and their application differ based on the application. A comprehensive list of the types of Oracles can be found in the links below:
Where do Oracles Fit in on the Blockchain?
It is undoubtedly evident that Smart Contracts, when issued and propagated on a decentralized permissionless blockchain (such as Ethereum, Zilliqa and the likes), hold huge potential for practical and virtual use. Ever since the advent of Ethereum, Smart Contracts are the buzz within the community. Hundreds, if not thousands, of prospective use cases, have been developed, some even finding their usefulness in real world use cases. IBM, Microsoft, Ethereum, Zilliqa among others have already successfully developed applications that rely heavily on Smart Contracts.
The reliance is justified because Smart Contracts are the first usable and scalable medium on the internet that can execute pre-specified arrangements without the fear of hindrance. Meaning, one can make a smart contract and have it executed on a blockchain with full confidence that it will be fulfilled given the conditions are met, and no party will be able to hinder with its outcome.
But, as the saying goes, every cloud has a silver lining, people often forget that a silver lining has a cloud in return. Smart Contracts, on paper, seem to be the ultimate solution to the immutable agreement problem on the internet, but when trying to develop one faces difficulties that could not have been foreseen.
Image: Reliance of Smart Contracts on outside information
For a smart contract to rightly execute as per the agreement, they have to rely on outside information providers, which in most cases are oracles. For instance, say I get into a bet with my friend that my favorite team is going to win the world cup and he says otherwise. We decide to enforce the same on a smart contract and tag it on a particular blockchain, ensuring the execution. Since a Smart Contract is not actually Smart, it has to rely on information provided by other entities to execute itself. Considering the bet amount is sufficiently large enough to motivate either party to hinder with the outcome, one of us can manipulate the Oracle provider to propagate wrong information, thus profiting without actually fulfilling the agreement. Oracles, being outside the blockchain are subject to the influence, just like any centralized entity.
And thus, the debate arises: what can be done to solve the censorship problem? Is it still legit to call a blockchain immutable and censorship-resistant, when something as novel as oracles can be manipulated to change the outcome? What can be done to bridge the gap between the virtual immutability of the blockchain and the apparent problem of information propagating Oracles? If Oracles are brought in house and computed on the blockchain, will it strain the validators due to increased memory flow?
Barring the projects currently in development, that, on paper discuss the problem and propose a solution, readers are encouraged to come up with an opinion of their own. Please do help in encouraging a discussion about solving the problem.
ReverseAcid Monthly Recap
- ReverseAcid Monthly Recap - November 2018 (Vol 1)
- ReverseAcid Monthly Recap - December 2018 (Vol 2)
- ReverseAcid Monthly Recap - January 2019 (Vol 3)
- ReverseAcid Monthly Recap - March 2019 (Volume 4)
Crypto Analysis Series
- Part 1 - Basic Attention Token and How It's Revolutionizing the Internet
- Part 2 - Golem Network Token as a Potential Giant Killer
- Part 3 - Augur and the Future of Decentralized Predictions Markets
- Part 4 - Dogecoin - Such Meme, Much Value
- Part 5 - Zilliqa
- Part 6 - IOTA
- The Advent of Cryptoeconomics - Why Traditional Economics Is In Danger
- Why Do Smart Contracts Need a Blockchain
- Layer 2 Protocols: Functionality as a Mode of Micropayment
- Layer 0 Protocols: The Key to Scaling Crypto for the Masses
- Diving Deeper into Zero-Knowledge Proofs (Part 2)
- Bitcoin’s Innate Problems: Volatility and Mining Centralization
- Legislation and Taxation of Cryptocurrencies - A (Very) Brief Outlook
- CME Futures and Dealing With Volatility
- Two Men on an Island - An Introduction to Zero-Knowledge Proofs and What Follows (Part - 1)
- Why Unveiling Fake Volume is Essential for Market Growth
- Understanding the Difference Between an ‘Open-Community’ and ‘Closed-Network’ Blockchain
- Operational Difficulties in Running a Cryptocurrency Exchange
- Dharma Protocol: Tokenized Debt and Funding Through Decentralized Systems
- Should Cryptocurrency Wallets be Registered with Government Authorities
- Venezuelan Economic Crisis: An Outsider's Perspective
About Reverse Acid
Be a part of our Discord community to engage in related topic conversation.