Oracles are entities that interface real-world data with decentralized systems. In a decentralized ecosystem, oracles are frequently used in applications and products based on blockchains. They give blockchains the ability to interact with off-chain data.
In addition to communicating with external data sources, an oracle also verifies and authenticates that the provided data is accurate. Oracles are responsible for providing vital and reliable information to smart contracts, which in turn perform certain tasks. To be as reliable as possible, the oracle will take its information from several external sources. This way, the oracle will make the most accurate information.
The importance of oracles lies in the fact that blockchain smart contracts can only access data contained within their own digital network. They cannot access physical world data. Oracles are therefore necessary as communication tools that "translate" real-world events into numerical values recognized by smart contracts.
The data transmitted can be price streams, payments, sensor temperature, football match scores, etc. Oracles are generally classified based on where they draw their data from (software/hardware), the flow of information between them and their sources (incoming/outgoing), and their centralized or decentralized nature.
Blockchain oracles can be classified based on their use. The most widespread forms are:
Hardware oracles: integrate with physical systems and technologies, providing real-world data for smart contracts. For example, hardware oracles can communicate with RFID (Radio Frequency Identification) sensors to retrieve data such as temperature, location, the status of an object, or the speed of a vehicle.
Software oracles: the most used, they retrieve online data from external programs and web APIs, such as market prices, flight status, and weather data.
Consensus oracles: a type of decentralized oracle that collects large amounts of data from a predetermined number of other oracles, following specific methods to determine the validity and accuracy of the collected data. Consensus oracles are used in predictive market platforms such as Augur and Gnosis. Note that, while there are consensus oracles that can be used in predictive market platforms, this is not the standard method for this type of application.
Inbound oracles: transmit external data to smart contracts or software oracles. They can be configured as a set of "if" statements (for example, "if an asset reaches a certain price, place a buy order").
Outbound oracles: transmit smart contract data to external systems, allowing smart contracts to communicate with non-blockchain sources.
In general, a blockchain oracle is a third-party data source that relies on external authorization to function properly, which means it is generally a tool provided by centralized entities. Therefore, most oracles end up sacrificing the decentralized properties of smart contracts.
Based on the data provided by centralized oracles, smart contracts will execute different functions, meaning that oracles have immense power over smart contracts. This is what is called the Oracle problem, which presents itself as a trust conflict that centralized third-party oracles bring to smart contracts and trustless blockchain systems.
Although decentralized oracles, such as consensus oracles, may present a possible solution, there are still many challenges to be overcome, as decentralized oracle networks are quite difficult to implement securely, functionally, and trustlessly.
Most cryptocurrency enthusiasts consider Chainlink (LINK) and Band Protocol (BAND) as typical examples of decentralized oracle networks.
There are other, lesser known oracles, such as iExec RLC (RLC), Nest Protocol (NEST), UMA or API3.
Although multiple contracts and decentralized systems can reference an oracle, there are specific oracles built to serve a single smart contract. It is worth noting that people with unique knowledge can retrieve, verify, and validate data intended to be used by blockchain-based agreements. These people are commonly referred to as "human oracles."