We can identify different types of oracles in terms of their function and the data processed:
– Software oracles:
They process information data that come from online sources, such as temperature, goods and commodity prices, flight or train delays, etc. The software oracle extracts the required information and transfers it to the smart contract.
– Hardware oracles:
Some smart contracts require information directly from the physical world, for example when a car crosses a barrier, where motion sensors detect the vehicle and send the data to a smart contract or RFID Sensors in the supply chain industry.
– Incoming oracles:
Provision of data from the outside world.
– Outgoing oracles:
Offer smart contracts with the ability to send data to the outside world. An example would be a smart lock in the physical world that receives the payment on its blockchain address and has to unlock it automatically.
– Consensus-based oracles:
Get their data from human consensus and prediction markets like augur and Gnosis. Using just one source of information can be risky and unreliable. To avoid market manipulation, forecast markets implement a rating system for oracles. For further security, a combination of different oracles can be used, for example three out of five oracles could determine the outcome of an event.