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

Loading player…

Chainlink by Johann Eid

DevconWed, Oct 9, 2019, 12:00 AM

Berlin Ethereum Meetup 2019/06/18 Interoperability Edition

Transcript

all right hello everyone thank you all for coming so I'm you and I'm a product manager and developer evangelist at channelling so today I would like to discuss the problem that you are solving at channeling so the smart contract connectivity problem first off why does my contract why does my contracts matter why do we like small contracts why is there super practical and super well revolutionary first my contracts have some really key properties they are deterministic they're reliable there are tamper-proof whatever input you have into a smart contract you will know the output now that's a big change from the digital agreements that we have today so in today's word for a derivatives contract for an insurance contract for trade finance it can always be delayed right so let's say a payment needs to be done once package is delivered well for some reason this payment could be delayed by a third party which would act maliciously or just be unreliable right so basically digital agreements of today are quite unsure they're unreliable and if you have a choice to basically have our world economy turn into something that is better that is more secure and more reliable then you should probably do it right so smart contracts are great but why are we not using them today why today don't you have all these enterprises the businesses using smart contracts well currently smart contracts cannot communicate with the outside world it means that the real world data so market fields IOT data for trade finance for insurance all of this stuff is not accessible on smart contracts so basically they are siloed and that's where is the interoperability expect comes if you don't have access to real world data you have access to nothing basically you have access to the data that's on the blockchain this data is not going to change over you're not going to make a lot of stuff with it right so let's go over the history of smart contract to basically see where where we came from and where we want to go so at first when Bitcoin came we had multi-sig so basically I think if you had multiple signatures you allow the transaction to happen so here you get a couple of input which were the signatures and the output which would always execute was allowing the transaction to happen then we got protocol opcode smart contract so basically you add a smart contract you want to embed it into the protocol you had to contact protocol developers for them to kind of implement your smile contract so that's a very bad approach because first it's very lengthy it takes time to implement and it's very unsecure because you have to modify the protocol control to the protocol code each time you don't want to start touching protocol codes every time you want to implement something right it's very unsecure so then we got etherium saviour basically which created the 10x improvement on which read before now you are able to estimate contracts which could be rolled up in a few well hours a few days and without needing any protocol change right so when this happened we saw the wave of tokens emerging so basically people had the freedom to start coding up tokens releasing them on the blockchain and that's what happened like you if you give developers tools they'll start building and they'd start creating stuff that you wouldn't think of before so that's what happened we had a lot of tokens being created and that's fine that's great however it didn't change the road right like nothing that disrupted already it kind of created a movement but if you want to take it further if you want to kind of disrupt to kind of create something better more transparent more secure for the enterprises the businesses then we need to go a step further what is a step further it's basically allowing smart contracts to have access to real world data so real world data what are those well market prices insurance like basically everything as it can be in a digital agreements as of today we need to have it on the blockchain we need all the important inputs to be fed into smart contracts to trigger reliable contracts which can basically allow you to have services which you had before in digital agreements but which were unreliable right so basically - can you explain what I was saying here we have basically data providers which would be market prices which would be IOT data and basically those will allow you to as smart contracts for for instance if you want to track the package delivery of value of a package right so you have multiple API endpoints which are fitting you which are tracking a certain package when this package gets delivered you will have access to a payment right so you want to do a payment let's say in Bitcoin so basically in this case you need to have access to the price of Bitcoin so you meet multiple data fiends to provide you with this price so that's what I'm saying basically it's having inputs which are which will basically allow you to trigger a smile contract which will do a payment which will basically generate an output and in this case unions for insurance contract I was discussing the tracking of the delivery of the package delivery and the price of Bitcoin for instance so you have multiple use cases with Shannon curves inputs the outputs and being able to communicate across block chains basically so now all of this is fine we won't secure input here on secure outputs and now how do we achieve it well first let's talk about how not to achieve it let's say currently if you were to use centralized Oracle to trigger a smart contract so let's say you have one record feeding data into a highly secure highly decentralized computation system which is built on a theory on mass market right now this system doesn't make much sense right because you have the middle piece the smart contract which is very secure and then you have the input which relies on one centralized Oracle which means that if your input gets corrupted it gets hacked or is just malicious then your contract will be triggered for no reason whatsoever so you basically don't want to have an architecture where the middle part is very secure or where the inputs and the outputs are insecure or centralized so in this case we strongly advocate against such a system which shouldn't make sense you want end-to-end reliability your system is as secure as the weakest part of your system right so how do you have an to end reliability now a challenge we have multiple approaches to it right our main approach that you are using right now is decentralization so very similar to a theory on to Bitcoin where you have multiple actors each of these actors has a version of the state of the network so basically of the block that should be appended to the blockchain well here each Oracle has a version of the data so it should be fed into the smart contract and probabilistically we can assume that if most Oracle's have the same version of the data then this data is probably the reliable it's probably the right data right very similar to consensus in Bitcoin or in theory on so we are using the centralization to find out what the right data point is what the source of truth that you'll be using in your contract is so that was the example I was talking about previously but I forgot that I just slide here so too bad well just to go over it you have a delivery package API which is easy post which will feed data into your smart contracts you have multiple Oracle's to do this basically having multiple or Acuras filling use the same data source is important because if you had only one if it was taken down or malicious it could probably die right so having multiple ones is an insurance for security and for reliability so once your package got delivered something will be triggered inside the smart contract which says okay package got delivered I should make your payments how do we make this payment in Bitcoin so you have multiple Oracle's each one of them using data provider which will be this basically feeds the right price for the for a Bitcoin and you can now make this Bitcoin payment from your smart contracts so it's basically how we envision such a simple use case right but you have so many out there like let's say for insurance you could have you know the new Tesla cars have a black box in the car right so you could have IOT data feed data to your my contract whenever this like er gets into an accident or something similar the black box will signal it to the smart contracts and you'll be able to reimburse automatically using an insurance contract the person who who got into the accident right so that's another example and you have so many out there like basically every digital agreements can be transformed into a smart contract so yeah basically our line of body of work a chain link is creating multiple chain links multiple Oracle and data providers which can allow you to have all the functionalities that basically currently iOS developers or Android developers have whenever you create Weber was created for instance you had access to Google API rights with access to SMS API to payment API well we want to have the same for smart phones why developers we want to give you guys the tools to have access to whatever API you need to build in complex systems which can one day disrupt and revolutionize small like digital agreements basically it's about making smart contract the main form of their agreements in today's society and for this you need the right tools to do it right so that's basically our vision now on our security we have multiple approaches right but the more secure is the better if you are going to trigger smart contracts with we're basically billions or trillions of dollars could one day depend on you need very very highly secure inputs and outputs so the centralization is one approach we have another one which is called the G trusted execution environment so chaining recently is working with Isis three basically Isis redevelop Town Crier Town Crier is basically an Oracle which is using the trusted education environments to feed data into smart contracts so these have some very interesting proper properties first one is I have a very small attack surface so whenever you're using the TE it cannot be accessed by the OS or the application so there is a very small attack surface on this kind of hardware which is trusted execution environment and how does it work exactly so what is the T and how do we use it like don't cry for instance let's say you you want to feed data into a smart contract so you'll have a ton per contract on the blockchain it will get a request from a users contract to provide data it will ask the new operator which is running a trusted execution environment to provide this data and is this not operator like so te e is composed of an enclave and an enclave is a part of the trust execution environment which is basically which guarantees you confidentiality and integrity so the one can see what no problem what the not operator is running and even the not operator cannot see what code is running right so basically it allows you to be fully confidential in what you're doing and this property of confidentiality and integrity allows to have many use cases the first one is basically optional computation where you can send encrypted code to the trusted execution environment it will decrypt it it will compute it and then it will send it back so that's one of the properties another one is being able to manage credentials so now that we know that trusted execution environments allow you to be fully confidential free private even the not operator cannot access it it means that basically you can send credentials to it and no one will be able to see what these credentials are so that's how you want to do a payment using a banking API or PayPal you know whatever like you'll be able to send these credentials to the trusted execution environment for it to be processed and it's the same for private keys I think a very nice property which which you should be able to appreciate is basically being able to use private keys which can be managed by not operators running T's and since no one can see this private key it can just be sent and it can allow us to sign transactions on other block chains right using su nice property of confidentiality that trust the execution environment offers so yeah let's not go too much into this yeah basically I think that's mostly what I wanted to discuss so just quick recap I think it's important to understand that inputs and outputs like what we're trying to do a chain link is really securing and connecting the real world data to smart contract to the blockchain world so you can never be too secure to do this that's why we want to use difference in depth approach we use decentralization we use transit execution environments and we are going to use many other solutions so we are using we aren't thinking about many other ones so you want to be able to connect all the real world data into smart contracts for you guys to be able to develop compelling applications which can one day disrupt today's digital agreements so basically our mission is to give you guys the tools to build stuff that currently can be built with applications such as iOS and Android being able to build these applications on the blockchain and leverage the smart contracts which have such nice properties such as not relying on third parties being deterministic and so many hazards so it's basically building tools which can allow to build more secure more transparent and more efficient systems for developers that's about it we've been on block also we've been on the main net for I think two weeks so we are currently ramping up more and more on our integration side so I don't know if you guys saw the Google announcement recently where Google will be using chain link to provide bigquery data into a theorem so basically chaining is used as a middle where to do this and we have partnerships with Swift we have partnerships with in crypto companies and reductions and we want to make this vision come true which is to basically interoperate between crypto and the real words we want to kind of take crypto out of the intranet where it is currently based basically it's very siloed you know and it doesn't communicate with the real world and take it to some things that can really you know change the world basically so yeah that's it thank you and if you have any questions happy thank you very much to the great talk this te trusted execution environment it's something like super revolutionary to me is it already something that works is it like can I see it somewhere in the code yeah it has it has a lot of promises it also has some veneer abilities currently many companies are working on it Intel SGX arms also is using its own implementation so you can go to tamper your website and see basically in production use cases but it's I think too early to have contracts rely with billions of dollars on it so it has a lot of promises it could really revolutionize a lot of stuff you are doing currently like but still takes more time like you I think it's the second layer of the defensive depth approach you know like the first one that you have to remember is decentralization the second one which is very nice to have is G if it works it's huge yeah just wanted to confirm a bit the architecture really quick so chain link has its own network it's its own chain and it has permission to write to contracts on aetherium with real world data yeah so sorry chain link is not its own chain so basically chaining deploys smart contract are you theorem currently we are doing a theorem which we are blocks an agnostic right so we want to be on every big block chain where's my contacts are developed so there is my contractor theorem is this my contract which will receive a query from a user contractor the user contract wants to get some piece of data market prices IOT data whichever you know so it queries a chain in contract which will carry an Oracle node which is obtained and this Oracle node will query data source will fetch data from an API endpoint right or multiple and ports so that's the way it is and so yeah no it's not it's own chain however we have not operators to run this note basically this Oracle note we are talking about so it's not it's own chain but it has its own kind of economic system and again theory system yeah great thank you thank you okay thanks a lot charlie [Applause]

Automatic transcript — names and jargon may be misspelled.