An Oracle is an Ethereum program that can put market prices on the Ethereum blockchain for other programs to reference. It takes prices (generally publicly available for other websites) and sends them onto the Ethereum blockchain in a publicly available manner. The prices are usually for a tradeable asset, like ETH, Bitcoin, another altcoin or an ERC20 token. But it could be anything that has a price.
An Oracle as defined for Ethereum can actually do other tasks (https://blog.ethereum.org/2014/07/22/ethereum-and-oracles for a full technical description), but for the purpose of this post, we will only focus on the price posting.
Use Case Maturity
An Oracle is a mature simple program that exists today and is running on the Ethereum network.
Prices of coins change often, sometimes more than once a second. Having up to date information is valuable. So, it makes sense that the Oracle should post the prices regularly. But every post cost “gas”. Each post might cost half a cent (based on a simple estimate), which does not sound like much. But, if you assume one post a minute this adds up to $2,800 a year.
There are a few ways this could be funded.
First they could encrypt the data and send the keys to people that have a subscription. They could have a free feed that has a lower frequency.
Or, more in the spirit of Ethereum, the operator could set up a donation website with a monthly target. You could send reminders to groups that are known to value the data. As long as the monthly donation is met the data is sent publicly and often. If the donation is not met, you could reduce the frequency of the posts until the money arrives.
Of course the barriers of entry for this service is low so price will not allow much profit. Other competitors could easily enter the market space.
Or, as is happening now, a well funded external operation could just fund the Oracle as it is required for their applications and appears as a free service for everyone. In this case they (ShapeShift) operate the service because their new decentralized exchange Prism requires it.