Skip to content
GregoireBailly edited this page Aug 6, 2020 · 12 revisions

A Guide to explore the full power of the iExec platform in terms of secure data valorization

General context

The iExec platform is a decentralized cloud computing market place based on blockchain. One of its advantages is the way it can be used to valorize digital assets without any disclosure.

Using what we call orders, we can define a general use case with 3 stakeholders:

  • An application provider which has written an application to be executed in the cloud and who wants to make it available to other people ;
  • A data provider who has data which could be useful for other cloud users and also wants to make them available (here he is going to be called private code provider) ;

These 2 first categories are providers but with iExec, they can be very precise in the way they make their assets available. If they want, they can only allow a whitelist to access their resources, they can ask for retribution and can force the users to use certain properties of the system (TEE, GPU).

  • The last character is a service requester: someone who wants a result, so someone who is going to ask for the execution of an application on a dataset to get some informations back.

In this guide we are going to work on a specific use case made available by the platform: the valorization of some private source code, but once you are comfortable with the way iExec works, you can basically do whatever you want.

Private code use case

Imagine you just found a brand new sorting algorithm that is better than any other (I tried really hard but couldn’t do it so I used bubble sort) and you want to make money out of it. You have to let people use it but you can’t make the code available. Sure you could use some obfuscation but reverse-engineering is always possible.

What iExec lets you do is allow people to execute your code with their input data, in exchange for some payment in cryptocurrency, with an optimal level of security: your code is completely encrypted and the only moment it’s going to be decrypted is inside an SGX enclave. Basically, here is what’s going on:

Icons made by Vitaly Gorbachev, Freepik, Eucalyp, Pixel Perfect, Kiranshastry from flaticon

In this Wiki, I’m going to explain how to reach this working situation to help you get used to iExec. The tutorial is going to be made of several steps that can potentially be skipped. In short, you can either do the whole tutorial by following all the pages of this Wiki and thus rewriting, building, deploying... all the code. Or, if you want, you can - once you did the set-up part - jump to the last page of the Wiki to test the use case using code we published based on this repository.

These codes are available on the goerli testnet, at the addresses:

  • App: 0xc348738d4Aa062D06bD4A047135bd5aA861646Ad
  • Dataset: 0x26e485f3F966a75a96Caadf551D5C327AB41Df46

(These addresses will be reminded to you in the relevant steps)


To start the tutorial jump to the first page: iExec Workpace Initialisation.

Clone this wiki locally