Chainlink does not take a simple average over exchanges. As I describe in this post, Chainlink oracles fetch data from multiple data aggregators who each provide full market coverage by aggregating from all trading environments (CEXs + DEXs), taking into account volume, liquidity, and time differences between exchanges. Pulling data directly from exchanges and taking a median is not a good way to design an oracle because you’re not taking into account volume shifts across exchanges or new exchanges appearing and capturing a significant amount of the volume. Market coverage is a very nuanced topic and there is a reason why Chainlink doesn’t attempt to create a data quality product and instead focused on the data delivery mechanism. I describe more on the topic of market coverage in this response thread to Hayden from Uniswap.
This is simply not true and a bit disingenuous. Chainlink simply wants to provide the DeFi ecosystem with the most secure price oracle solution with the highest quality data and this involves pulling from data aggregators who have full time monitoring teams to ensure manipulation is prevented 24/7. Taking a simple median from a select few exchanges is simply not an adequate oracle solution as it will always be vulnerable to market coverage issues and manipulation attacks around volume shifts and consolidations. As I described in the post linked above, the three layers of aggregation (data level, node level, network level) prevents any single source of truth. Relying on a single source of true is what played a significant factor in the $100M false liquidations of Compound users, and at the very least made the attack much easier and cheaper to pull off.
All decentralized oracles (including Maker and others) went down that day because of extreme Ethereum network congestion that had never happened at that level before. Since then, the transaction manager in Chainlink nodes have been completely revamped to prevent such network congestion issues. When DeFi summer hit and gas prices spiked to 500+ gwei, Chainlink price feeds continued to operate without issue and all applications (Aave and Synthetix included) received accurate data in a timely manner. Pointing to Black Thursday at this point is a bit like pointing to the Shanghai DOS attacks and saying Ethereum isn’t reliable because of it. It was indeed an issue, but it was fixed and made the network stronger against such attacks/issues into the future.
I think you’re missing the key point of market coverage. The issue with Compound’s oracle during this DAI manipulation attack was that it did not report the true market wide price. If an attacker manipulates the entire market (across every single exchange), then yes all oracles would be affected at that point, but that’s only because the true market wide price was changed, but that’s not what happened during this event, only a single exchange (Coinbase) was manipulated. That’s the nuance here, market coverage raises the cost of attack to highest degree possible, and while it doesn’t prevent market manipulation altogether, but does make it as expensive as possible and ensures protocols always receive the true market wide price.
These are not “unnecessary layers” but layers of redundancy to ensure smart contracts always receive price data that reflects the true market wide price and not that of a single or a few exchanges. As I described in my proposal, Chainlink is directly secured by cryptoeconomics through an opportunity cost of losing future income if a node is malicious, as well as losing their reputation as an DevOps infrastructure provider. This is why we have never seen a successful attack against the Chainlink network, because the incentives work and ensure correct data is always posted on-chain.
I hope you and the rest of the Compound governance community reconsider, because if the Compound oracle and its lack of market coverage is not fixed, then oracle issues will continue to appear and will be a waste of time, money, and mental energy to fix every time it happens. Adding more exchanges to the Open Oracle will not solve the problem, because it still won’t provide adequate market coverage for a protocol securing $3B in user deposits. Compound needs the market wide price, just as Aave receives today. This is not a Chainlink shill, this is coming from a DeFi user who does not want to see Compound get exploited due to the lack of market coverage in its oracle. Oracle security is nuanced topic and I’m happy to discuss further.