Oracle

Intermediate

An oracle may be defined in multiple different ways, according to the context. Within the blockchain context, an oracle is basically a data source that is used as a bridge between smart contracts and other external sources.

More specifically, an oracle is an agent that not only communicates with external data sources but also verifies and authenticates that the data being provided is accurate. Thus, oracles are responsible for providing vital and reliable information to smart contracts, which in turn perform certain tasks.

The importance of oracles relies on the fact that blockchain smart contracts are only able to access the data that is contained within their own digital network. Therefore, oracles are needed as a communication instrument that “translates” real world events (non-deterministic data) to digital values that be recognized by smart contracts (deterministic data).

Blockchain oracles may be classified according to their use case. The most common types are:

  • Hardware Oracles: Integrates with physical systems and technologies, providing real-world data for smart contracts. For instance, hardware oracles can communicate with RFID sensors used in various industries (automobile, pharmaceutical, supply chain, etc.)
  • Software Oracles: most commonly used; retrieve online data from external programs and web APIs - such as market prices, flight status, and weather data.
  • Consensus Oracles: sort of decentralized oracles that collects large amounts of data from a set number of other oracles, following specific methods to determine the validity and accuracy of data collected. Consensus oracles are being used in prediction markets platforms, such as Augur and Gnosis.
  • Inbound Oracles: transmits external data to smart contracts or software oracles. Can be configured as a set of "if" guidelines (e.g. “if an asset hits a certain price, place a buy order”).
  • Outbound Oracles: transmits smart contracts data to external systems, making it possible for smart contracts to communicate with non-blockchain sources.

In general, a blockchain oracle consists of a third-party data source that is dependent on external permission to work properly, which means they are usually a tool provided by centralized entities. Therefore, most oracles end up sacrificing the decentralized properties of the smart contracts. 

The Oracle Problem

Depending on the data provided by the centralized oracles, smart contracts will execute different functions, meaning that oracles have immense power over smart contracts. This is known as the Oracle Problem, which rises as a conflict of trust that centralized third-party oracles bring to trustless smart contracts and blockchain systems.

Although decentralized oracles, such as the consensus oracles, may present a possible solution, there are still many challenges to be overcome, since decentralized oracle networks are quite difficult to implement in a secure, functional, and trustless way.

Sõnastik

A decentralized, digitized ledger that records transaction information about a cryptocurrency in a chronolo...

Sõnastik

A site/system/folder/repository where a team can share, collaborate, and save their open source or propieta...

Sõnastik

A sequence of unambiguous instructions used for the purpose of solving a problem.

Sõnastik

A process operating in the background waiting for a specific event or condition in order to be activated.

Sõnastik

Conversion of information or data into a secure code in order to prevent unauthorised access to the informa...

Sõnastik

The first look at a product released by a team, consisting of the very first version of a primitive, basic ...

Sõnastik

A collection of functions and procedures that allow users to interact/communicate with the data of an appli...

Sõnastik

Applications that run on a P2P network of computers rather than one central computer. This allows the softw...

Sõnastik

Automated contracts that trigger certain action when predetermined conditions are met. It works like 'If…th...

Sõnastik

A measurement standard which can be used to gauge the performance of a particular asset or investment portf...

Sõnastik

Computer code, which is responsible for defining how software will function based on a list of instructions...

Sõnastik

A type of algorithmic trading that involves the execution of a large number of orders in fractions of a sec...