Solving the DeFi Oracle Problem with Hart Lambur of UMA
ETHGlobal·Fri, Oct 9, 2020, 12:00 AM
Speaker
Hart Lambur of UMA gives a talk at ETHBoston about UVM - (Universal Market Access) at ETHBoston. ETHBoston was an ethereum focused hackathon that took place Sep. 6-8, 2019 at Northwest Building, Harvard Campus. ETHBoston was a hackathon organized by ETHGlobal and a team of hackers, developers and enthusiasts interested in building and creating in the ethereum ecosystem. The ethereum focused hackathon took place for 3 days at Northwest Building, Harvard Campus in Cambridge, MA. For more information visit eth.boston and ethglobal.co
Transcript
So, I'll tell you about it. Okay, just two seconds on what universal market access is, or Kuma, or UMA, we'll say what it is and what we're trying to do. We see it as a decentralized financial contracts platform that tries to build the infrastructure to allow people like you to create financial products on Ethereum. The mission is actually about universal market access. So this really cool idea is that we could create financial products that are actually available globally and not tied to your local jurisdiction, like a fiat government jurisdiction.
And also, guys, how about interactivity. There are actually two parts to what we do. These are what we call self-applying contract validation templates. A few words, but what we really mean is, um, contract design patterns, yeah, sit down. Yes.
Um, as far as contract design patterns go, these will be contract types or contract templates that will allow us to create useful financial products on the blockchain. Examples include what we are promoting for our reward, the tokenization of synthetic assets. So, let's create a token that tracks some synthetic assets in the real world. It could also be swaps and derivatives, or a decentralized Bitex, or all sorts of other things. And the second part of this is, um, the concept of the oracle.
This oracle that will power and provide real-world data on your blockchain, um, that manages these financial contracts. So, in our opinion, these two concepts interact with each other. Financial contract templates are completely free and fully accessible. Oracle is our solution for resolving contract disputes. Um, so we want to talk about the idea of adding economic incentives to the oracle, economic guarantees economic guarantees .
Um, so why are economic guarantees important to oracles? This is a useful analogy, and again, guys and again, guys , I'm keeping this pretty theoretical. So if you're all sleep deprived, some of these questions might be, " might be, " But, um, ask questions." Um, a useful analogy here is useful analogy here is to think about contracts in the world of fiat currencies. So, stating the obvious stating the obvious , legal contracts are indeed useful.
They allow us to build our modern financial system and all these types of financial contracts. They depend on the counterparties believing in the contract, and the reference data cannot be manipulated. So, here we have just a theoretical example of Alice and Bob. They are writing a financial contract for a million dollars. Um, and it depends on a certain price of some external link.
They are both happy to do this under Massachusetts law because they believe the Massachusetts judicial system can be corrupt. Um, and in the world of fiat currencies, there are laws that are extremely useful, this concept of anti-fraud and anti- manipulation laws, which means that if Bob tries to bribe the data source for this contract, he goes to jail goes to jail . And you can literally think of it economically as Bob having a huge economic cost to try to bribe the data source for this contract. So he goes to prison goes to prison . Um, the problem, or actually the opportunity actually the opportunity , is that in the blockchain world, there is no concept of fraud in this pseudo-anonymous permissionless blockchain system like Ethereum.
There are no laws against fraud or bribery. You can consider this a feature, not a bug. Um, but that means there's nothing stopping Bob from corrupting the Oracle system or data links of any kind. And this means that Bob can easily bribe or corrupt corrupt any oracle. And if you think about it, this becomes a really big problem.
We had a theoretical million dollar contract that Alison made with Bob, where Bob could steal half. Theoretically, you could steal 500 thousand if you corrupt this oracle system. But now, if you zoom in , Bob becomes a pseudonym. You don't know who he is. And he writes contracts with Alice writes contracts with Alice , Charlie, David, Fred, whoever.
Right? Now he can suddenly steal $2.5 million, damaging that internal price benchmark. And of course, it scales to unlimited sizes unlimited sizes . So Bob could theoretically have a huge incentive to corrupt his oracle system.
So oracle system. So , our view is that in a permissionless blockchain like Ethereum, private economic incentives are the only tool we have to incentivize behavior. If we're not going to go back and use our legal system, we're really going to be living in this new world. And that's why we argue that economic guarantees matter here . To be confident that a smart confident that a smart contract that relies on off-block inputs will do what it promises, we need to somehow prove that there is no economic incentive to corrupt the oracle or price reference on which that contract depends.
Do you understand me yet? So deal with it. Let's talk about chain connection. Chaining is great for a second. I'm just talking about different types of oracle systems.
There are other systems that are really useful for providing continuous programmatic access to APIs. What we're talking about is a little different. We're talking about something more asynchronous, more expensive, but can really guarantee that the price source won't be corrupted. And again, I'm going to go through some of these slides, because there are a lot of them. So how do we build on what I said?
How do we build an oracle with economic guarantees? So, we define this concept of an honest oracle. And here there are two types of subconcepts. We start with the idea that any oracle on the blockchain is corrupt because our only tool is private economic incentives for modification to drive behavior. This means behavior.
This means that there is always a certain amount of money that you can pay someone on some blockchain system or off-blockchain price source or something else to corrupt it. And so we define that the lowest price that you can corrupt the system for, we define that as our price of corruption. Separately, if you corrupt this oracle system, there are all these contracts and all this value theoretically associated with it. What is the maximum profit? What is the configuration of the universe in which you could steal the most money?
We define this as our profit. And then, putting that together, we have our own kind of definition of what an honest oracle looks like. An honest oracle oracle looks like. An honest oracle is one where you can prove that the cost of corrupting that oracle system is always greater than the profit you could gain if you corrupted it. Does this make sense?
Yes. Is there? I mean, how would you like to protect yourself from something irrational or something like that? No. So, it defends as if there are rational economic actors, and actually gets very boring for a second.
Um, you could make the argument, let's say JP Diamond of JP Morgan doesn't like this future financial world, and that's why he's spending $50 million to blow this thing up, right? And this might actually be rational for him, as a one-time attack. But, um, but it was actually Albert who mentioned this in the prisoners' dilemma. If you turn this into an iterative game, it doesn't make sense anymore because it's just going to pop up again and Jamie Diamond can't pay $50 million every time to shut it down. So ultimately rational economic incentives, you could argue, will win out will win out eventually, um, when this thing gets big enough, but that's kind of tangential.
Good. Yes. Um, anything else Good. Yes. Um, anything else , guys?
So okay, let me just explain this concept with our little diagram. So, Alice and Bob have their contract for a million dollars. Profit from corruption is how much money you could steal from this contract if you could control the price. Um, in this example, Bob may steal half of the contract, but it's not his. 500 thousand.
Alice can steal 500 thousand. So, our corruption So, our corruption is its number of 500 thousand. Um, our price of corruption is how much it would cost Bob to bribe an external price link to corrupt this system. Good. So how do we actually build this oracle with economic guarantees?
This is a three-step process. Er three-step process. Er , create a system to measure this cost of corruption. create a system to measure the profits from corruption and then develop a mechanism to monitor these two quantities to control this inequality and prove that everything is working. Uh, that's what we're going to try to do.
Uh, I keep it high-level, I have a lot of great white papers and other resources, and I look at it much deeper, but at a high level, how do we do these three things. So, we measure our cost of corruption using tradable voting rights . So here we have a token where token holders have voting rights. Their voting power is weighted by the number of tokens they hold. And we use a "fire point" type system where voters vote on price requests or price disputes.
Um, and they get paid a reward for voting correctly, voting with the majority. They are fined for not doing so. The game theory behind this is that this is that it is similar to a 51% attack on a Proof of Work network. As long as there is an honest majority, the system will work properly. Which allows us to measure our cost of corruption.
Our cost of corruption is how much it costs to buy 51% of costs to buy 51% of votes. Yes. Or borrow 51% of the votes. Not quite. Right.
So this is where it gets really interesting, if you can lend 40-51% of can lend 40-51% of the votes, how exactly do you win, but then you need to think about what the economic incentives are for the lenders of the voting rights. If you lend your voting rights, it's not like you're lending something truly valuable. So you really should be very you really should be very , very afraid of lending your voting rights to the wrong person, because if you lend them too cheaply, someone might screw up the thing, and that valuable voting right that you had would be nullified. So this is a very interesting line of thought: what happens if people lend their voting rights, what economic incentives arise? Yes.
What does it mean to vote correctly? The majority rules, which is also a very interesting question, isn't it? This is like becoming a philosopher, where is the truth? The truth is what the majority says. Hmm, yes, be very philosophical about it.
Hmm, but that's an interesting question when you actually consider some real-world examples that are interesting to think about. Hmm, you remember the sudden Coinbase crashes, right? I forget whether it was ETH or Bitcoin, or the price dropped by about 50%. Such sudden collapses also occur in other traditional financial markets. Do you think this is a good price or not?
Is this price considered accurate or not? And the answer is: it depends on the situation, right? So, just like on the CME, when this happens with traditional futures contracts, they decide whether they want to stick to these prices and consider them real or not. In this case, if you think about it from this context, whether it will happen or not, whether it will be considered a good price or not, depends on the majority. What do people think?
Okay, I'll probably take something from there. Sorry. So, the second part, measuring our profits from corruption. So, when we go back to the individual contract, it is easy to determine based on the individual contract what corruption is in the profits. How much money could be stolen from this contract if the attacker controlled this price.
So our system-wide corruption-in- profit number simply sums up all contracts using the system, and that's as a worst- case analysis. In the worst case, how much money could be drained by an attacker in the system if he were on one side of these contracts? In order for us to measure these contracts, they have to be registered in Oracle or in what we call our DBM or data validation mechanism to, uh, allow us to calculate the system-wide PSC. Yes. Is it possible to have a parasitic interest in them?
Uh, we have a super interesting solution for parasitic usage, uh usage, which involves some zero-disclosure stuff . Uh, I'm not the best expert to best expert to talk about this . Uh, it's in our official document at a high level, and it's something we'll, um, talk more about. Uh, that's really cool. Uh, but we think we have a theoretical solution to get around this.
Eh, we won't worry too much about this at first . Yes. What is parasitic use? Sorry. Uh, this whole concept of measuring our profits and corruption, uh, is based on the fact that we know who's using the system.
If we don't know who is using the system using the system , then we can't measure it, and the economic component of this is correct. Um, and you could then argue that if there is a cost to using the system, but then, and people don't have to tell us they're using it, then there's an incentive to parasitically use the system use the system . Um, Augur kind of coined the term, at least they're the first person I know to use it. Autophagy is a term used in parasitic usage, where if parasites get too big, they kill the host. Um, and I think that's a great analogy great analogy .
We have a solution again, how we can absolutely limit who can use the system. Um, and yes, it's an interesting topic to talk about, but okay. So, we have completed the first part. We can measure our cost of corruption. We got the second part.
We can measure our profits from corruption, except for this parasitic issue, right? Um, part three, how do we ensure this inequality so that we make sure that the cost of corrupting the system is greater than what you could steal? And we do this through what we call a variable commission policy or a variable tax policy, where if and when the cost of corruption in the system approaches a lower bound. So, essentially, when this inequality is threatened, we launch attacks on the users of our system. So this applies to contracts that use the system.
We charge them a fee, and we use that fee to purchase voting rights on the open market to support the market capitalization of the cost of corruption. And because we do it programmatically on the blockchain, it's entirely plausible and you know it's going to happen. So we have this really cool cyclical effect, right? When the users of the system, the outside speculators, if they see that this inequality is threatened, they know threatened, they know that, uh, this market force will come in and start buying tokens. So maybe you can imagine outside speculators having a free option when the market price, uh, gets close to that lower limit.
This is probably the most interesting part. We'll look at this in a little more detail, but this is like a high level of how we, uh, reinforce this inequality. Yes. Would you ever release tokens if one is much smaller than the other? Hmm, no, I don't think so.
So there's this, um, thinking about it from a business perspective, you think about what a business is trying to do, they're trying to maximize profitability, right? Hmm, they want to create as much money as possible, and in that case they might issue shares or something. If, for example, their stock price is really high, they're trying to, for example, raise more money or something, right? In our case, what's really interesting is that we're not trying to maximize profit; we are only trying to ensure that this inequality is controlled. So we want to make sure that we charge enough fees to control this disparity, but no more.
And it's actually really interesting. This is an interesting thing about cryptocurrency with the Ethereum blockchain. It's an interesting and strange business model to think about, where you're trying to make enough money to guarantee the security of the system, but you're not trying to pull the bread out any further. Good. There's a bit of math here.
Do you guys want to continue this? No. Yes. Good. So, to measure the cost of corruption, an attacker must control half of all participating tokens.
So by So by participant tokens, I mean if there are a lot of voting tokens that don't vote, right? They don't actually protect the system. So we have this ADA parameter, which is simply the percentage of tokens that are not participating. So our value of y here is the number of tokens with token entitlement provided by half of the participating tokens that an attacker would need to take control of the corrupt system. Then our cost of corruption, um cost of corruption, um , is the price at which it costs to buy these tokens.
We call this our cost of corruption. Um, it's actually quite simple. It's just what I said in words. Measuring our profits from corruption is simply adding up all the numbers of profits from corruption under individual contracts. This gives us our system-wide PFC number.
Then we rearrange and solve this inequality. So, we combine these two elements and solve for the token price that needs to be maintained for the system to be safe within this system of profit from corruption. And, essentially, this says that we need to double the profits from corruption divided by the supply of supply of participating tokens. And if we just put some real numbers around that, if we assume that the contracts in the system are symmetric. So, let's say we have a million dollar contract.
Let's say we have $100 million worth of contracts in the system, total margin in the system. At any given time, the profits from corruption will be $50 million. Half the value of the system, which means we need the value of half the voting rights to be greater than $50 million. Multiply everything by two. We need the market capitalization of these voting rights to be greater than, uh, the total margin in our system.
Okay, this is a short presentation, so I'm not going to talk about, um, how we're going to do this, and then I'll add this last thing that we're creating as a buffer. So we call this a safe price, like a buffer above this minimum price, we call this our safe price. Okay, so how do we maintain a safe target? It's just with this software ransom. So each period, each voting period, we calculate our target price by observing the system-wide profit from corruption.
We look at the current market capitalization price. If the system is lower than where it should be, we levy a tax. We calculate the commission we need to pay to ensure the security of the system. We collect tax and carry out redemption. And we do this repeatedly.
This is similar to central bank currency containment. We do this repeatedly and programmatically. Hmm, more math. But what's really cool about this is how it actually looks, ahem, like a perverted discounted cash flow model for traditional companies traditional companies , where the value of a company's stock at any given point in time is the market's expectation of all future dividends. In this model, the value of our voting token is the market's expectation of all future redemptions of all future taxes.
And what's really cool is that in the early stages of the system, when the oracle usage is expected to grow , the market will set the price based on that expectation above the lower bound, above where it should be. This means that in the early stages of the system, the use of the Oracle system is free. Or, as long as there is an expectation of growth, the use of this oracle is free. We think it's pretty cool and pretty wild cool and pretty wild , when we can actually use economic incentives, we can actually use the expectation of future buyouts to subsidize the cost of using the Oracle system for other purposes. Good.
So what stage of implementation are we at? We have a published document. Links to this entire presentation are available in the Discord channel and elsewhere. And all of this is available on our GitHub. Uh, there's a flurry of tweets you can look at that summarize some of these concepts some of these concepts , sort of like what I was talking about here.
We would love to receive feedback on this white paper. Uh, feedback on the mechanism and criticism of this whole way of thinking about the world. I like it. Uh, we also released our code and it's on the testnet . Uh, he's completely ready.
He is working. We really created this thing. This is D1, right? It doesn't do everything, it doesn't have all of our functions, but it's more than just a theory. Uh, and again, we'd love to hear love to hear any feedback or criticism on it.
Uh criticism on it. Uh , and yes, it's the four of us , and yes, it's the four of us here. Come and talk to us about it. Remember, we're actually doing the more specific part here. We have this synthetic token thing, right?
You can use our system, our infrastructure, to create a synthetic token to track real- world assets. This is an example of a DeFi use case that then connects to our backend oracle. So all this talk is about the theoretical oracle underneath this thing. Um, and that's all. And actually, I think I mostly kept track of time.
Um, so how do you make money from this? I mean, how are you going to support your business? We, um, in true cryptocurrency form cryptocurrency form , we don't want to have a business. Um, we just want to own a portion of the tokens. So the whole premise is that these voting tokens have to be valuable.
If we can make this oracle useful as a dispute resolution mechanism, this oracle of last resort that is truly decentralized, if we can make this a useful thing, these voting tokens will increase in value. And so we actually want to provide a lot for freight. Um, a lot of it is just open contributions, especially when it comes to financial contract infrastructure. So things that are simply used need some kind of oracle. We want to provide all of this for free.
Um, for example, our synthetic tokens, um synthetic tokens, um , synthetic tokenization contracts and other things, um, solely with the intention of these DeFi the intention of these DeFi contracts, which are DeFi, growing and being used, and our oracle, um, increasing their value. Yes. So, would one of the paths to profitability be either to form a consortium, or to join one, or essentially a mass of, let's say, ISDA members, and then try to get them on this voting token, and then try to, whatever it was, like it was after Basil, um, try to get some of these OTC contracts, for example, onto the blockchain in a way, and then through that, like, you think about it, is that some kind of route, or... maybe to give everyone else some context, for example, ISDA stands for International Swaps and Derivatives Association. Um, they are the main association that actually writes legal templates for institutional derivatives traders.
Hmm, I think that's interesting, do n't you? But, to be honest , we're much more interested in the grassroots approach, where traditional institutional derivatives work well, right? They work well enough. If you have $100 million and want something like Trade Shade, go for it, right? We're much more interested in creating a system or this DeFi thing where, if you think about what we call it, universal market access, we're much more interested in how we can create synthetic financial contracts or this global financial infrastructure and see it as a grassroots thing.
So, the token distribution, like we don't do, we don't do some crazy token launch. We're going to do it very organically and distribute these tokens to people who will vote. The only thing we are really concerned about is voter turnout. So we want these tokens to spread all over the place, um, quite organically and quite grassrootsly. Um, and honestly , I think it's a long way to go before institutional colleagues want to do something so radical.
Yes. Yes. One more question. So maybe it's in the official document official document . I haven't seen it, but like, um, you clearly outline the demand for the token, but under what conditions are you going to sell it?
How does it work? Do you have anything to sell the token anything to sell the token , if possible, to balance these, um, costs and, um, profits? Do you sell it back at you sell it back at any point in time? Um, something like equilibrium in the future or near future, like a token? So you're worried that the cost will be less than the profit, right?
So you would buy it, right? To make it more expensive. Yes. To corrupt the system. Does it work differently?
This is interesting. So I don't think that's necessary, because otherwise, if the value of the token is trading much higher than it should be, um higher than it should be, um , it must be market expectations about future usage, and all of that just means that the system is safer now. What worries me a little is the quick speculation, speculation or something like that. This is somehow bad. But I think we're just using words and rhetoric to try to temper people's expectations and keep them sane.
So, essentially, there is always demand for the token. Yes, there is something like a fixed offer. Fixed supply Fixed supply , but there is always demand for it. Yes. Yes.
Can you tell us a little more about how fees are charged? Yes. So, there are a few different implementations or possible implementations that we've looked at. We are considering here that there is something like a message. It's almost like a tax notice issued by an oracle if they need to be collected.
And because we have this registry, which is a way of writing an interface for contracts that use an oracle, we want to be able to collect these taxes in almost real time. But, to be honest , it's not all completely finished or settled yet. So, there are still a few different possible implementations of how we can do this, and frankly, we'd love to get feedback.
Automatic transcript — names and jargon may be misspelled.