Oracles play an important role in any blockchain ecosystem, as they are the solution to one of the key problems of distributed networks - the lack of a way to communicate with the real world. In this connection, the developers are actively working on the implementation and introduction of these algorithms. In this article, we will look at how blockchain oracles functioning and their key role in the practical application of smart contracts.
Blockchain Oracle definition
Oracle is a third-party service (sensor) that acts as an information bridge between the blockchain and the outside world through the use of smart contracts. Oracles take information from various sources and transform it into a language understandable by smart contracts - programs that autonomously process transactions on the blockchain. In other words, oracles serve the entire Web3 ecosystem.
Smart contracts use this data following the rules laid down in the source code, and then broadcast to users and control transactions based on them. Without oracles, blockchains and smart contracts would not be able to access data from the outside world, since this is not embedded in their protocols. Oracles significantly expand the scope of smart contracts since they can work with data outside the blockchain.
Oracles can not only receive data from external off-chain sources but also send it back. The functionality of oracles is determined by developers depending on the purpose of their use.
The Massachusetts Institute of Technology (MIT) was the first institution to successfully develop the Oracle, but the original concept of Bitcoin oracles was first proposed by Thaddeus Draya, the developer of the Lightning Network, in 2017 during one of his Discrete Log Contracts, which discussed Bitcoin's scalability and the potential of Lightning.
How it works
Oracles acquire and validate external data for blockchains and smart contracts using web APIs or market data feeds. The data required for smart contracts can contain information about prices, temperature, turbulence, payment completion, etc.
The use of Oracles is done by checking a data source for specific information and then connecting to this source to serve as a link between the blockchain and the data flow. This allows smart contracts to be executed using specific information sent from the data stream.
Real-world markets and web APIs usually do not use deterministic data streams, like blockchains and smart contracts. The oracle converts external and non-deterministic information into a format that the smart contract can recognize and execute under certain conditions. They can even be implemented for N-of-M multi-signature transactions to reach a consensus on signing transactions.
Types of Blockchain Oracles
Depending on the principle of operation, there are different types of Oracles, which, in turn, are currently used:
- Human Oracles are people who manually validate data and submit it to a smart contract;
- Software Oracles track online information and represent the most common form of extracting data from third-party sources such as web APIs;
- Hardware Oracles are sensors that are embedded in physical objects. These devices are mainly used to track the supply chain, which uses RFID technology to transfer data such as environmental conditions, storage locations, and other related information to the blockchain;
- Inbound/Outbound Oracles are those that either transmit information to smart contracts or external sources from smart contracts. Oracles can also be hybrid. Companies use these oracles to set up automatic purchase orders when a price reaches a certain target or other conditions are met;
- Contract-specific Oracle - designed for one specific smart contract. Such oracles cannot be applied to other smart contracts. This may be due to the mechanism of individual smart contracts;
- Centralized/Decentralized Oracles - run by a single company or community. Everything is clear here: decentralized oracles neutralize the risk of third-party interference.
Blockchain developers are primarily interested in integrating technology with the outside world. Since Oracles themselves are smart contracts designed to interact with the blockchain by providing the necessary data, they require developers with experience in both centralized and decentralized areas.
The need for obtaining external data for the development of the blockchain has led to the emergence of interesting developments in this area. The Oracle concept is, in theory, a system that brings many benefits, but there are some concerns about integrating trusted sources. The conflict of trust between third-party Oracles and unreliable execution of smart contracts is still an unresolved issue. This is often referred to as The Oracle Problem.
As the blockchain economy develops, the need for an ecosystem of Oracles will increase, which will lead to their rapid development as a reliable way of connecting the digital world with the real one. It is the blockchain Oracles that will be able to solve the problems of blockchain communication, as well as provide a wider application of smart contracts in various industries interested in using decentralized networks. Therefore, solving current difficulties is only a matter of time.