
- Blockchain - Home
- Blockchain - Introduction
- History of Blockchain
- Blockchain - Technology
- Blockchain and Cryptography
- Blockchain Beyond Crypto
- Blockchain - Advanced Concepts
- Blockchain - Decentralization
- Blockchain - D-Apps
- Blockchain - DeFi
- Blockchain - Future Scope
- Smart Contracts in Blockchain
- Blockchain - Ricardian Contracts
- Blockchain - Oracles
- Blockchain - DAO
- Bitcoin
- Bitcoin - Invisible Gold
- How Bitcoin Works?
- Bitcoin - Network
- Bitcoin - Wallets
- Bitcoin - Innovations
- Ethereum
- Ethereum Alternate Cryptocurrency
- Ethereum Ecosystem
- Ethereum Virtual Machine
- Advanced Ethereum
- Ethereum Wallets
- Ethereum Miner Nodes
- Miscellaneous
- Blockchain - Double Spending
- Public Key Cryptography
- Blockchain - Hashing
- Bitcoin - Mining
- Blockchain - Chaining Blocks
- Blockchain - Proof of Work
- Blockchain - Network & Mining
- Blockchain - Incentives to Miners
- Blockchain - Merkle Tree
- Blockchain - Payment Verification
- Blockchain - Resolving Conflicts
- Blockchain - Privacy
- Bitcoin - Mitigating Attacks
- Blockchain - Conclusion
Blockchain - Oracles
Blockchain Oracles play a crucial role in the ecosystem of smart contracts and blockchain technology. One of the main limitations of smart contracts is their inability to access external data, as blockchains operate as closed systems without direct links to real-world information.
This external data may be necessary for executing specific business logic within the smart contract, such as the stock price of a financial asset needed to trigger dividend distributions.

In these cases, oracles serve as a solution by supplying the required external data to smart contracts. An oracle can be described as an interface that facilitates the transfer of data from outside sources to smart contracts. These oracles are reliable entities that utilize secure channels to convey off-chain information to the smart contract.
Blockchain Oracles Applications
Oracles can provide various types of data based on the specific requirements of different industries and use cases. This data can include weather information, current events, corporate actions, and information sourced from Internet of Things (IoT) devices.

For instance, within a Bitcoin blockchain, an oracle has the capability to input data into a particular transaction, while a smart contract can observe that transaction on the blockchain and retrieve the data.
Additionally, another approach involves storing the acquired data within a smart contract's storage, allowing other smart contracts on the blockchain to access it through inter-contract requests, depending on the platform.
In the case of Ethereum, this can be accomplished through the use of message calls.
How Blockchain Oracles Work?
The fundamental operation of oracles is outlined as follows −
- A smart contract initiates a data request to an oracle.
- The oracle processes this request and retrieves the necessary data from the designated source. Various techniques can be employed to obtain this data, including utilizing APIs from the data provider, accessing a web service, querying a database , or extracting information from another blockchain.
- The retrieved data is forwarded to a notary, which generates cryptographic proof to verify the data's validity. TLSNotary is commonly used for this purpose. Other methods may include Android proofs, Ledger proofs, and proofs supported by trusted hardware.
- The data, along with its validity proof, is then sent to the oracle.
- Optionally, the data and its authenticity proof can be stored in a decentralized storage system like Swarm or IPFS, allowing the smart contract or blockchain to access it for verification.
- Ultimately, the data, accompanied by its validity proof, is delivered to the smart contract.

Types of Blockchain Oracles
Generally, oracles can be divided into two main categories: inbound oracles and outbound oracles. The subsequent section will dive deeper into these classifications.
Inbound Oracles
This category encompasses oracles that gather data from external sources and input it into smart contracts. We will briefly explore software, hardware, and other types of inbound oracles in the coming sections.
Outbound oracles
These are referred to as reverse oracles, facilitate the transmission of data from blockchain smart contracts to external environments.
There are two primary scenarios for their use. The first involves a source blockchain generating data, such as blockchain metrics, that is required by another blockchain. In this case, the relevant data must be communicated to a smart contract on the receiving blockchain. The second scenario entails an external hardware device executing a physical action triggered by an on-chain transaction.
Types of Inbound Oracles
The following sections shed light on the major types of Inbound Oracles available in Blockchain Oracle Technology −
Software Oracles
These oracles are tasked with gathering information from various online services available on the Internet. Typically, they are employed to obtain data such as meteorological conditions, financial statistics (like stock prices), travel details, and other information from external providers.
Hardware Oracles
This category of oracle is utilized to collect data from hardware sources, including IoT devices and sensors. This is particularly beneficial in scenarios like insurance-related smart contracts, where telemetry sensors can provide critical information such as vehicle speed and location.
Computation Oracles
These oracles facilitate the execution of computation-heavy tasks off-chain. Since blockchain technology is not ideal for handling resource-intensive calculations, a smart contract on a blockchain can request these computations to be carried out on external high-performance computing systems, receiving the verified results back through an oracle.
Aggregation-Based Oracles
In this model, a single value is derived from multiple data feeds. For instance, when determining the price of a financial asset, relying on a single source can be risky. To address this, various data providers are utilized, and the price reported by the majority of these feeds is selected to ensure accuracy.
Crowd Wisdom-Driven Oracles
This approach tackles the blockchain oracle issue by avoiding reliance on a single source that may not be trustworthy. Instead, it leverages multiple public sources to derive the most accurate data through collective input.
Decentralized Oracle
This category of oracle is designed using a distributed framework. It is also possible for these oracles to source data from other blockchains that operate on a distributed consensus model, thereby guaranteeing the integrity of the information.
Smart Oracles
Smart oracles function similarly to traditional oracles but possess the additional functionality of executing contract code. The smart oracles developed by Codius operate within Google Native Client, a secure environment designed for executing untrusted x86 native code.
Blockchain Oracle Services
A variety of online platforms now offer oracle services, often referred to as oracle-as-a-service solutions. These services are designed to facilitate the secure acquisition of off-chain data necessary for smart contracts to execute and make informed decisions.
Notable examples include −
- Town Crier − https://www.town-crier.org
- Provable − https://provable.xyz
- Witnet − https://witnet.io
- Chainlink − https://chain.link
- The Realitio project − https://realit.io
- TrueBit − https://truebit.io
- iExec − https://iex.ec
Additionally, the platform at https://smartcontract.com/ allows for the creation of oracles for Ethereum, Bitcoin, and Town Crier, enabling smart contracts to interface with applications and incorporate data from off-chain sources.