[Proposal] Chainlink Decentralized Oracles

Summary:
The current plan is to use an in-protocol AMM liquidity pool for RPL liquidity and price oracle purposes. This is dangerous from a flashloan/whale manipulation attack standpoint (no full market coverage), increasing code complexity, and greater attack surface on the protocol. When possible Ethereum dapps and protocols should implement proper separation of concerns and utilize the shared security of using the same open source tools. Chainlink is currently the market leading decentralized oracle in terms of DeFi usage, has been battle tested over time, is decentralized, open source, and allows proper separation of concerns in the Rocketpool code base allowing the oracle mechanism to grow and change in time as the market does. Thus Chainlink would be the most effective oracle mechanism for Rocketpool to utilize.

Body:
In RPIP-003 it was stated that the current plan is to use a new Balancer-esque in-protocol liquidity pool for RPL/ETH. This will act as a reserve pool of RPL to liquidate above 16 ETH is slashed on a validator and act as a price oracle on the RPL/ETH price. Creating a new Liquidity Pool and AMM and using it as a price oracle (hoping that it becomes the primary liquidity pool for RPL and ETH) seems very dangerous. What if it turns out it isn’t the primary liquidity for RPL/ETH and it is targeted by a flash loan attack?

Uniswap has huge network effects and chances are most people will be trading RPL/ETH on there. That’s where most people already obtain RPL.
Even if it this new pool somehow fights the network effects of the current AMM protocols like Uniswap, Curve, and Balancer it would have to be the largest pool by large margin to effectively protect against whales or flashloans and always maintain that status. Even the current large AMM’s have been the target of flashloans and whale price manipulation. Furthermore we can’t ignore that if RPL becomes large enough there will be more trading occurring at centralized venues such as Coinbase and Binance. Consideration of Chainlink’s volume weighted full market coverage oracles would be a good counter measure to prevent price manipulation.Chainlink decentralized price feeds currently calculate their price points by taking to account all markets and use volume weighted average pricing. See here:



By utilizing Chainlink the concern of calculating prices would effectively be less coupled with the core rocketpool protocol which should focus on being a decentralized staking pool, not on performing AMM or oracle duties. This would result in a much simpler, cleaner rocketpool codebase, and free up developer time. Security would increase as Chainlink is already battle tested in many DeFi applications such as Aave and Synthetix. Chainlink has been audited many times and building a custom AMM would result in a greater amount of un-audited and battle tested code when the protocol releases. I truly believe, looking at the benefits and risks objectively, Chainlink would be the optimal solution for any price oracle duties in Rocketpool.

5 Likes

Cheers ZkZak, you make some pretty salient points, especially around keeping the devs focused on building their core products and protecting their users from potential flash loan exploits.

Couldn’t agree more, what would be the rational to reinvent another Oracle when that very same function exists and works well?