New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

EthCC 2: Kenny Chandrasekera

Ethereum ParisWed, Oct 9, 2019, 12:00 AM

EthCC 2 The Ethereum Community Conference is created by the community, for the community. It brings together great minds and forethinkers, and allows the community to grow. follow us : @AssethFR https://ethcc.io

Transcript

hello everyone thanks for coming my name is Kenny Chandrasekhar I work on rhombus and rhombus builds oracles if you don't know what those are stay tuned if you do we'll be talking about the theory that necessitates Oracle's and also what they look like in practice and how they can be used more specifically here's the agenda we'll talk about the nature of the Oracle problem how we've chosen to address it and lastly some decentralized applications that are currently using rhombus Oracle's okay so let's just zoom out beyond Oracle's and talk about barriers to a mass adoption with blockchain I think everyone can agree that user interface is a work in progress a lot of people see like wallet addresses when they try to use if they're armed apps and we need to be more user friendly people are waiting for network effects if they're considering between a centralized application a decentralized one what would cause them to switch to a decentralized application one advantage would be that the decentralized application and time gains more and more users and so actually brings benefit to any individual user who chooses to come on board then there's also scaling issues one of them is speed of transactions and other is number of transactions how many can we support this goes hand-in-hand with the other two bullets up there and lastly there's integration with existing systems this is the one I want to focus on today it's the one that the Oracle problem tries to well needs to solve so there's this quote that paradise is a walled garden and it might be confusing but what I mean is that paradise literally means walled garden the root words for paradise our Indo Persian but I and these together they mean to build a wall around in ancient times in India Persia people built sort of an attempt to make heaven on earth that build this magnificent garden and put a wall around it why do I bring up this point so what we built with blockchains is actually sort of like a walled garden not in the way that you think of with the centralized powers that run a lot of the internet today but we've built a set of protocols that if you follow them should work as long as you have enough independent actors what's limited is their uses unless you have a way to bring in outside data and that is essentially the Oracle problem you want to take the the world is it exists and block chances they exist and sort of figure out how to breach this wall and the way that people conceptualize that is replace like the wall with the moat and build some bridges over that moat and the bridges are essentially Oracle's why do we call them Oracle's this goes back to it's confusing but in classical antiquity an Oracle would be a priestess that you could approach at a temple journeyer would go there and ask her to divine the truth tell them about the future they would take those learnings and then go back to their lives and act on that information so an Oracle is hopefully a less mysterious thing than a priestess but it will find a way for decentralized applications to act on existing data but there's like more than that nature to the Oracle problem there's also the problem of defining truth so here are some questions that decentralized applications might need answered in order to function properly and if they get accurate or expected answers they might take a path that leads them to an expected result but if they get an answer that is sort of outside the bounds of expectation any number of unexpected results can occur so here's some seemingly simple example questions what is the price of ether in USD and that's still ambiguous because it depends on what exchange we're talking about what is the wind speed in Paris and that again depends on where in Paris so when people think about how they want to use Oracle's they have to become very specific about what sort of answer the Oracle will give you might need to choose an aggregation function to answer these questions or you might have to be really really specific about the where when why and how and those simple questions have a problem which extends to obviously much more complicated questions here's one problem from image processing our neural networks that might ask how many clouds are in this photo and as you might imagine that really depends okay so here's where rhombic comes in why do we want to call our Oracle solution rhombic well that's one reason it's easy to flip and you know makes a nice shape but really it's because rhombic has four pillars the shape rhombus has four sides before I go into how rhombus fulfills these expectations of these pillars I want to go over a little bit of terminology this is like the most word heavy slide but I think it's important that we have common vocabulary if we're going to talk about things and understand each other so smart contracts and decentralized applications are programs that are stored and executed unblocks in articles are really data feeds for these smart contracts I say feed in a sort of loose term that could be something that's delivered once or periodically or conditionally rhombuses an Oracle provider and this just means that rhombic builds Oracle's and here's me attempting using a sentence rhombus built an Oracle to send the price of gold to a smart contract that allows people to purchase and settle call options and I'll go into that example a little bit later so back to the pillars accuracy is really important and this connects to how we defined the problem of truth you can only be accurate in so far as that you can be consistent and specific with the way you answer any one question that you have and so rhombus does the computation of any answer to a question in a consistent way and this is as close to the truth as we can get computability everyone's sort of grappled with the problem of sending and receiving too many transactions or doing too much computation on chain this gets really costly so it's important to find a way to compute as much as possible off chain and deliver the minimum viable metric for a decentralized application to function security goes kind of hand in hand with compute ability once you have that much stuff going on off chain just be able to show where data comes from and steps of a computation and lastly dependability if you're running any serious application needs to know that data will be delivered on the schedule that's required and it might surprise you to know that a lot of Oracle providers don't actually have any delivery guarantees but rhombic wants to support people from you know building your projects on the side all the way up to and to grow and to press great applications and so we take dependability pretty seriously and then we'll just explore some current applications open law used rhombic to build a decentralized application that allows you to purchase call options and essentially what happens is user logs in and sees the price of a troy ounce of gold in ether let's say it's ten ether and then let's say they have the they buy the option to purchase tokens representing gold at 11 ether 24 hours from now and then 24 hours from now again the price of gold is delivered to the app and the user has the choice to exercise that option that they bought one of my favorite applications of Oracle's is parametric insurance insurance today especially when it comes to disaster relief is extremely broken often providers I've been insurance are slow to do payouts they might fight the authenticity of a claim and payouts actually might end up being a lot less than the consumer of the insurance originally expected all three of these were definitely the case for citizens in Puerto Rico who experience a lot of devastation in 2017 hurricanes Irma and Maria were pretty destructive and the founders of hurricane guard found out that a lot of them were not receiving the payouts that they expected and so they decided to build hurricane guard which is a parametric way of providing payouts essentially premiums are paid to a contract and then upon verification of an insured event payouts are automatically sent to people who paid their premiums so they built some pretty complex models to figure out what wind speeds were on the ground at any given time and then use rhombic to process these models and deliver minimum viable wind speed readings to say okay yesterday between the hours of 6:00 and 10:00 p.m. wind speeds exceeded eleven miles per hour and that is a category three hurricane son the path so I guess the stages of actually building and delivering data involve sourcing competition and delivery so I just want to go into a little bit about how rhombic does that in terms of sourcing I just talked about how we can use proprietary data this time from hurricane guard to deliver to their own contracts but we can also use best-in-class api's and really we don't prescribe what sources to use we expect people building the contracts to be able to point to what data sources most ideal for them computationally we can go from the very simple we talked about calculating price of ether through say a median aggregation function to something a lot more complex in this use case let's say a farmer wants to buy insurance against too much variation in temperature which could cause destruction to their fields this is another parametric use case so over time we can get readings of infrared satellite data and compute entropy which if too high will result in a payout so this is something we're talking about doing with a on and oxfam and ether risk decentralized insurance platform in sri lanka for small crop farmers and lastly there is delivery everyone has different processes for how their contract executes in the case of prediction markets really only a one-time delivery is usually needed in the periodic use case like I discussed with the open law options contracts they get press feed that occurs daily and then there's the conditional use case which we do for maker and I'll go a little bit more to that right now so here's a case study in which we have multiple sources this is for the price IV 13 USD which maker uses so think up there we've got six six different exchanges and then we do an aggregation that throws out statistical outliers more than two standard deviations from the mean which results in going from the first histogram up top to the second and then we can take the median from there and that is a metric that's delivered every 10 minutes as long as the price of ether and USD has changed by more than one percent so this is a case where we have a specific type of sourcing computation and delivery we're live on maintenance I just wanted to point out how you can get started I will put up a bunch of links to resources later but essentially the top left is a screen shot of docks and the bottom right is a contract that you can inspect on ether scan as you can see from the age column this is a hourly feed and then so where are we going from here from sort of more near-term to more long-term in the more near term we'd like more API like interface for folks who are used to getting variable results from an API instead of a feed that's sort of constant in the parameters that it takes as input secondly we're really into risk-neutral feeds and this is sort of like uninsured data feed people are worried about what happens if the data feed takes an unexpected turn maybe it doesn't deliver the results it wants maybe a source upstream goes offline how can we ensure that the Zap keeps functioning and so as the product matures people will be able to price the reliability of feeds and pay premiums for those and in the case that they don't function as expected there will be payouts most long-term is the concept of a zero knowledge Oracle where an Oracle computes on data that it doesn't understand or know the content of and delivers the result without any knowledge of its application so here are a bunch of links that you can use I'll just leave this up as we go into questions there's Doc's there is a truffle box that we release so that you can mimic the use of a rhombic Oracle while you're developing locally so that when you deploy to a test net and eventually maenette there'll be fewer hiccups for you you can find a bunch of sample Oracle's that we've put up and are live now and feel free to use these during the hackathon later this weekend these were useful for a bunch of the finalists in the East Denver hackathon which happened a few weeks ago and we hope you'll like them as well there's some taps that use those Oracle's and then at the bottom there's ways that you can follow us and reach us thank you [Applause] hi all right hey I'm on a technical level what makes rhombus different unlike all the other Oracle's that exist in ethereal that's a good question so one I think is the ability to provide reliability guarantees okay real reliability guarantees I guess I I won't name names but some Oracle services are pure libraries that you can drag and drop but you can't go to them if something happens that you don't expect they're not considering risk-neutral feeds they don't make any guarantees Nestle is about response rate and response time and then they're also Oracle marketplaces out there they don't build feeds like rhombic does they simply want to post them and be a place where you can go buy data feeds and yeah then if you're just like I'm kind of like a normal Oracle why not instead of like delivering the services yourself and be a node that is part of like chain link there's no reason why you couldn't do that there are many ways that you can reach an Oracle provider you can go through a channel like chain link you can go directly to them I don't think there's a any conflicts if you prefer to be on chain link that's that's totally up to you well it depends what security guarantees you're looking for but we can provide a digest of all the competitions done from original source material all the way to what we deliver for verification and we can also go well it's it's verifiable you can inspect the source you can inspect every step along the way and then you can see if the results that you obtained through this verification process is actually the one we sent do you mind if we have a chance to ask other questions thank you sorry that what looked like was getting intense there just two quick questions perhaps one is how do you manage the demand versus supply thing and which one are you trying to put weight on I easy ie demand for particular information and supply of particular information which don't always match and the second question is who's delivering your real-time data like what's your transport layer for that ok the first question was demand versus supply what is the focus how do you balance the two so I think it's fair to say that where demand side first if anyone needs certain data and they can point anywhere in the world that they currently get it we can turn that into a feed for them it's less essential that we find suppliers for data that's not currently demanded ok secondly you asked about delivery how does that happen so we actually have two methods that are available one is called lighthouse contract and in that lighthouse contract that's basically a rhombic contract on chain that acts as a cash its periodically updated let's say every 10 minutes or every hour every day according to the specifications of the person who's using that contract for more sensitive data we can do a direct delivery to the clients contract uh yes we do Oh Oh that is agnostic actually so if a customer prefers that you use a certain provider that's fine but we could also use any of the the new solutions that are coming on board with trusted or distributed computation hi and thanks for the talk it was great but I I was wondering and how where does the normalization of the data or the aggregation of the data happen is that unchain or off chain on a central server it is off chain typically and that's because people actually prefer that we do it that way instead of them aggregating data on their contract and dealing with the computation there and again that that can be specified as needed if people are comfortable with spending less money to do it in just AWS one server that's fine but we're also talking to a lot of distributed computation providers all right thank you yeah yeah we do so they're the the baseline profit is charging a certain percentage above the transaction cost but then for more complex computation models like with say hurricane guard or the other pair met Ric insurance concept that I discussed where you have entropy calculated on satellite images that setup takes longer so we essentially charge for developer time okay maybe you had one more thanks for waiting right yeah I'm here all night folks all right so I don't know if you're aware of like some of like their Oracle Isis technical stuff and all that and so essentially and they have this system for pulling HTTP data that they use TLS notary and Oracles to provide like proof that they have like retrieved data from a point I like that data that they that they have retrieved it's actually that data that has been served from that endpoint and do you do that yeah so what most people are satisfied with is getting a root node hashed Merkle tree where the leaves are interactions with each source so essentially if you have like six different sources or eight different sources for a price of ether likes different exchanges you can provide a with the leaves of the amiracle tree are the Colin responds with each API and yeah but that's more like on the sense of how deterring but not actually proving that the data that you're sending to the smart contract is actually the same data that you received from the data point so right so if I read you correctly if I provide this Merkle tree of source materials and also provide every step of the competition from the source responses all the way to the metric that was delivered it's possible to verify that we used the correct sources and did all the computations as instructed yeah but how do I know that the source material that you're saying that you got from that source is the material that you actually got from a source like can you fake that I don't know how to fake it but uh I mean maybe you do which is I mean you're providing like the inputs computation but like you could say hey we receive like that information from that data source and actually you could have received something else and I like the whole computations and all that would be actually wrong so essentially you're the fear Allah at the end you're delivering a fake result I not sure I understand but I guess we have our tech late in the house and maybe I can get you to talk to him afterwards okay cool okay thank you thanks everyone [Applause]

Automatic transcript — names and jargon may be misspelled.