In addition to the medianizer, I have another proposal for the community to consider for improving the oracle infrastructure. While researching various solutions, I talked with Johann at Chainlink to learn more about their system because Aave and other notable protocols utilize them. I thought it would be prudent to get their opinion as well.
The Chainlink team has a proposal for the community to consider. As many of you may know, Chainlink has an existing oracle system that anyone can use. While Chainlink has been considered in the past, I mostly dismissed it because their existing system contains an admin key (multisig), and I did not think it would pass a vote. However, their team is willing to launch oracle contracts, similar to this CRV/ETH oracle, without an admin key or with an admin key that the Compound community controls. As well, their team is willing to launch any oracle the protocol would like and built to the parameters we want as a community.
This was a game-changer to me, so after the call, I started doing due diligence. Here is a quick summary I have gathered from speaking with the Chainlink team on why the community should consider using the Chainlink solution.
-
They are the most experienced team in the space with building secure oracle solutions. They have a 100+ person team, with engineers, researchers, and DevOps solely focused on oracles full time.
-
Their systems have been online for years and are securing significant amounts of onchain value. Aave, Synthetix, dYdX, and a bunch of other DeFi dApps use them.
-
They already have a proven system of reporters, posters, and aggregators in place.
-
Will require minimal technical effort for us to switch over and launch new oracles in the future.
-
They have high standards for data quality. Each oracle node takes a median from multiple data aggregators, and numerous oracle responses are further aggregated. This will give us strong market coverage and redundancy.
-
Their systems are reliable and consistently post price updates during extreme network congestion, such as the recent gas price spike of over 1,400 Gwei, and provide extensive real-time monitoring of all networks.
-
They have built a node network with reputation systems and visualization tools for the community to monitor their onchain performance. We can even select which nodes we want.
-
Shared costs for oracle networks with other ecosystem projects, meaning it’s cheaper than publishing the data ourselves.
After thinking on these points and how they compare to a community built medianizer, I do have some concerns about the medianizer that I would like to share:
-
Using centralized exchange APIs only provides raw, unrefined data. That leaves us vulnerable to price wicks, exchange downtime, AWS/Cloudflare concerns, etc.
-
Using DEX data as a primary source is unideal due to the rapidly changing liquidity landscape.
-
Getting exchanges to join the Open Oracle seems to be harder than anticipated. All exchanges are currently low on resources due to trading volume and general usage being at an all-time high.
-
The economics of posters are incomplete and unrefined.
After weighing the options, I feel Chainlink is worth considering. However, before I and the Chainlink team explore their approach any further, I want to get a temperature check from the community.
If the community is interested in exploring this, here are the rough steps we would take:
-
Once enough interest is expressed, Chainlink would launch the 10 oracles Compound requires.
-
Setup a new oracle contract for the comptroller to point to.
-
Launch everything on a testnet and have the contracts audited.
Costs: Chainlink would like Compound to pay $150 per oracle per month. With 10 markets (pegging USDC to 1), that would be $1500 a month to stream to Chainlink via the set _setContributorCompSpeed.
To learn more about Chainlink, check out these links: