Oracles are ubiquitous in decentralized applications. They are used in all major Blockchain technology themes and implementations. They are the foundation for the growing eco-system of decentralized applications. Namely, they bring off-chain data (outside the Blockchain) onto the Blockchain, so that various applications and smart contracts can access it. Oracles connect Blockchains to the real world, the Internet, and to each other.
In a multi-platform Blockchain world, one or more decentralized Oracle solutions will connect Blockchains to the Internet and to each other. This will allow information to be exchanged and accessed through a variety of applications. If Blockchains were computers, Oracles would be the modems that allow them to interact with the Internet and each other (see figure).
Oracles also help solve problems like the random number problem mentioned above. Instead of the computing nodes generating random numbers separately, the Oracle runs the random number simulation and publishes it on the Blockchain. The computing nodes use this published number to produce the same result. In this way, block finality is achieved and the deterministic nature of the Blockchain is maintained.