Doug von Kohorn ~ Rhombus Oracle Toolset Rhombus
Ethereum Denver·Wed, Oct 9, 2019, 12:00 AM
Transcript
[Music] all right everyone we're gonna get started so again my name is Jeff I'm a co-founder of rhombus we are a formation of consensus and we build Oracle's for smart contracts and I'm gonna start with by far the most important part of this talk it's about money bounties so at the end of this talk we're gonna supply a link through which you can register to qualify for rhombus bounteous any adapt that uses a rhombus Oracle can qualify there cash prizes up to $1,000 for the first for the best for projects in addition to that the first 15 projects that commit to using a rhombus Oracle and then actually follow through whether or not they win a prize they're guaranteed to get $100 just by committing early on to using a rhombus Oracle so pay attention to this talk at the very end I'll have a link for you to register and instructions you can lock down that $100 within this half an hour that said I'm going to turn this over to Doug our CEO and technical lead he's going to talk to you about rhombic Oracle's thanks Jeff money's good all right this is good okay so this talk is specifically about our development environment for using real world data and your DAP we're an Oracle platform so we source compute and supply data to your smart contract and so I'll just start by just giving you an overview thanks thanks I'll give you an overview of what exactly an Oracle is and then I'll jump right into our development tools so first is sourcing data we have curated a bunch of really high quality data suppliers but we're also available to loop in whatever data suppliers you want and we can also wrap any proprietary data that you want included in the data that's delivered into your DAP so we again we have a booth right up there you can come talk to us if you need something for the hackathon you can let us know we can try to build it for you second is we have best-in-class computation so just to give you an example of the complexity of computation we can do on top of your data this up there is a picture a satellite image we have the satellite image supplied by digital globe or some other satellite provider and then we can run a bunch of complex functions on top of that information so here we're looking at the entropy that's generated by the infrared data of that satellite imagery and for example if a farmer wanted to insure against a heat wave for that for a week and it goes above they don't want it to go above 100 degrees or 105 degrees otherwise they lose their crop we can can compute that on top of all of our satellite data and deliver to the smart contract if it's an insurance contract on chain weather that event happened or not so that's just one example of a lot of complex computations we can do on top of your data we can aggregate we can do machine learning and AI all sorts of things like that and then last is delivery we have a bunch of different ways we can deliver the data to your smart contract we can deliver it whenever you request it so a single delivery you say hey I want the satellite imagery computed I want this machine learning result you request it on chain and we listen for that and we deliver it straight to your function your function has all your company's business logic your dad's business logic and it will trigger based on what's going on in the outside world we can also deliver information periodically so if you need something every 15 seconds 10 minutes hourly daily something like that we can set up a recurring feed for all your computations that are happening off chain additionally we can only deliver the data if there's a threshold that's met so for example maker only wanted information about the price of eath when there was a 1% change in value so we only delivered that data exactly when they want exactly when there was a 1% change in the price of eath along with the delivery there's a lot of cryptographic payload that we can include so that you know that we carried out the computation and the data sourcing in good faith and that's that's pretty much the whole overview of what an Oracle is now I can just jump into our development tools so today we released a blog post on our blog which you should check out blog that rhombic network and if you go to this top blog post about the resources that we've released for a bit a week and the hackathon I can just walk you through the Oracles that we've made publicly available we can also create custom ones for you upon request and then Jackie over here is going to walk through our truffle development suite we we built a truffle box that you can just quickly download and get started using our Oracle's so let's just start with the Oracle feeds we have a public library with all of our code and you can well we'll go through the code later but so here we have you can see we have hourly updates for financial data we selected Amazon and Vidya and Tesla just to begin with we have USD exchange rate to British Pound euro and yen and then we partnered with Alessio to give you the last hour of Earth transaction volume and transactions on chain and then we threw in a couple that we've been using for our example DAPs that we also built for you one of them is for a subscription service which I'll describe later it's what's how much eath is 10 10 cents of US dollar and some exchange rate gold exchange rate we built a derivatives contract with open law that involved our u.s. dollar to gold exchange rate some temperature data and then a random number generator we we found that a lot of people just want a source of entropy in their adapts so we're we're able to give you that entropy if you just ask right now we do it as a random number one through six and then we also can I randomly do it delivering a color of the rainbow if in case you want to make a colourful DAP that changes so quickly just to go through an example if you click this link you can see it's the US dollar two eath exchange rate this is a smart contract that's deployed on rinkeby we can also deploy it on Gurley if you want just ask but right now we've just defaulted to rinky and you can see that we deliver the price of eath exchange rate to US dollar every hour and it's been going back I think we made this live about four days ago so if we click into a transaction here you can then see that the two values were delivered on the actual value and then a nonce we don't need to really care too much about the nonce and I'm just gonna quickly translate that into a number for you all so if we translate this hex code into a number it looks like it's 120 point eight five and I'll just walk through one more we have more documentation online it's all on this blog post I just want to show you a random string from the color of the rainbow so if you click in we deliver this one every 10 minutes again if you ask we can increase the rate that we deliver your data and we can also customize the data for your DAP so here we have a random color that was sent and let's see what it is looks like we got blue as a string so those are some high-level examples of the auricles we have available for you right now and we've also released under the MIT license three different depths that use our lighthouse contracts our Oracles to do subscription services so here we deliver the price of eath daily and we poke adapt on chain that then sends a dollar to a wallet of your specification so here we're paying a dollar to a wallet every day based on some subscription they might have the live tab is here and this one is a subscription tab where you can get an a minute you can subscribe for a minute based granularity of video feed this is totally imaginary it doesn't exist but the all the subscription happens on chain using our exchange rate Oracle to do to negotiate the price and once it has the price it can register that the user has maybe purchased ten minutes of video feed and then here we've created a example Depp using the ERC 7:21 fungibility token we have a price of gold Oracle and we use the ERC 7:21 non fungibility token to represent a unique gold bar that's been minted and then you can split that gold bar up into tinier tokens which you can then trade around and all of this is based off of live updated US dollar to gold prices so definitely check those DAPs out if you want to make a subscription service or use non fungibility tokens and your daps we have a whole bunch of stuff here all of its MIT license so you can use it and play with it and fun so that's the overview of the DAP and then I'm gonna let Jackie show you the truffle development suite hi everyone I'm Jackie I'll be going over a project I have created a demo D app that will showcase how you can interact with the rhombus Oracle's and how you can utilize our local testing framework to its full potential so for the hackers out there this is how you can get that first place forward from us okay pay attention so start off with an overview rhombus has currently deployed a bunch of different Oracle's onto the rinkeby test net they provide you with a different information such as the price of ether temperature of cities they can provide youth random numbers and colors everything you can think of and if you have anything that you would want created that is not on our current list you can come to us and we'll build a for you right there custom made now whenever you're doing your D app development you'll probably be doing a lot of testing with it you'll want to interact with our Oracle's to see how it works what kind of return values you get and how you can incorporate that into your project this is a bit of an issue because our Oracle's are on the rinkeby test net and you will be doing your development using truffle on a local chain so in order to do testing with our Oracle's you'll have to simulate a rhombic Oracle and deploy your own on to your local chain and I'm going to go through how you can do that we have the code provided for you you can use it as a reference and it will be uploaded for you as well so if we jump into the truffle build folder or the truffle contracts folder you'll see four pre-existing smart contracts here we've provided you our lighthouse code that you can utilize in your testing as well as an interface that your smart contract will use to obtain data values from jumping straight into the project we use the truffle framework in order to do development and so if you're unfamiliar with that I would strongly suggest checking out the truffle documentation before you head into our Oracle's so to develop and test locally on truffle you will do everything you normally do with the smart contracts writing test cases in solidity or JavaScript and you just need to add one step before everything which is the step of developing and deploying a rhombic lighthouse Oracle and writing a value into it right this will simulate what we the rhombic team have done had created on the rinkeby test net so you create a new lighthouse and you write a hard-coded value into the lighthouse that you can then access with more information about the project this sample project I've created for you to use and reference is a gambling game it's a smart contract which allows you to deposit ether into it and to bet that either you've deposited onto the outcome wave of a dice roll now the dice roll is a random number generation event and typically this is very hard to do on aetherium blockchain because every node has to generate the same random number rhombic is able to bypass this because it's able to compute a random number off chain and then deliver that number to you through our Oracle service so this is the code for my project you can run through all the details on your own time and go through each of the functions understand how it works but to loop over view of a highlight of how to interact with a rhombus Oracle when you construct your solidity smart contract you have to pass in the address of the lighthouse that you'll be using into the constructor this tells your D app where it needs to go to obtain the information from the lighthouse rhombus Oracle and in order to access the information you can make a simple read call into the Oracle as shown on this line you call the lighthouse and you look at the data in it and o return the value to you in this case it's the lucky number that we've chosen that will win our dice roll so once again all of this code will be available for you on our blog post you can look through this demo project and utilize it you can change the code and alter it a copy it do whatever you want if you have any further questions about this project or about how to get started with developing with rhombus please come to our desk on the second floor we'll be happy to help you with that and now I'd like to open the floor space to questions that you might have for us thanks Jackie so any questions about developing using rhombus getting custom data delivered to your DAP or anything like that sorry sir question are you okay yes yeah yeah so the question was to just to go in more detail about the entropy the random number that we send on chain so we use cellular automata to generate the entropy it's an uncomputable function it's kind of like a Mersenne prime where you start with a seed and then you go from there and and once you get several steps out you don't there's no real way to predict what the next number is going to be so that's our source of entropy it's pseudo-random in a way but it's as random as any other source of entropy that we that you can get and then to make sure that the same value gets delivered on chain this lighthouse contract is receives the data the random number that we send and then that gets loaded and or included in the blockchain so now everybody who's reading from that lighthouse contract gets the same number okay exactly yes that's how we were able to release 20 of these Oracle's and each one has the Amazon price or the temperature in Boston and that all gets delivered to one contract we can do custom feeds which we call direct delivery but we're not releasing that for the hackathon that's something that we do more custom sure so the is when are they available on main chain and the answer is we're already on main chain it's very easy as easy for us to go from rink B to Maine net or to deliver to a private net we've we have all the code in place to immediately switch you over to Maine Maine net if you want that so for Oracles that deliver things like crypto prices what is your like authority on a price source do you hit like a bunch of different exchanges and kind of take a median or do you you know do anything like that or so it depends on your use case we've we we've released one that gets its source data from a publicly traded company that we can't divulge except one on one so we have several different people that we we source our data from and often we aggregate them all together and throw out some outliers and just take the median value that's that's a traditional but we're able to do any sort of add any sort of robustness that you want to your price feed if you just come up to us and ask we can customize the exchanges that comes from but we're trying to be an Oracle platform so we really care about the quality of the data that comes in and we do a lot of vetting and we only take you know the best data suppliers that are available for a certain real world event you touched on this but how do you verify that the that you know the computation or whatever that's the input data is valid so there's a lot of ways to verify input data it depends on how paranoid you are about where your data is coming from a lot of the times we have a whole ETL cycle that includes a lot of people who are making sure that the data comes in is consistent reliable and computable like up to a very high standard but if you specify something like FlightAware or a different API that you want in your Oracle it's often just the HTTP ssl signature that you do and the HTTP call so that signature uses DNS and might not be a the level of reliability that you want but we can offer a lot more guarantees on top of that if you if you just ask sometimes we will make the provider sign the data sometimes will sign the data ourselves or provide a hash of all the computation that's happened and then sign that and deliver it we can have a custom secure payload delivered with every value if you want and how how if you I assume you can integrate in with like a private chain that maybe is a consortium chain on hyper ledger fabric can you explain just briefly how you would interface or invoke an Oracle contract or you know to retrieve data back to a private chain so we're trying to be trying to have the best and easiest way to start using Oracle's so for us if we're if we're trying to deploy to a private chain it's as easy as giving us a node or an account on that chain an RPC endpoint and we can manage the whole process the same it's the same exact pipeline for management that we use for main chain for test net versus private we can just scale horizontally very easily hey how do you deal with the potential conflicts of interests you know as I trusted Oracle oh sorry yeah how do you um how do you manage potential conflicts of interest as like a trusted party so the question is about conflicts of interest so we this goes back to the security of the underlying data we can provide cryptographic payloads that attest to the reliability of the data where it's been sourced what's happened to it along the way and each one of those security measures that we add on to the payload reduce the conflicts of interest I would say there's probably no way to reduce it to zero we can't but we do our best and if you really need if you're really paranoid about the data that you're getting and the computation we're doing we can just keep layering on more levels of security until you're confident one of the things that I'm excited about that we might be releasing at the end of this year is zero knowledge proof payload so you can use that proof and query it and prove beyond a reasonable doubt that we did everything you asked but that's later in this year these are good questions any more questions all right well I'll leave it with Jeff to do the sign-off thanks everyone [Applause] cool so just to wrap up the rhombus talk I want to review the Bounty's one last time the four best DAPs a teeth Denver that use rhombus Oracle's receive cash prizes up to one thousand and the first fifteen projects starting right now that commit to using a rhombus Oracle can guarantee a hundred dollars it's probably the quickest 100 dollars you've ever earned and the way to do it is to register on our telegram channel right now so it's t dot me slash rhombus network if you go in there there will be instructions you need to include your name your project and the Oracle that you plan to use as soon as you do that you're on our list of the first 15 you can come visit our booth for the next steps thanks very much everybody
Automatic transcript — names and jargon may be misspelled.