Exclusive: MakerDAO's New Oracle System
DeFi’s Largest Project is Changing How it Calculates Prices
MakerDAO is upgrading its oracles to have a faster, more decentralized system.
The new oracle system will move price calculations off chain, so that it’s less affected by congestion in the network, Mariano Conti, head of oracles at MakerDAO, said in an interview Friday. This should make price feeds faster and cheaper, which will be especially important once Maker upgrades to accept many kinds of collateral. Currently, the 14 price feed providers are anonymous, but in the new system, new providers will join and be made public to increase trust.
MKR holders will also vote on whether an oracle team can be chosen as a delegated party to facilitate the oracles’ administration and technical development. Incentives for feed providers will also change. Currently, compensation is funded by the Maker Development Fund. In the future, payment is expected to be sourced from the stability fees generated by the Maker Protocol, the statement said.
Oracles are decentralized applications’ weak point. For Dapps to work, they need information from the “real world,” like market prices, and so far, it’s been hard to get them without relying on centralized parties. That’s bad because they can be a central point of failure in a system that’s otherwise decentralized.
What Maker does with its oracles matters not just because it’s how it gets its prices to calculate thongs like ETH collateral value, but many other DeFi projects use Maker’s oracle system too.
Mariano Conti chatted at length with me about Maker’s new oracle system. Here’s part of the interview. I’ll publish the full version later this week. Newsletter subscribers will get it straight to their inbox.
MC: The first version of Maker’s oracles were launched on June of 2017 so they’ve been working for two and a half years and working very well. The Dai system needed oracles and since there was nothing at the time we created our own. Now many DeFi projects use our oracles or based their own on our architecture. The idea was we’d find something that we like more than what we’ve done or keep working with ours and improve it. Nothing was being built that we liked more than our system so last year we started working on a version two, which integrates a lot more with Maker’s governance and with other DeFi projects.
Now 14 different entities run price feeds. They are individuals who upload prices to the oracle, and then the oracles calculates a median. Up until now these 14 have always been anonymous for security reasons, because if someone were to find half of them, there was a risk that they could be extorted to change the price. But now we’re proposing to add to these 14, other projects that are public.
CR: Why have them be public?
MC: The greater the number of people uploading prices, the greater the security, it’s more decentralized. We increase the trust in the oracle by showing that not only other projects use it, but they’re also participating in the entire process.
Also, version two has an off chain component. In the current version for each price change, each of the feeds has to send a transaction to the blockchain, and tis is very inefficient. In the new version, there’s an off chain network, where all these feeds communicate and there are relayers that aggregate this data and send one transaction with everyone’s prices, so it’s cheaper, more resistant, much more trustworthy, especially when the network is congested.
CR: Will these relayers have some incentive?
MC: This is where the changes start getting more interesting. Because oracles are controlled by governance, this is a proposal for MKR holders, and they will be the ones to decide whether to implement this or not.
Currently the Maker foundation pays each one of these 14 providers a monthly amount to run the software. But the foundation eventually wants to step aside. It’s here just to bootstrap the DAO. So how can we do this so that there are incentives but they’re not coming from the foundation. What we’re doing with the new oracles is to implement a white list, so that each smart contract which wants to read the prices in our oracles will have to pay a subscription, or something else, all this will be proposed and defined with governance, but ideally it would be that they pay a subscription and that money will be destined for the entities running the software.
CR: What’s the range you’re considering this will cost.
MC: We’re not considering a range yet, because we want to propose that for some time, it will be free to read the oracles. So when this starts, there won’t be any type of fees and the foundation will continue paying providers, and we’ll see with time, depending how many projects join, how many projects are using them, how many times a day they read from the oracles.
CR: Currently, how much is the foundation paying the providers of price feeds?
MC: That information isn’t public yet.
CR: How many projects are currently using Maker’s oracle?
MC: It’s difficult to know who exactly is using them. dYdX, Set Protocol, Gnosis, ENS, Compound used to use them, but now they’re using their own implementation, Nuo at some point used them, Dharma did too. There are many.
CR: So how will that payment work once it’s implemented, who will the middleman be?
MC: At first it will probably be the foundation, if that’s approved by governance. But this being Ethereum, ideally, contracts that want to read the oracle will be able to pay a smart contract and the addresses that are white listed to sign prices, the feed providers, will be able to withdraw from that smart contract the payment that corresponds to them.
CR: Right that would be ideal, because then the foundation could be a central point of failure if it knows all the parties, it could manipulate prices eventually.
MC: Of course. The idea is that as soon as we propose to charge for the use of oracles, that there will be these contracts so that it can be as decentralized as possible.
CR: What’s the main thing that you’re seeking to improve from the main system?
MC: Technically the best that we were able to do is move a lot of what oracles are currently doing, move it off chain. Removing computation on chain and have it be just for validation. This reduces gas cost by a lot. In single collateral Dai gas wasn’t a big problem, because it just needs two oracles, ETH/USD, MKR/USD, but in MCD we can hundreds of different collateral, so we need to optimize. And we’ve seen this before. The first time we had to think about this was when CryptoKitties saturated the network and t was very hard for transactions to go through for prices to be updated. So from then on, we always thought we’d need to change to a second version.
Now we have two and half years of experience running these oracles and we think this new version will be a lot better. But of course, as soon as it’s running, we’ll start working on version three.