What is Oracle
Oracles act as linkages between blockchain smart contracts and the external world. Smart contracts are pieces of code that are automatically executed once some predetermined conditions are met. Oracles extract data from external sources and feed them to smart contracts to proceed with code execution.
While smart contracts can only retrieve data from their network, oracles can acquire data from different outside physical structures or online sources.
Hardware oracles can access data from RFID sensors and barcodes and integrate them into smart contracts. On the other hand, software oracles can query information from the internet through APIs.
Oracles can also be inbound or outbound. Inbound oracles receive info from the external environment, whereas outbound oracles deliver info from the smart contracts to the outside environment.
The information that oracles contribute to the smart contracts determine the path and outcome of the contract execution. Since the content of the external data provided by the oracle impacts the results of the smart contract execution, this implies a need to trust the third-party data sources. This phenomenon is referred to as the oracle problem, and it interferes with one of the principles smart contracts are built on: trustless interactions. As a result, decentralized oracles can be a remedy, but they are often not so easy to apply.