Construire une place de marché décentralisée : l’approche d’iExec
C’est lors de l’Ethereum Community Conference 2019 que Gilles Fedak, co-fondateur et CEO de la startup franco-chinoise iExec, a livré son approche des places de marché décentralisées, à travers l’exemple de cette plateforme de cloud computing distribué.
Créer un DEX sur Ethereum avec iExec
DEX signifie Decentralized EXchange. Il s’agit d’une place de marché où les échanges entre les participants se font de manière décentralisée, sans passer par un tiers de confiance qui se charge d’approuver les utilisateurs et de centraliser les ordres d’achat et de vente.
Les plateformes d’échange de cryptoactifs décentralisées telles qu’IDEX ou EtherDelta sont des DEX bien connus, mais il existe des plateformes pour tous types de marchés (par exemple OpenBazaar, Auctionity, etc.). Construire une telle place de marché sur Ethereum n’est pas chose aisée, et Gilles Fedak a partagé son retour d’expérience.
Quelles sont les caractéristiques d’une place de marché décentralisée ?
- Les transactions s’effectuent de pair à pair, sans autorité centrale prélevant des frais de transaction;
- La correspondance des ordres d’achat et de vente ainsi que les paiements sont traités de manière automatisée, via des smart contracts déployés sur la blockchain.
Un DEX est donc bien une application décentralisée, et hérite donc des mêmes propriétés : résistance à la censure, sécurité, irrévocabilité…
- Sur une place de marché centralisée, l’utilisateur doit accorder sa confiance à la plateforme, qui possède un mécanisme pour évaluer acheteurs et vendeurs.
- Sur une place de marché décentralisée, il n’y a pas de tierce partie, donc il faut un mécanisme pour évaluer tous les participants de manière automatique et transparente.
Une autre caractéristique très importante est la sécurité et la confidentialité des données des utilisateurs. Sur une place de marché traditionnelle (centralisée), l’utilisateur envoie toutes ses informations personnelles, sans avoir la possibilité de choisir quelles données resteront confidentielles. Sur une place de marché décentralisée, il y a beaucoup plus de flexibilité quant aux données que l’utilisateur choisira de communiquer ou d’offusquer. Par exemple, le prix pour un échange donné peut être gardé privé, tout comme l’identité des parties participant à l’échange.
Le maître mot des exchanges décentralisés est donc “trustless” (sans intermédiaire de confiance) : il faut trouver des mécanismes pour s’assurer que personne ne puisse tricher.
L’exemple d’iExec
iExec est une place de marché décentralisée du cloud computing. Il s’agit d’une plateforme d’échange où les utilisateurs peuvent acheter et vendre des ressources informatiques : serveurs, applications, jeux de données…
Le token RLC, quant à lui, est nécessaire pour utiliser la plateforme. Ce token utilitaire est utilisé pour inciter économiquement les participants à échanger leurs ressources sur la plateforme et il est l’unique moyen d’y accéder : les fournisseurs sont rémunérés en RLC.
Grâce à un système appelé Proof of Contribution (PoCo), le token permet d’aligner les incitations économiques des participants, et de s’assurer que tout le monde se comporte correctement : lorsqu’une tâche est exécutée par un fournisseur de services (worker), le résultat est évalué par cet algorithme, qui va déterminer si la requête a bien été exécutée avec le niveau de confiance demandé. Si c’est le cas, le paiement sera effectué.
Le premier design à réaliser lors de la construction d’une place de marché est celui du modèle de transactions. Dans le cas d’iExec, il s’agit tout simplement de l’exécution d’une tâche. Un utilisateur demande l’exécution d’une tâche informatique et place un ordre. Les workers vont alors placer des enchères correspondant à cette requête : lorsqu’il y a correspondance entre offre et demande, l’échange est initié.
Ici, le modèle des prix est celui du “pay for task” (chacun paye en fonction de la tâche qui a été effectuée). C’est très différent du cloud computing traditionnel. Chaque transaction correspond à une tâche ou à un ensemble de tâches effectuées en un temps donné.
Dans cet environnement trustless, où l’utilisateur ne connaît pas la machine qui va exécuter sa requête, l’algorithme PoCo se charge d’assurer le niveau de confiance requis. Pour ce faire, le mécanisme utilise le staking (séquestre de fonds), l’évaluation de la réputation des workers, et la certification des résultats.
Avant d’exécuter une tâche, les workers mettent une certaine quantité de fonds sous séquestre (stake). Le niveau de confiance requis est calculé en fonction de la réputation et du stake des workers, et en comparant les différents résultats. Chaque tâche sera dupliquée tant que ce niveau de confiance demandé n’est pas atteint. Les workers qui donnent des résultats erronés perdront leur stake, tandis que ceux qui donnent le bon résultat seront récompensés : ils seront payés pour leur tâche et récupéreront également le stake des “mauvais” workers. Leur réputation est ajustée après chaque transaction.
Décentralisation ne veut pas dire pair-à-pair
Dans un réseau pair-à-pair, chaque nœud est à la fois client et serveur.
iExec est une place de marché décentralisée, mais certains services et composants de la plateforme restent centralisés. Par exemple, si chacun peut déployer une Dapp sans permission, le Dappstore est une liste de Dapps sélectionnées par iExec. Le worker pool manager est également un élément centralisé.
Cependant, n’importe qui peut prétendre au rôle de worker et tout le monde est encouragé à y participer, qu’il soit spécialiste de l’IA ou simple utilisateur d’un ordinateur individuel.
La structure de la place de marché d’iExec repose donc sur des protocoles centraux (le PoCo et les smart contracts) délivrant les services principaux de la plateforme, auxquels peuvent se greffer des services externes.
Vers de nouveaux usages et business models
L’approche décentralisée d’iExec permet de créer de nouveaux modèles pour le marché du cloud computing : la plateforme permet d’échanger de la puissance de calcul comme une commodité classique, et donne ainsi la possibilité à des entreprises comme à des individus de monétiser leurs ressources informatiques (serveurs, PC…) La puissance de calcul est comme du fuel : peu importe qui fournit cette commodité, ce qui compte, c’est le prix ! L’utilisateur ne sait pas quelle machine va effectuer ses calculs, mais il connaît leur prix et le degré de confiance désiré. Le prix d’une tâche varie donc avec le temps.
Exécution trustless avec les enclaves Intel SGX
Un des challenges du DEX d’iExec est de s’assurer que les données des utilisateurs restent privées. Pour cela, l’entreprise utilise les enclaves Intel SGX. Ces puces permettent de confiner les données de façon chiffrée en un endroit inaccessible, pas même par la machine-hôte. Ainsi, personne ne peut altérer l’exécution d’une tâche où accéder aux données qui doivent rester privées. Cette solution confidentielle de bout en bout garantit l’intégrité de l’exécution et en fournit une certification on chain.
Grâce aux enclaves SGX, il est donc désormais possible de louer des jeux de données tout en restant propriétaire de ces dernières.
Les challenges d’implémentation
Bien entendu, iExec fait face à de nombreux challenges :
- Régler le problème de la scalabilité de la place de marché ;
- Découpler le mécanisme de courtage (comme 0x par exemple) ;
- Réduire la consommation en gas (en mettant en place une sidechain) ;
- Permettre une gestion plus complexe du carnet d’ordres (ordres OTC, discounts, etc.)
Quant à la gouvernance du protocole, le modèle d’iExecc est hybride : le mainnet assure le stockage de la valeur (tokens), et une sidechain optimisée pour la place de marché décentralisée stocke les deals et les résultats. Il y a donc plusieurs questions à se poser : quels nœuds sont autorisés à maintenir la sidechain ? Comment mettre à jour le protocole de consensus ?
Ces problématiques doivent être résolues par consensus des détenteurs du token : investisseurs, traders, utilisateurs, fournisseurs et opérateurs de services…
Les DEX, killer application de la « technologie blockchain » ?
En conclusion, Gilles Fedak fait le pari qu’à l’avenir, une fois ces challenges relevés – scalabilité, coûts des opérations, performances globales – les places de marché décentralisées seront la future killer application des blockchains, après les cryptomonnaies, bien entendu !
Vidéo de la conférence (en anglais) :