To keep Bucket Protocol from malicious users. Bucket Protocol has designed a firewall for oracles.
Our system is designed to handle adversarial situations, even if one of the oracles fails. To ensure accuracy, our system evaluates each oracle's returned price to determine if it is too stale and compares the price disparities between each oracle. The system then takes the average of the prices provided by oracles to provide accurate price feeds with minimal governance interaction at all times. We work hard to ensure that the information displayed on our platform is always accurate, up-to-date, and reliable for our users.
With the live price feedback and the last updated timestamp of each oracle, there are 3 assigned statuses:
- Normal: The last updated timestamp is no older than
yseconds and the price discrepancies between different oracles are less than
- Stale: The duration passed since the last updated timestamp is greater than
The price calculation is as follows:
- If the oracles are "Normal", return the average price of the oracles.
- Abort execution if the two of the oracles are "Stale".
It's unlikely that two oracles fail at the same time. In the extreme situation, if both oracles fail, any vault operations that involve fetching the live price feed will be paused.
- Staleness threshold = 500 seconds
- The threshold for price discrepancies between different oracles = 1%
The set of parameters is configurable for each collateral type.