Qu'est-ce qu'une DApp ou application décentralisée ?
Une application décentralisée, plus couramment appelée une DApp (de l'anglais Decentralized Application), est une application logicielle dont le fonctionnement est (partiellement ou totalement) distribué et répliqué parmi un ensemble d'acteurs multiples. Elle se base généralement sur un ou plusieurs smart contracts s'exécutant sur une ou plusieurs blockchains.
Les applications décentralisées s'opposent aux applications centralisées. L'usage monétaire du bitcoin, qui peut être considéré comme une application décentralisée, contraste de cette manière avec la gestion de l'euro par le système bancaire et par la Banque Centrale Européenne. Les applications de prêt décentralisé comme Maker ou Compound s'opposent aux organismes de crédit. Il existe des réseaux sociaux distribués dont la proposition de valeur est de résister à la censure comme Hive, Voice ou Memo.cash, et qui diffèrent donc des plateformes comme Facebook ou Twitter. La plateforme d'hébergement de vidéos LBRY fait concurrence à Youtube.
Le problème des applications centralisées
Pour comprendre comment fonctionne une DApp, il faut tout d’abord essayer de comprendre comment fonctionne une application centralisée classique. De cette façon, il sera plus facile de comprendre les avantages d’une application décentralisée.
Au début de l’ère informatique, les applications étaient systématiquement installées directement sur votre ordinateur. Il s’agissait par exemple de jeux, ou de programmes comme Microsoft Word. Par la suite, grâce à l’apparition d’Internet, il est devenu possible d’utiliser des applications à distance, sans que celles-ci n'aient à être installées sur votre machine. Mais avec cet avantage apparaissait un défaut majeur : chacune de ces applications était centralisée sur un serveur tiers.
Un des problèmes de la centralisation est que vos données personnelles ne vous appartiennent pas forcément. Par exemple, Facebook peut savoir avec précision quels sont vos centres d’intérêts, possède vos photos, sait à quel endroit vous voyagez grâce à la géolocalisation, connaît votre âge, etc. Il vous faudra alors faire confiance à Facebook pour la confidentialité de vos informations. Et comme l'a prouvé le scandale Cambridge Analytica, confier autant de données personnelles à un tiers tel que Facebook est généralement une mauvaise idée, étant donné les risques de fuites d'informations, que ces fuites soient accidentelles ou non.
Un autre problème des applications centralisées est leur mode de fonctionnement. En effet, une application centralisée utilisable par Internet doit être hébergée sur un ou des serveurs. Ces serveurs possèdent des adresses IP que l’on peut identifier pour ainsi remonter jusqu’à leur localisation, ou bien pour tenter de s'y introduire par le biais de failles informatiques. Si une personne avec de mauvaises intentions se décide à attaquer ces serveurs, alors l’application pourrait ne plus fonctionner.
Un dernier problème qu’il faut encore soulever, et pas des moindres, c’est que le propriétaire d'une application centralisée peut faire ce qu’il veut. Par exemple, il peut refuser qu’une personne utilise ses services, simplement parce que la personne en question a fait quelque chose qui ne lui plaît pas. Ce qui est déjà régulièrement le cas avec YouTube, qui peut décider qu’une vidéo véhiculant des idées politiques différentes des siennes ne soit pas admise sur son réseau.
C'est pour ces raisons qu'ont été imaginées les applications décentralisées.
Qu'est-ce qu'une application décentralisée ?
Une application décentralisée, ou DApp, est une application dont le fonctionnement est, au moins en partie, distribué et répliqué sur un réseau d'acteurs divers. Une DApp peut être mise en place de multiples manières, mais elle se base souvent sur une chaîne de blocs, un registre réputé infalsifiable. Selon Andreas Antonopoulos, une application décentralisée inclut généralement :
- Un ou plusieurs contrats autonomes (smart contracts) qui fonctionnent sur une blockchain (voire plusieurs).
- Une interface utilisateur transparente.
- Un modèle distribué de stockage de données.
- Un protocole de communication de messages de pair à pair.
- Un système décentralisé de résolution de noms.
Tous ces éléments n'ont pas à être obligatoirement présents, et n'ont pas forcément à être décentralisés au maximum pour qu'on parle d'application décentralisée.
Smart contracts et DApps
La pierre angulaire d'une DApp c'est le ou les smart contracts sur lesquels elle se base. Ces contrats autonomes sont des programmes informatiques dont l'exécution ne dépend pas d'un tiers de confiance, et qui s'activent automatiquement lorsque certaines conditions sont remplies sur la blockchain sur lesquels ils sont hébergés. Le plus souvent, ils sont codés pour être hébergés sur une plateforme spécialisée comme Ethereum, Tezos, Cardano ou EOS. Néanmoins un contrat peut également être inscrit dans sa propre chaîne comme c'est le cas pour Hive ou pour les sidechains de Lisk.
L'avantage principal des contrats « intelligents » est de retirer l'intermédiaire qui valide les actions. De plus, puisque toutes les opérations réalisées au sein d'un contrat sont inscrites sur la blockchain, il sera possible de retrouver aisément l'historique des conditions dans lesquelles elles ont été effectuées.
Ensuite, un autre avantage non négligeable d'un smart contract est son coût : effectuer des opérations grâce à cette technologie est relativement bon marché, rapide et sûr. Cela permet donc d’effectuer d’énormes économies dans certains domaines professionnels, par rapport à une entreprise traditionnelle n'utilisant pas ces programmes.
Une fois déployé sur la chaîne, les clauses d'un contrat autonome ne peuvent pas être modifié. Cependant, il est fréquent que certains contrats ne soient pas très décentralisés : l'auteur d'un contrat peut par exemple coder une fonction permettant de geler les fonds de l'application, de censurer un utilisateur ou tout simplement de détruire le contrat. Attention donc : smart contract n'est pas synonyme de désintermédiation totale.
L'interface utilisateur des DApps
On assimile souvent une DApp au smart contract sur laquelle elle repose, mais une DApp est souvent bien plus que ce contrat. En effet, pour qu'un utilisateur puisse interagir avec un smart contract, il faut souvent une interface.
L'interface est généralement mise en place au sein d'un site web (centralisé le plus souvent) qui permet de faire le pont entre le smart contract et le logiciel qu'utilise l'utilisateur. Ainsi, sur Ethereum, le site web va mettre à disposition une interface binaire-programme (Application Binary Interface ou ABI en anglais) pour qu'un portefeuille comme Metamask ou MyEtherWallet puisse comprendre ce qu'il est possible de faire avec le programme. Une bibliothèque JavaScript généralement utilisée pour mettre en place ce type d'interface est web3.js.
La gestion des données
Bien qu'il soit tout à fait possible de stocker les données de la DApp sur la chaîne de blocs utilisée, il est parfois nécessaire d'utiliser une méthode moins coûteuse pour héberger les fichiers liés à l'application. Parmi ces méthodes on retrouve entre autres :
- IPFS (InterPlanetary File System).
- Swarm, créé par la Fondation Ethereum.
- WebTorrent.
L'idée derrière ces méthodes est d'héberger les fichiers sur un réseau pair-à-pair, comme le fait BitTorrent pour le partage de fichiers notamment. Chaque fichier a un identifiant unique (obtenu par un hachage) qui permet de le retrouver. Ainsi, si un hébergeur décide de supprimer le fichier pour une raison ou une autre, l'utilisateur pourra théoriquement y accéder via un autre hébergeur.
Outre ces trois éléments, il est également possible de décentraliser la communication des messages, comme par exemple avec le protocole Whisper pour Ethereum, et la résolution des noms de domaines, dont Ethereum Name Service (ENS) en est la plus pure incarnation.
? Pour en savoir plus sur le protocole ENS, vous pouvez lire notre article sur le sujet : Qu'est-ce que Ethereum Name Service ?
Les différentes catégories de DApps
On peut classer les applications décentralisées existantes en 3 catégories différentes :
- La première catégorie se réfère aux DApps qui possèdent leur propre blockchain. Par exemple Bitcoin et Ethereum peuvent être considérés comme des DApps : Bitcoin est un système monétaire indépendant du système bancaire, et Ethereum est un ordinateur mondial décentralisé. Ethereum pourrait d'ailleurs être comparé aux systèmes d’exploitation comme Windows, MacOS ou Linux Ubuntu.
- La deuxième catégorie se réfère aux DApps qui utilisent la blockchain des DApps de la première catégorie pour fonctionner. Par exemple Leeroy, un équivalent de Twitter qui utilise la blockchain Ethereum, ou encore Hive, un système de blogging / information ressemblant à Medium.
- La dernière catégorie se réfère aux dApps qui utilisent un protocole de la seconde couche en combinaison pour fonctionner. Par exemple, SAFE Network utilise Omni et émet ses propres jetons dénommés « safecoins » pour son fonctionnement.
Quelles sont les applications décentralisées (DApps) les plus utilisées ?
Quels sont les avantages des DApps ?
Une application décentralisée présente certains avantages qui la caractérisent :
- La résilience. Sauf exception prévue à cet effet, une DApp ne cesse jamais de fonctionner. Cela veut dire qu'il n'y a jamais de temps mort et jamais de période de maintenance qui peut affecter l'utilisateur.
- La transparence. Tout le monde peut inspecter le code, qui est bien évidemment open source : cela garantit une certaine sécurité si l'application fonctionne depuis longtemps. De plus, toutes les interactions avec le ou les contrats autonomes sont enregistrées publiquement, ce qui facilite les recours juridiques en cas de litige entre deux utilisateurs.
- La résistance à la censure. Sauf exception prévue à cet effet, une DApp est par définition résistante à la censure, dans le sens où il est difficile, même pour ses créateurs, d'empêcher une action de se produire. Cela est notamment très bénéfique pour les réseaux sociaux qui connaissent depuis quelques années des épisodes massifs de bannissements et de censure des créateurs de contenu ne respectant pas le politiquement correct ou ayant des idées extrêmes.
- La réduction des coûts. Généralement, à chaque utilisation d’une DApp, des frais sont prélevés pour payer l’activité des validateurs. Ces frais sont généralement minimes. En conséquence, dans certaines industries où le coût des intermédiaires est élevé, cela permet de faire des économies en supprimant les intermédiaires.
- Les données personnelles des utilisateurs n’appartiennent pas à une entreprise qui peut choisir d'en faire ce qu'elle veut unilatéralement. Généralement, elles sont détenues uniquement par les utilisateurs des DApps.
Quels sont les défauts des DApps ?
A l’inverse, les DApps peuvent également présenter certains inconvénients qu’on ne retrouve pas sur les applications centralisées classiques :
- Les applications décentralisées peuvent être assez lentes, surtout quand le réseau les faisant fonctionner est saturé, ou n'est pas conçu pour la vitesse.
- Pour des DApps qui nécessitent de réaliser beaucoup d’actions et dont les intermédiaires classiques ont un faible coût, cela peut devenir plus cher que l’utilisation d’une application centralisée classique.
- La blockchain empêche l’interruption du fonctionnement d’une DApp. Le seul moyen pour faire en sorte qu’une DApp arrête de marcher serait de couper totalement le réseau, ou d'introduire une mise à niveau qui empêche tout fonctionnement de la DApp.
- Les interfaces utilisateurs ne sont généralement pas aussi agréables que sur une application classique.
- Il faut des connaissances spécifiques pour pouvoir les programmer. Par exemple, si on veut créer une application décentralisée sur le réseau Ethereum, il faudra maîtriser le langage de programmation Solidity.
Conclusion sur les DApps
Le développement des applications décentralisées commence tout doucement à entrer dans les mœurs et attire de plus en plus de programmeurs. Plus la popularité de la blockchain sera croissante, moins l’attrait pour les applications centralisées sera important.
Les DApps permettent la création de valeur. Le fait qu’elles suppriment un intermédiaire les rend attrayantes d’un point de vue financier. En plus de réduire certains coûts pour les utilisateurs, elles augmentent également leur sécurité.
En dehors des cryptomonnaies, l’adoption de la blockchain dans la finance et dans d’autres secteurs augmente l’intérêt pour la création des DApps. À terme, elles seront sans doute personnalisables et s’adapteront à toutes les activités pour lesquelles elles auront un intérêt.
Qu'est-ce que la finance décentralisée (DeFi) ? Définition et explication
Pour l’instant, il faut cependant reconnaître que les applications web classiques sont plus accessibles et plus faciles à utiliser pour les gens, tout en offrant des fonctionnalités plus larges. Il convient donc de suivre avec attention l’évolution de ce secteur pour savoir ce que l’avenir nous réservera à son sujet.
Cet article a été mis à jour par Ludovic Lars le 17 juin 2020.
Note des lecteurs