Dapps with iExec and Confidential Computing

ETHCC 3 · March 2020 · 22:13

Gilles Fedak presents possibilities for building dapps with iExec and confidential computing.

Speakers

Topics

From ETHCC 3, hosted by Ethereum France.

Transcript

hi everyone so my great pleasure to be here today this talk today is about I exact and confidential computing and what you can do by mixing two technologies together a blockchain and confidential computing and what it can bring to your geode apps so in this torch the idea is to introduce you this new paradigm confidential computing and we are going to see several use cases so those use cases are very different some of them have been actually implemented by exec and are running some of them are more like kind of perspective or

prospective so that can gives you you know the ideas really that you can see the the great future that is coming with confidential computing so let's start ok so the outline of the talk is the following first I will give you a brief introduction to AI exec for those of you that don't know the project yet then I will not really explain in details but just give you an overview of what is trusted compute or confidential computing or maybe you have heard the name of an clays IntelliJ X so these are all the same things and I'm going to

overview this and then the main the main point of this talk will be the use cases and I will try to introduce them gradually so that you understand you know what feature are available and what they can bring to your dubs and finally there will be a very brief conclusion so that we can go at the party just after this distort so that I exactly are doing decentralized a cloud computing so what what what does it means basically we are creating a decentralized marketplace that allows anyone to monetize their

applications there are data or they are servers and we are using the etherium blockchain to advertise the computing resources and the key word here is decentralized so it's a decentralized marketplace which means that people interact the peer-to-peer way and we I exert as a company we are delivering the protocols and the software of course but we have no special role in this marketplace there we are there are there is no central authority so that's one thing the second thing which i exac is that we provide an actual solution for doing of shine computing so off-site computing that the

idea that you will not execute everything on chain a part of your depth we run unchain as per contract and another part of your depth will run off Shane using foreign di exactly inside Witcher and why do we need option computing to address several issues that exist now with public blog chain scalability privacy and connectivity you will learn that after during this tour so to give you a brief overview of i exac it started the project started in 2016 created by two former research scientists so my good co-founder is a

high O'Hara was at that time professor at Chinese Acadia Academy of Science and myself I was at that time a researcher at in we are we did or I see you in April 2017 and since then the team has been growing a lot we are no 25 people we are based in Lyon we had the roof at the conference so probably you have met many of us I think we are Halford the team is now there in in Paris for you to present a project so since then we have released four version of AI exact gradually delivering new features and the last one was delivered in December

last year so a very fresh one we have solved many of the the issues at the moment i think that i exac is probably one of the the project that can really offer of shine computing plus confidential computing so so trusted execution environment or t what is that this is a hardware solution to provide data privacy and data confidentiality so think it as a sort of extensions of your cpu that will undermine create a nun Claes so a nun Claver you think it as

kind of a bubble or safety you know safe it's a sort of encrypted segment of memory and everything that is delivered to that is transferred to this and clav the processor we make sure that somehow nobody can access to what is in this and clave okay so this means that even if you are route even if you are the owner of the machine the application and the data that are within this Enclave are protected against the owner of the machine so there are several technology to implement that one of the most usual it's the the CPU manufacturers that

propose such a technology at the moment it's pushed by Intel a lot and the commercial name is IntelliJ except me may have heard about that the similar technology are also proposed by arm by AMD and I and so forth so at AI exact since more than two years who have been quite active in this area in particular we contribute to the etherium Enterprise aliens of shame trusted compute specification that has been really in cooperation with Intel we are also part of the confidential computing consortium which gathers many actors in

this area such as Google Microsoft and so forth so in terms of what we are doing with Anne clays we provide an SDK and this SDK gives gives developers a full end-to-end privacy-preserving option computing solution so what does it mean it means that you can ship your application your input and your result there will be always encrypted and no one will ever have access to that more than that the SDK offers you the guarrantee that your execution has been correctly that the

execution has been correctly educated meaning that no one can tamper or modify the result of an execution so that's very important and more than that we provide an unchain attestation that your application has been actually executed within an enclave and so that no one can claim that this is an enclave where if it's not an enclosure so one important thing is that as a developer you probably do not want to code your your application using the low-level sjx library so to avoid that we are working in collaboration with several key

provider such as cone photonics and graphene and here the idea basically the big picture is that you come with your docker image that contains your regular application then some magic happens and your application is executed as this without any modification in an unclaimed okay so that's the magic we are not exactly in that situation there are limitation due to the to the Essex technology but this is what you are trying to treat you so to understand the rest of the of the tote I will give you some information about how I exec works so the goal when so the the way you

execute application with i exac is what we called a task execution so the granularity of execution is a task and basically it worked like this you have the requester so the requester asked for a task execution and to execute the task we must find the providers that will give the resources to execute this task so there are three kinds of providers the one that provides the application the one that provides the data set and the one that provides the servers server that has the enclaved and if everything match then in this case we can seal a

deal and record that deal in the blockchain and then there is a protocol called proof of contribution that will make sure that everything happens correctly so here as Jiggs the I mean the trusted execution environment key happens at the trust level so you can say as a requester okay I want the trust mechanism for running this application to be provided by a zigs and then the proof of contribution protocol will make sure that eventually the application has been executed within a known place and you can get this information on chain so the first use case we can have is

trusted execution so trusted execution this is a proof that the execution went to an an without having been modified by the arm by the machines so with this you can create trusted Oracle so I know aculon it's a small program that allows to fetched of sharing information and report that the information unchanged within a smart contract so we've trusted execution you can make sure that no one will be able to provide malicious information so you can use that to create trusted random generator for

gaming for instance or price feed for this the so for instance this morning they're gonna talk with a Keiko Keiko is a date market data provider and together we built a trusted Oracle that makes sure that we use you know the price feed the phones and the Bitcoin price in u.s. dollar is a trusted Oracle and so the information you get is the actual information provided by Tyco and no one has been able to chain that information in the mean time so another thing that you can do is to address the privacy issue so you know that when you're

running on the public blockchain one of the key issue is that every information is public so one way to avoid that is to pass all sensitive information of shaineh so how to do that with I exert that's fairly simple actually so we run what we call a secret management service that itself runs within an enclave and so you can send your secrets to the SMS and the SMS will manage that for you once the governance has been resolved unchanged so once we know who can access those secret then the SMS will deliver that secret to the corresponding enclaves so secret goes from one place to another without ever being the disappear so with that for instance you

could use a regular web dot 2-0 API you know like points out I wanted those payment think of stripe or PayPal or whatever and then use your own credentials send those credential to the SMS and then and then being able to process like payment on your behalf we did an unclaimed and your credentials can travel the network without ever being revealed to anyone another example of things that we can do is compute an encrypted data so how to do that we fake the exact well that's very simple actually you encrypt your data then you can store them on ipfs so it's a public

remote storage okay so anyone can access the but of course I encrypted and the key to decrypt the data are itself are themselves managed by the SMS okay so for instance this is an example we did in collaboration with an Intel and that has been demoed at the RSA Conference last year so you know that typically you know medical image are very sensitive information and you want to make sure that for instance if you have your own medical data no one can have access to this so we did this this demo last year so we consider the medical data to be sensitive so

there are always encrypted they can travel the network to some places where there is an ia in a program which is called ni learn that those neuroimaging you know diagnostic from neuro image and you then as a requester you get back the result of the diagnostic but at any time you know your data has never revealed to anyone another use case that I'm presenting now is that this basically allows for new model for data management ization and ownership so imagine the situation you have a program that

generate data within an enclave so if the data is generated within the Enclave it can be generated and generated wants and so it will be unique and nobody will ever have access to the data to this data and more important no one can copy the data and the fact that no one can copy the data actually gives this unique weenus of the data or Oscar City if you if you want to to have a little modern one unique data and as you remember I exactly also allows data monetization so the side effect aren't not side effect but the the nice thing with that is that you can actually be our owner of the

data and then run this data to someone so that means that anyone who will access your data for running a particular computation we had to pay you so this is very interesting for several use cases like gaming or art on this kind of application where you have a unique content so more than that what you can do is to create a unique content that can be monetized and so imagine you have this situation where there is a gaming asset it has been generated for you this gaming asset allows you to have a unique identity in the game for instance can be another

town and you can expose this gaming asset through a not fungible token okay so this non-tangible token allows your data to be traded between several users so the cool thing using confidential computing associated with this NFT is that if you transfer the ownership of the data to someone else then you can you will actually lose the the access to the data you just sold and this is and this is where we think we can implement really true ownership transfer for data okay so as a conclusion I hope that I gave you a good overview of what you can

do mixing blockchain blockchain and confidential computing you can read more about i exac following the website the documentation are the tutorials not all of the use cases that I presented just now are can be implemented as this with ixi but soon we hope that we are going to have everything ready for that but still there are many many use cases that you can build so I do encourage you to look at the documentation the tutorials and everything to contact the team if there are any questions inclusion for your presentation

[Applause] so we have time for one or two questions hi thank you for a presentation I'm not sure I got the right I got it right the last two use cases so I see that it's the blockchain Cupra which provides the uniqueness of the data like everyone can see and verify that indeed this in the last case the token is a unique in the previous in the case with the data that the accounting has is like the access the selling of the of the data is is done by blockchain right so the the data is generated uniquely if the generator

is programmed to do so first we didn't and clay right but it's the blockchain which provides the proof for that it's then because the data is then registered or the token is registered on a on the blockchain which makes me believe that there is no other talk and I can I can just check it right no what do you what you what you register in the blockchain is the ownership of these data is not the data itself so basically you create you create you create some ocean data you store the keys within the SMS that allows people to access this data and then you register this ownership through an NFT token and the blockchain okay

I'll have a centralized system which will like relate the blockchain transfer of the ownership with sharing the password sorry so till I mean how do you serve the password then so yeah so once you transfer the ownership then the idea is that you will lose access to the data that that was you know to the me to the to the data that were generated before yeah but it means that there is some centralized custody for the password no because basically what happens is that when you emit order so the data is to be used within an application so when you when you

so when you allow someone to use your data for computation you explicitly do so by omitting some orders okay so you omit an order and the order say okay basically you can use my data with this application if the computation run within an enclave and here you can whitelist object clicks application but that's another story but basically you can you have to grant people access to the application and conversely to the data sorry and conversely you can also you if you are the owner of the data you

can omit orders so that people cannot use the data so once the want the ownership is transferred then the one who has the ownership who can emit orders and those orders will grant people access to the data on its own maybe last question No okay so then sick thanks again Jim and good luck for Isaac [Applause]