stETH price oracle

In addition to other proposed oracle daemon improvements and optimizations, a flashloan-resistant stETH price feed functionality is much needed.
Broader integration of stETH into DeFi ecosystem requires a secure and reliable price source. For now, Curve pool is the only price source, and it appears to be quite stable, but it is still flashloanable, if not easily.

We can improve price reliability with a “price anchor” that would attest that “stETH/ETH price on Curve used to be around in recent past”. We propose adding an off-chain oracle designed to fetch Curve pool historical stETH price from at least 15 blocks ago and to report in case current price has changed unsafely. How much of a change should be considered unsafe is a subject to discuss. We propose setting it at 5% initially. It should be enough to protect loans at 150-200% collateralization ratio, and on the other hand, it shouldn’t generate many transactions. stETH price feed transactions are fairly expensive (around 1,700,000 gas fee) but we would only see one such transaction over past four months.

Overall protocol usability relies heavily on how many use cases for stETH exist. We expect a safe price source to foster further incorporation of stETH as collateral in other protocols that intend to integrate it. As soon as more protocols adopt stETH, stETH price feed will take new price sources into consideration and become even more reliable.