The Provable oracle service: progressing from Oraclize

EDCON 2019 · 12 Apr 2019 · 16:42

Thomas Bertani reviews the move from Oraclize to Provable and the role of authenticity proofs in bringing external data to smart contracts. He surveys oracle use cases, trusted execution environments, gas-cost improvements and currency flexibility, then discusses verifiable random-number generation and integration with other networks.

Speakers

Topics

From EDCON 2019, hosted by EDCON.

Transcript

all righty so out of Italy we have a main man Thomas Thomas Brittani fond of Oracle a auric lies he's gonna talk to you guys about how we can tap into our allies and bring information and data to our depth thank you hello to everyone and thank you for having me here today so what is the clicker thank you so during this presentation I'm going to give a short update on the status of our class and I'm going to explain some of the next steps and things we have in the workings so we started operating as an

Oracle approximately four years ago on etherium just after the maintenance launch and I remember during those first presentations I had to spend like pretty much 50% of them explaining what an Oracle was because it was not obvious back then now everyone knows what an article is so thanks God I can just waste half a slide to show that so basically an Oracle is just like an actor in the blockchain that facilitates the communication of smart contracts with the external world so that those contracts can reach out to like external data and for example if they need the price feed or something like that and

they can use an Oracle to get data from from the internet or like any other data from an external context so the Oracle is like a strange actor because this is a world where we are trying to get rid of intermediaries still an Oracle is like a new intermediary alright so what we want to do is like to ensure that this intermediary and doesn't like degrade the benefits or compromise the security of the network so this is why it's important for the Oracle to basically provide new functionalities that the blockchain is not capable of providing itself while while staying

safe so the articles should either be decentralized or give similar guarantees so we are going to see that in the presentation as well sorry how do I go to the next slide yeah it doesn't work at this one good so this pie chart is probably too small for you to see the details but it will help so this is like showing the distribution of use cases that we have seen with the

Oracle based smart contracts so we basically try to look on github for the projects based on our class which is the most widely used Oracle today and there are approximately 1,000 projects so those 1,000 projects have each one of them as its own use case we try to define some categories which you find here so as you can see gambling is accounting for approximately 1/5 so 18% of the end of the like as for the number of projects so this is quite significant because it means that there are many projects in need of random numbers that

look for an Oracle in order to solve the problem as they don't want to generate a random number on chain because they want to ensure the miners are like don't collude with the generation of the random number so another major use case is like I SEOs which means typically price feeds like they need to set the price of eater maybe in USD or in some other fiat currency so it's important for them to reach out to a web a API like an exchange API and check what's like the exchange rate so this is also the case for a similar case for assets and tokens in general so there are some

tokens that maybe need a collateral in to be dependent on the price of something for instance that there may be like talking that needs to check the price of cold or the price of silver or something else so this is another major use case and remaini like projects doing that smart Contras in need of that there are many other like use cases such as insurance finance and so on but as for the number of projects so there are not as many as the gambling one so we recently rebranded from Oracle is approvable to reflect the way we are changing and to reflect the fact that like our focus is on like securing this providing of data to the blockchain and

when the fact that we want to provide some proofs on the fact that the data we get from the option context is really authentic and it's impossible for us to manipulate it so the main technologies we use are like blockchain as this is the context where we provide the data in the end and trusted execution environments so trusted execution environments are like often referred to as like trusted computing techniques as well one of the major one is Intel SGX but there are many others the idea is basically to use some kind of guarantees of hardware isolation to execute some critical piece of code and the critical

piece we need from tests trusted execution environment is the so called attestation attestation means that basically we have a signature coming from like the provider of the technology that proves some claims coming from the code so basically you can have a piece of code running in a secure environment according to whoever provides the trusted execution environment so we don't want to trust the drastic the execution environment city is in full because if we were to do so bla seein wouldn't be useful so if we were to trust in full the providers of those like hard resolution then we could simply ask them to run the blockchain and we wouldn't be here today so the

idea is that since blockchain is not capable of like securing non-deterministic processes such as the one of fetching data from web aap is or the generation of a random number I think said that we try to get the best from blockchain and from T's so we try to have them work together well in a complementary fashion and this is what probable is trying to facilitate so after like four years of work we stop for a second and we try to look around and see it like what was missing right so basically on the left you see what the community wants

according to the material we had collected which means all people reaching out to us or all the discussions we had visibility of and basically what we saw is that like ease of use was critical for people approaching blockchain first and when they design smart contracts quite often they don't want to have an extra pile of complexity just because of the Oracle they want to have like a reliable Oracle a reliable way to get data but without having to you know study you know way too much material or without having to basically interact with a complex interface so this is why we try to

design like a simple interface which is which from like an outsider view like a starter it looks like a very simple API call like they just call one function called Oracle is query and they solved the problem of getting data into their contract so this is like a simple interface and under the hood it's very complex but the user doesn't need to see it unless he's interested another thing is like reduced cost so it's important for smart contracts not to have too much gas overhead while using an Oracle because basically Oracle is like an

infrastructure piece is something many applications need in order to function properly so if you have like I gas costs involved what happens is that you are propagating like an inefficiency all across the network in many contracts so it's important like north to blow the network and also not to like increase too much the user cost of interaction with application to have low gas costs while interacting with an article data security data security is another one which basically means that you don't want to compromise the security of your application so this is why when you get data from the external world you need something that we call

authenticity proof that shows the data is authentic and it has not been compromised so this is why we use the multi tee approach that I had explained the idea is that instead of using a single like te like Intel SGX to secure the data fetching from the web api he used more than one technique and basically you make you have the user choose what kind of technique that they want to rely on so at the moment relies provable is using Intel SGX quality Qualcomm trusted execution environment and des legend an OS other than today's notary so you can use these techniques to secure your data

fetching or to secure your query this is critical and the idea is that without those technologies the the Oracle would need to be fully trusted which is not what you want so thanks to those techniques the Oracle is not trustless but it's trust minimized as much as possible so basically you have the proofs you can verify the proofs and the guarantee is that if the Oracle does answer then the result is authentic because of those groves decentralization is another critical aspect which means that you don't want the you don't want the Oracle to just stop answering and to compromise the security of your

application this is the case for most smart contrasts that need to be long-running the reality is that most contracts we have seen in production right now have some kind of owner or administrator so they can actually be stopped and they will probably be stopped still you don't want the Oracle to compromise like the normal functioning of your application and security of course can play an important role there as well so as for the cost-effectiveness what we have recently done is like reducing the cost for all the basic inquiries and interaction with the Oracle of around 10% so in the best case it's reduced by 50% so it means that the

gas costs you had before to interact with the Oracle are even lower while the features like why why there are new features so we are extending the set of features for example to new features we are about to release and we have already released on test nets one is this support for token payments so if you are basically designing your contract and you need to pay for the Oracle cost for example the future transactions that we deliver data back to your contract you don't necessarily have to paying if any more in the sense that maybe your application we need to run for you know a year or so and you don't want to depend on the price of it so what you can do now is like buying

some stable coins and use the stable coins that actually to pay for the future cost so this is quite important for the operator of this Marc contract if any and they can just pay in USD T for instance in theatres or in other like popular stable coins and also gas pumping is important for like ensuring that a long-running application is always responsive as the network congestion changes so for instance when you design your smart contract you need to tell the Oracle what is the gas price for that it should use to send back the data this may change significantly over

time so having some features to change it it is really is important so right now Oracle eyes can be used either directly so you have like a sort of centralized interface so you don't have the guarantee that the Oracle will answer you have to guaranteed the answer is authentic but not that it will answer forever and this is like the cheapest option because it can be optimized a lot and this is what has the optimization I just discussed but we are also integrating with other like decentralized networks so that we can act as an Oracle operator there for instance chain link is one of these and and this is important for those

applications that value the centralization above all and that don't care about the cost so this will likely be a more expensive option for gas costs but it gives extra guarantees on the fact that it will keep running forever so these are the features we we have just seen just some numbers again we have been live since 2015 and there are now approximately 1000 projects based on our API for getting external data in and on the T domain net only we have processed approximately 1 million queries it means that like smart contracts and little maintenance I've

used or applies to get external data approximately 1 million times and this means there are approximately it typically goes between 100 and 300 contracts per month and these are like the unique smart contracts that reach out to alkalize to get external data in the random number generator is one of the main components that is being used for the gambling use case this is like both certified so if you are like a casino being run like legally with like license you need to have certified random number generator so other than you think is the proof that gives you a mathematical guarantee of the fact that

the number is safe if you trust the the provider of the of the hardware installation device then you also have this certification basically this is available on any blockchain by the way and this is like the provable security module which is the machine we use to run the Oracle service and this is what contains the multi setup so this machine contains different trusted execution environments and it can be used to secure proof of authority networks or an Oracle such as in our use case or I don't know like a u.s. block producer and much more so just to recap basically we have very branded from moralize to provable so

provable dot XYZ is our new website and we are adding new features while reducing the gas costs which is important to make the order the Oracles abstain of all in the long run and like for decentralization we are relying on like external protocols training is the first one we are going to integrate with and like the provable random number generator is going to be available shortly also an Intel SGX other than on the legend on OS so basically you have a certified and secure random number generator for your gambling dub and the probable security module can be used like for to secure any application in need of a multi tea set up thanks for your attention

[Applause]