Interview with Thomas Bertani of Oraclize at DEVCON1 in London
23 Dec 2015 · 16:56
Thomas Bertani, founder of the oracle service Oraclize, discusses building a provably honest centralized oracle for Ethereum in this Epicenter interview recorded at DEVCON1. He explains how Oraclize combines the low cost of a centralized oracle with strong security guarantees, and how TLS Notary technology underpins its provable honesty.
Speakers
Topics
Transcript
so right now I'm going to interview Thomas bertani who who is developing a service called Oracle eyes it is I think the first provably honest centralized Oracle to be used with its idiom so first Thomas your introduction thanks and yes what you are doing here is providing as you just say the probability honest Oracle Service which means that we are pushing some data from the internet to ATM smart cards so since mark contests cannot access of chain data directly what you are providing is an IP I for smart contracts so that you can have your smart contract that relies
on some some data coming from the internet such as weather conditions or price data feeds the exact that all pretty much anything that can be verified on the Internet so what does it mean provably honest probably honest means that we have a solution for the main issue of Oracle's because our whole the one of Oracle's is not a new concept it dates back to at least two years ago probably more and the main issue with Oracle's is that being centralized they can quite easily alter the data coming from a third party so you cannot really trust them we are probably honest because we are sending back to them
contact that is sending the data squaring us cryptographic proof based on TLS notary and so that we can show that a certain content that we are providing was really provided and sent back to us by a certain server at a specific time so essentially we have an integrity proof okay so for example imagine that I am the contract and I basically get data from you and you are or wreck lies in the actual data might be coming from a service like wolframalpha but what I get as a contract from you is proof that you got that data from Wolfram Alpha a certain time yes you get back the actual response
coming from this API and they identifier for the proof so at the moment we are just sending the proof not on the blockchain et room directly because the size is quite big but we are sending it to I PFS and then we are then sending back to the calling deuterium contract they identified the IDS on I PFS so that I am any code can verify our honesty based on the state of the Chilean blockchain so our ashes that are contained last order and the actual proofs that are stolen I PFS ok so so let us get into what these proofs
exactly are because that is the most interesting part of it what is what does a proof contain and how is it posed made essentially when you are exchanging data with an HTTPS server which has a TLS on the other side and then there is an exchange of science content so what the TLS matter is doing is providing a format file which is containing all the data needed to verify that this contact came excited from that server so you contain all the ad either information so that you can reconstruct the whole packet that were exchanged and then the eris a signature coming from the server
that is what you actually verify so this is based on a signature verification action so when the Oracle Oracle is is communicating with save wolframalpha let's take the assumption that the ultimate data is from Wolfram Alpha yeah there's oracle eyes in the middle then oracle I sends the data to the smart contract and a proof that Oracle eyes got the data from wolfram alpha into I PFS yes they print and the way we are getting the proof is using the TLS not area code base directly so instead of calling directly they were from our API we are asking this to the ntl not very cold there is a tool which lets you get both their spots back from the
server and the actual proof so so tell me again what what does the proof exactly contain and what does it prove does it to the time and the exact response then the proof contains all the data I needed to verify the signature and the actual RSA signature so since in the other of the response from the server you usually have also the time this means that in the other you have all the informations needed to understand both the origin server and the time that this server sent this specific content so you cannot actually change the time so so let's take the
example that the data is the price of ether in dollar yeah right so it keeps changing time to time and then timing is very important right if the if the timestamp is is correct then the whole feed might be in current ultimately so so how so how does the proof make sure that you as the Oracle are not sending data which was one hour whole or essentially and with all the data that are included in the proof you can fully reconstruct the old content that the server sent back so once you once you
have done that you can check that it exactly does match the one that I realized i sent you before so you can reconstruct the old packet and the content the body of the page directly for from the proof and you can check that the packet contains the date because they for example the Kraken server has sent you back even the time the response time so you have both the time including which is assigned a part of the sign content and the actual content all in the same count all in the same structure which is verified the signature ok cool so so so that's pretty brilliant because what it allows
is it allows allows you to have a centralized Oracle and that centralized Oracle could be taking multiple data sources like from google from Wolfram Alpha from free free base and then if all of the data sources match then you're pretty sure that the editor is correct yes actually this logic finding consensus on different data sources can be implemented already directly in the smart counter on the smart contract side but what you're doing is providing some helpers which hopefully will be ready in few weeks so that the contract can just ask for a certain content and we are the one taking care of asking two different
data sources obviously this will be available just for some type of queries but I think it this is very interesting and definitely useful ok so how does your service differ from previous Oracle items like reality Keys reality keys is not signing and the content I mean Reggie's is just putting a signature of some content fetch from a third party so they are not using a TLS notary technology this means that yes you have to put some trusts in them and as long as you trust them their content is considered by you trustworthy right because there is the signature problem
proving this came from them the difference is that even if our proof is probably stronger at the moment you cannot verify our proof on the smart contract itself so you need an external code running which can check in real time the blockchain and I PFS to check all the proofs and see if we send some asteroid data back so in this case you can have an external service which is checking in real time our honesty and reporting in it to Oracle's for example while I and reality keys can be verified directly on the contract so this means that for for our service we could be
lying essentially just one time because after that all the network will know that we are not writable anymore okay so in a sense like your concept could be one of the cheapest Oracle's you can be cheapest test for the Oracles that can build for this helium system right because all of the other ideas like all girls Oracle need a lot of need a lot of gas usage because there's a lot of people putting data yes and then there are complex matrix matrix algebra taking place on that data but all of this is avoided by oracle eyes right mmm yes actually an oracle eyes is more generic because for example over and the other prediction markets cannot just send you a response in a timely manner because
you need some time to find a consensus between the one giving the actual response why Lorelei's is much faster both oracle eyes add some downsides and such as the fact that I being a centralized service we can be we can add down times for examples so obviously since we have all the interest to build a good reputation this is something that we are really being good at anxious but over essentially cannot be stopped as a concept while Oracle is being a central server can have a some time down times and other than these potentially oracle eyes could be banging some contract
addresses obviously this is not something that you have interest to do but these are downsides of all centralized services right that's that's that's quite interest is actually depends on the application or what you are doing for some kind of application for sure Oracle ice is just cheaper and probably and faster and but you have ready to understand if you can beat something on the top of it of or if you need something unstoppable and which which we work in the same way even in 10 years such as what or over could be so how does Oracle eyes intend to monetize it service we are providing
we have a pricing model which is based on on a page views API so essentially you are paying us for pretty much all the course or to the service and the first call is free so that you can start building a chain of course to alkalize without caring of funding your contract during the during the contract creation and this means that for example if you want to fetch the price of kraken every minute you can just have the first goal to start in the constructor of the contour so as soon as the contract is created and then every time you get a response back from miraculous you can in the callback function implement all the
logic to call oracle eyes again to recast the same so in this way every minute you will get a response back from Iraq lies with the price all these calls are to be paid and both because we need to get a profit to keep the service running and to pay for the gas for the callback transaction because what you are doing is to pay a certain guess limit we set I guess limit ends we pay some gas and for the transaction we use to send to to the calling contract our response back so so essentially like it's like the payment logic for other
classes also on etherium so so my contract can call the oracle eyes contract send enough gas yeah and then you're the other class contract will reply with the data and then we can also implement a function that that that oracle eyes the Electress contract keep sending the same data item designated periods of time yes is all this functionality already implemented yes so when they wanna just the truth about are already in place are pretty much all of these are shown in our code snippets that are available at the F dot Oracle IIT so we have our fork of Cosmo it's a web ID and we have a widget which is an Alper let's say to
integrate with alkalis so you can test your queries before they actually technician in the code to see what the response back will be and here we also have four code snippet which are pretty interesting to understand how the whole thing works and we are adding more so so what what features are you going to add now what is other new features you are going to add now we want to integrate other data sources because at the moment we just support Bitcoin block chain which means that for example you can get the balance of a certain address watch from alpha and since we have a business contract with them and URL which means that you can do either get or a post HTTP request to any API on the Internet
so this last one is the most generic why the first two are what we call strong integrated ones so we are trying to beat some more strong integrated ones since they are way easier to integrate with the code and you don't need to specify the old URL which is also expensive as of gas from the colon contract and so yeah we are in the process of adding many new data sources and i hope the community will enjoy playing around with them that's the one of this would be Amazon Mechanical Turk so we did something like a simple algorithm to find a consensus in their response given back by Amazon Mechanical Turk operators
so you can ask them almost anything so it's something like a prediction markets bath with a small with a centralized server services which is the one of amazon and just a small time stamping in which you check right for some use cases it can be very interesting for example if you want check to check something that is not easily verifiable with an API such as is bitcoin vat exempt in italy this is not easy to verify from a smart contract because there is no api available but you you would be losing something like this mechanical turk data source and we just say you will just specify exactly this same discussion and the system will
try to find a consensus and get back to you the shoulder sponsor which now is yes ok so basically you can use Mechanical Turk or mechanical talks as data gathering for data gathering people there's a data-gathering yes obviously this is not as reliable and trustworthy as over but for some kind of applications it can be very interesting and this one just one of the data source we will be providing are there any apps that already use your service and we released it just a few days ago so I'm not aware of any external application but I know that there are many developers we started with started
playing around and we were we are already building applications on the top of our service so for example two months ago we want the London Finn next week a catan by implementing flight delay insurance which was automated based on the top of etherium with our eyes cool so we can our listeners find out about reckless you can find more at www Odo's organized ott and there is an the ideas and we say that deaf daughter oculist ott and all the documentation is available at docs lot oracle isolated thanks a lot for joining promise texel the interest