What is an Oracle in Crypto?
An oracle links off-chain and on-chain data on a blockchain to power the use of smart contracts. The oracle doesn’t generate the data itself; instead, it collects, verifies, and validates the data from an external source. It then transfers this validated data to the smart contract.
For example, let’s say Alice and Bob create a smart contract that allows them to place bets on the next day’s temperature. The smart contract needs external information about the temperature to determine the winner. This is where oracles come into play: the smart contract connects with an oracle to determine the next day’s temperature. In this example, the oracle collects the temperature from trusted sources like the National Meteorological Center, and sends it to the smart contract.
Oracles are an excellent way for decentralized systems like dApps to access different data sources. They can transmit different data types and formats, including transaction history, price feeds, and payment status.
Types of Blockchain Oracles
Blockchain oracles are classified into several groups based on different types, including their direction of information, source, and level of decentralization (trust). Note that some oracles can belong to two or three groups.
Decentralized oracles, also known as consensus oracles, collect data from multiple sources before reaching a consensus. This process increases the data’s credibility and reliability. The smart contract can also validate the data from different sources to ensure authenticity.
A centralized oracle is controlled and managed by a single system that serves as the only data source for the smart contract. These oracles have simpler architecture and need fewer resources to build.
However, they can be prone to manipulation. If hacked, a centralized oracle could feed the wrong data to a smart contract and alter its execution.
Hardware oracles interact with physical events through an external set-up and relay their reading to the smart contract. These external set-ups are usually sensors that can directly translate and transmit their reading to the smart contract
An example of a hardware oracle could be a sensor that takes temperature readings, which it then transfers to a smart contract.
Software oracles interact with digital sources of information – webpages, apps, servers – to collect information that it transmits to the smart contract or blockchain.
Most common type; these are connected to the internet and provide real-time information. Software oracles can transmit different data types, including digital information, exchange rate, and price of local commodities.
Outbound oracles transmit the data from the blockchain to an external system. In this case, the smart contract transfers data from the blockchain to the outbound oracle. The outbound oracle then transmits the information to its final destination.
An example of an outbound oracle is a smart contract that checks the circulating supply of tokens on a blockchain for a database.
Inbound oracles transmit data from external sources to the smart contract; they have to do with the in-flow of “off-chain” data. This information, which can be relayed by hardware oracles, software oracles, or both, can be anything from temperatures to asset price readings.