Definition: The blockchain oracle problem describes the contradiction between a highly decentralized blockchain and the more or less centralized oracles.
It leads to a paradox in where the blockchain becomes more useful with off-chain data but at the same time loses its benefit of decentralization through it.
Blockchain Oracle Problem in Detail
Blockchain oracles are services that provide data from outside the blockchain to smart contracts that run on-chain. Without an oracle, blockchains have no access to off-chain data. This limits their application and their usefulness. Making off-chain data available to smart contracts increases their potential and helps the blockchain to become wider adopted.
Off-chain information can be:
- What team won the football championship?
- What is the Euro price of ETH?
- What is the temperature in Berlin at 1 p.m.?
While these data are very different, they have one thing in common: They are non-deterministic. Non-deterministic means that it is not possible for every participant in the network to verify them. This becomes obvious with the temperature data. Only a few people have access to accurate temperature sensors in, let’s say, Berlin.
Another problem is that people don’t have the chance to verify data from the past. In a blockchain, everybody can check at any time from the first transaction to the most recent transaction if it is correct. If you try this with the temperature data, it is difficult because the data source might not have the data anymore.
The limited access to these data requires reporters to provide the data and other services to aggregate them.
The problem here is that blockchain oracles have some central elements making them vulnerable to manipulation and attacks.
These problems show up in:
- Verifying the data
- Maintain availability/liveliness
Therefore, introducing oracles brings back central elements to blockchain applications. The result is that while a blockchain is decentralized, with centralized oracles, it has the same security issues as centralized systems. In short, they introduce a single point of failure.
Reasons of Failures
Failures can happen by accident or on purpose. From a game-theoretic perspective, an oracle cannot be trusted if the profit of rigging it is bigger than the true operation. Imagine the oracle has to solve a bet that asks for the winner of a football match. If the attacker wins 1000 ETH, if team A wins, he could vote for a victory of team A in the oracle, even if team B is the true winner. He could do this by setting up a large number of fake nodes that outvote every true reporter. The cost for this manipulation should not exceed 1000 ETH; otherwise, the attack would result in a loss.
The problem is that it is difficult to determine the profit of a reporter because it is not always clear who uses the data and what is at stake.
Another issue is known as free riding. Collecting reliable data is expensive for the reporter. But after the data got published, they are visible to everyone. This allows other reporters and users to copy them for free. As a result, the oracle would not earn enough to continue operation.
- The term oracle problem was explained by Alexander Egberts in 2017 in its Master thesis: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3382343
- A good presentation regarding the blockchain oracle problem is here: https://www.infoq.com/presentations/blockchain-oracle-problems/
- You can find an explanation how blockchain oracles work here: oracles explained.