Launched a little over 12 months ago, MakerDAO has come to be recognized as one of, if not the most successful dapps on Ethereum. Built around a sophisticated programmatic governance system which produces a stablecoin called DAI, MakerDAO’s DAI has maintained a value pegged to $1 USD within some margin for over a year despite massive price drops in ETH.
To date, MakerDAO’s more than 5,000 Collateralized Debt Positions (CDP’s) have collectively held up to 1.6 million ETH. Users have been able to create numerous creative models of business using the platform, from leveraged borrowing, to creating businesses which are able to accept cryptocurrency in a viable manner for the first time thanks to the stability of DAI’s peg.
An essential part of MakerDAO’s CDP system working properly is to make sure it users oracle in a resilient way so that price feeds are accurate to a certain degree all the time. This is no easy feat. We’re fortunate enough to have one of the people behind the technical success of MakerDAO, Mariano Conti, answer some questions we have about how he approached “the oracle problem.”
Mariano, first off, thank you for taking the time to chat with us. In terms of obvious examples of working data oracles and how they affect real life use-cases related to cryptocurrency and blockchain, it’s hard to think of any better examples than MakerDAO. To get started, can you tell me a bit about yourself, your background and what brought you to cryptocurrency and blockchain development specifically?
I was born in Buenos Aires, raised in Mexico City. Studied Engineering there, then had a mini midlife crisis at 30 and returned to Buenos Aires. There I discovered Bitcoin as a way to protect against a weak Peso and the inability to buy US dollars. The company I worked for paid a part of my salary in BTC. Then we discovered Ethereum and immediately wanted to get involved in whatever way possible. After talking to several projects, we found MakerDAO and I started outsourcing there as a trainee developer, learning Solidity and web3, working on what eventually became OasisDEX.
What is your favorite tech-stack to BUIDL with?
I’m also trying to learn Haskell since we have our own implementation of the EVM called hevm and that’s written in Haskell.
Given this context, what is your favorite part about being “Head of Oracles” as your title shows?
I should say that I’m now Head of Backend Services, which is a bigger team that also includes Oracles (but I still love saying “Head of Oracles” so I keep using it). My favorite part is also the scariest: Oracles are the weakest link of any blockchain project, and they just cannot fail. And architecting our systems so that they do not fail, or if they do they can recover, is rewarding and exhilarating.
It’s been stressful at times. When we released DAI I didn’t sleep for a week. I’d wake up in the middle of the night sweating to check the status of our oracles, even when I had alarms in place to blast me awake if anything happened.
Slowly I learned to trust the systems we built, so now I sleep fine. I still check the status of the oracles several times a day.
How has this role evolved over time in scope?
Originally the team was just me. I was tasked with either finding an existing solution for price feeds, or come up with my own. And building them in house was fun, I worked on everything from the smart contracts, to the APIs for gathering prices, to the software that each oracle runs.
Now we have Nik Kunkel, an amazing dev at Maker, who is handling what we call Oracles V2, so it’s not just me anymore. We spend more time researching trends, new technologies, ways to make the smart contracts cheaper, etc..
Also, several projects have come to us asking for Maker to handle their price feeds. Two of these projects are Augur and Polymath. We initially planned to only support the two price feeds necessary for Single-collateral DAI (ETH/USD and MKR/USD). But they trusted our technology and expertise, and it made sense for us to handle REP/USD and POLY/USD.
So now I talk a lot more with people from other projects, who either want us to run their price feeds, or want to integrate our existing oracles.
What have been some of the most remarkable experiences working with oracles so far? Both encouraging and disheartening?
During Devcon4 and the whole Prague Blockchain Week, a lot of people came to talk to me about Oracles, that was amazing! Most of them knew me as “the Oracle guy”, which was pretty funny but also very cool. I realized there that our Oracles are being used by a lot of projects, and the fact that they trust them means a lot to me.
The Cryptokitties craze was insane. I had hard coded max gas prices in our software, I don’t remember, something like 50 Gwei per gas, a number I thought we’d never hit. And when I saw transactions paying 100, 150 Gwei and our oracles having trouble updating, I had a rough time. I had to rewrite our software’s whole gas strategy in a few hours and have everyone update just so we could keep running. It was stressful, but in the end, the software benefited from it since it’s now a lot more robust.
I haven’t really had any disheartening experiences. I’ve given plenty of talks about Oracles, met a lot of amazing people. Maybe I’ve just blocked any bad memories, but honestly, other than some tech issues, I can’t remember anything bad.
I am going to cast a wide net with this question: what has been the most inspiring part of working at MakerDAO? What gets you excited and jumping out of bed when you’re tired from an all-night code sesh?
Living in Argentina with 45% yearly inflation, and having seen beforehand our Government freezing people’s bank accounts, taking away their life savings, I wake up every day thinking that what I’m working on matters. Some people I work with can’t wrap their heads around the Argentinian economy and the way it affects our daily life. I cannot for example wrap my head around the inflation in Venezuela, or the obstacles they face to pay rent, or even buy food.
And cryptocurrencies are a way around that. A lot of people in South America do not trust their banks or their governments. And us at Maker creating a stablecoin with all the good things that crypto brings, decentralization, low fees, transcending borders, censorship resistant, it can have a meaningful impact.
The success of DAI is very personal to me. I think South America is a great testbed to show the rest of the world how crypto will work in the future, because sometimes, there’s no other good way to transfer value down here, or to hold it. The use cases are very real and very urgent.
I’d like to ask you to be an oracle about… oracles. What do you envision the future of oracles to be in relation to near and long-term goals of MakerDAO and the space in general?
Short term, we need to make it easier to create and maintain new oracles. With Multi-collateral DAI launching soon, every token or asset we plan to use as collateral needs a reliable, decentralized and true price feed.
Longer term, we may have to work with other projects towards some sort of standard. Right now everyone is mostly doing their own thing, which is fine, but with increased adoption and the creation of new dapps, it’ll be easier if big projects can work together.
If you could snap your fingers and get your dream-list of technical requirements related to oracles, what would you ask for?
I’d love for our oracles to be STARK based. Doing all the computation off-chain then submitting a small proof that very cheaply verifies that several decentralized oracles independently ran some work.
I’d also like for Exchanges to start signing their API data with Ethereum private keys (or really any public/private key algorithm). We could cheaply verify on-chain that data came from whitelisted sources.
Or maybe have BLS signatures aggregating oracles’ signed messages.
2019 is looking very interesting :)
Witnet is a Decentralized Oracle Network being built to allow projects like MakerDAO and many others to remove some risk from their technical architecture by ensuring that data fed into their dapps is provably decentralized.
The Witnet network testnet launches at the end of January 2019 and is completely open source to the community for contributors interested in helping us build a more decentralized future.