This is How MakerDAO is Trying to Crack the Oracle Problem

Good morning defiers! I chatted with Mariano Conti, the head of oracles at MakerDAO, about their new price feed system. I published part of the interview when the news was announced, and now I’m sending the entire conversation. MakerDAO holds half the funds in the ecosystem and Maker interest rates impact rates in every other platforms. Oracles, or the systems used by blockchain projects to bridge real-world information with smart contracts, are considered to be the Achilles heal of decentralized finance. Many projects use Maker’s oracles for their own price feeds, so overhaul of how they’re calculating prices affects all of DeFi.

The interview has been edited for length and clarity and I’ve bolded my favorite quotes. I marked with *** when the part of the interview that wasn’t previously published starts.

{{ Also, I’ll be giving a talk on Etheruem history today at the meetup kicking off ETHBoston at the MIT Media Lab. Come say hi if you’re around! }}

Image source: ETHDenver

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.

*****

*****

CR: Has the new system been tested?

MC: The oracles version two, which Nik Kunkel, Maker’s head of backend services, and I built together, has already been used in mainnet for six months. Set Protocol use our ETH/USD oracle and they asked us to do a BTC/USD oracle, and we thought it’s the perfect time to launch a pilot with version two, and it works so well that it’s the version that they’re using now with different feed providers, but the idea is to homogenize everything in the next couple of months.

So it will be the same feed providers for all prices. All feed providers can sign all prices. We provide a software which draws prices from different sources. So the feed provider would just need to run that software. but if someone only wants to provide prices for one or two assets, they can do that too.

CR: I thought feed providers were the companies that have prices directly, like an exchange, I didn’t know it was a software that compiles prices from different places.

MC: The oracle that’s on chain now takes the median from 14 different feeds and each one of those feeds, for example the one I run, is at the same time going to many exchanges and taking prices from them, calculating an average price, and sending them. Because if one of those 14, one was Coinbase, one was kraken, one was Gemini, it wouldn’t be the best, because it happens that the API of one of those might be down. So what we do is that each price feed provider is aggregating from many different places. If we can have exchanges sign prices with a private key that can be read in Ethereum, that would be even better.

CR: So being a feed providers means running this software on a server, and sign prices it on the Maker system?

MC: Signing it with a private key and participating of an off chain network where all providers are sending their feed constantly.

The system is agnostic to blockchain tech. The person compiling the feed doesn't need to know anything about blockchains. They just compile prices and sign them. The only ones who needs to know what a blockchain is are relayers who will aggregate all these prices and send them to the blockchain. So with the same network, we can provide prices to Ethereum main net, to the test nets to other blockchains eventually, just by having different relayers.

CR: This off-chain computation, specifically where does it happen?

MC: My server is running a software, it reads from different prices, it calculates and then it sends a message in a network that’s called Secure Scuttlebutt, it’s what’s called a gossip network, and that’s our off chain module. It’s very simple, it just sends messages. And relayers are also connected to Scuttlebutt, but they do a calculation that’s a bit more complicated, it reads everyone’s messages and it’s always checking for when it has enough valid messages, cryptographically signed with everyone’s Ethereum keys, and when it determines that it has enough to send to the blockchain and make a price change, it sends the message and the state of the blockchain changes.

CR: What’s the risk for something to happen to Scuttlebutt, for it to be hacked, or go off line or anything?

MC: That’s unlikely to happen. The program has been tested for many years. The network is very robust, and anyone can create powerful servers for them to accept the messages and the good thing is that not all the feed providers need to know each other. As long as they know a couple of servers in the middle they can read and receive messages. We’re always looking for other networks. I’m now working on prototypes with other networks to have a fall back, in case something happens to one.

CR: What are the main differences between this new version and Chanlink or other alternatives?

MC: I don’t think Chainlink is very different. They have a group of authorized nodes, which are the feed providers and then aggregators, who aggregate those feeds. We do the same. One difference is we don’t have a token. Our incentive has been that the ones running the oracles have a stake in MKR or have an interest in the project. I think our system is simpler and cheaper in terms of gas. Many projects are inspired in what we’ve done in the past couple of years. It’s not easy to charge for oracles. We think that our advantage is that what we did was formed organically. We had to create oracles out of necessity and people saw that what we did was useful and started using them.

CR: Who will be the new, public feed providers?

MC: Set Protocol, 0x and dYdX are some. We’ll propose to see if governance wants to add them as feed providers, and then we’ll keep adding more. Later on, what governance says we need to charge for the oracles will go 100 percent to the feed providers, we’re not doing this to make a profit.

When will oracles stop being the weak spot of DeFi? how far are we?

MC: I think it’s unlikely we’ll get to a point where everyone is 100 percent happy with the solutions, but once we have Eth2 and there are more people using these applications and more use cases, and we have thousands of validators sending prices and we have cheap cryptographic functions aggregating thousands of signatures per block, then we’ll be in a good place.


Sign up to get the best and only daily newsletter focusing on decentralized finance news, complete with analysis, exclusive interviews, scoops, and a weekly recap. All content is free for now. Those who become subscribers before the paid period starts get a big discount :)

About the author: I’m Camila Russo, a financial journalist writing a book on Ethereum with Harper Collins. I was previously at Bloomberg News in New York, Madrid and Buenos Aires covering markets. I’ve extensively covered crypto and finance, and now I’m diving into DeFi, the intersection of the two.