Les DApps, ou applications décentralisées, sont un type d'application dont le fonctionnement repose sur un réseau décentralisé de nœuds interagissant entre eux.
DApp est l'acronyme de "Decentralized Applications" ou "Decentralized Applications". Il s'agit d'un type d'application dont le fonctionnement ne dépend pas de points de contrôle ou de serveurs centraux, il fonctionne plutôt sur la base d'un réseau décentralisé. Un réseau dans lequel ses utilisateurs ont le contrôle total de son fonctionnement. Les DApp permettent aux utilisateurs d'accéder à différents services de manière sécurisée. Ces applications peuvent être utilisées sur des ordinateurs personnels, des smartphones ou même être accessibles via le Web.
Pour avoir une idée plus précise de ce qu'est une Dapp, il faut penser à une App traditionnelle (application/service). Dans cette catégorie d'applications traditionnelles, nous avons, par exemple, YouTube, Facebook, Twitter ou Instagram. Dans tous ces services, les données et les décisions sont prises sur des serveurs centraux. Cela permet à l'entreprise à l'origine de ces services de prendre des mesures de censure, de changer de comportement, voire de profiter ou de nuire à certains utilisateurs, remettant constamment en question la neutralité et l'égalité des conditions. Ils agissent comme des dictateurs, vous ne pouvez qu'avoir confiance qu'ils seront "bons".
Origine
Le concept de DApps n'est pas nouveau. Les premiers DApp connus ont été vus dans les protocoles de partage de fichiers comme BitTorrent o DC ++. Les deux applications sont des systèmes de partage de fichiers peer-to-peer avec une résistance élevée à la censure. Cependant, le premier DApp utilisant la blockchain était Bitcoin lui-même. En effet, sa structure et son fonctionnement décrivent avec succès le premier DApp blockchain de l'histoire.
Cependant, il faudra attendre 2014 avec la présentation de Ethereum, son langage Solidity et sa capacité à courir contrats intelligents que les DApps se sont généralisés. Et est-ce que grâce à cette triade, les DApp fonctionnant sur blockchain ont commencé à devenir très populaires. Une situation qui peut conduire à l'adoption massive de la technologie blockchain en permettant de nouvelles formes d'interaction entre les utilisateurs, le monde réel et le virtuel.
Différences entre un DApp et une application traditionnelle
Les DApp et les applications traditionnelles ont de nombreux éléments en commun, cependant, leur différence réside dans la manière dont ils interagissent avec ces éléments. Les deux types d'applications ont trois structures de base qui sont: le frontend, le backend et la couche de stockage de données.
L'extrémité avant
La première couche, l'interface, est l'interface que les utilisateurs utilisent pour interagir avec l'application. Dans ce cas, DApp et l'application traditionnelle peuvent utiliser les vastes ressources graphiques existantes pour cela. Des interfaces web écrites en HTML5 aux plus élaborées, dans des frameworks tels que Qt ou GTK. Le but de cette couche est simplement de donner à l'utilisateur la possibilité d'interagir, de recevoir et d'envoyer des informations à l'application qui l'utilise.
backend
Cette deuxième couche fait référence à la logique principale de l'application. Dans une application traditionnelle, cette logique est centralisée, contrairement aux DApp dans lesquels elle est décentralisée. Dans DApps, le backend est lié à un contrat intelligent qui s'exécute sur une blockchain, par exemple Ethereum. De cette façon, un contrat intelligent a une programmation qui garantit le fonctionnement du DApp. Les contrats intelligents étant visibles et publics, cela garantit un niveau élevé de transparence et de sécurité. Les utilisateurs peuvent être sûrs que le DApp ne fera rien d'autre que ce que le contrat intelligent spécifie.
En plus de cela, le backend est pris en charge par les API (Application Programming Interface) et les capacités de la blockchain. Par exemple, dans Ethereum, il existe plusieurs API pour contrôler l'interaction de l'utilisateur avec les couches de stockage ou d'authentification, pour donner quelques exemples.
Stockage de données
Enfin, il y a la couche de stockage. Dans une application traditionnelle, cette couche est également centralisée. Normalement, les données sont stockées sur l'ordinateur de l'utilisateur ou sur des serveurs contrôlés par des tiers. Cette façon de travailler comporte de nombreux points d'échec. Un utilisateur, par exemple, peut perdre des informations d'application si son ordinateur est endommagé. Il peut également arriver que les serveurs tombent en panne ou soient bloqués. Actions qui empêcheraient l'utilisateur d'utiliser correctement l'application ou même de perdre des informations.
Mais dans DApps, le stockage des données est également complètement décentralisé. Chaque utilisateur DApp stocke un historique complet des actions qui sont effectuées sur le réseau DApp. En plus de cela, les interactions sont stockées dans la blockchain au sein du bloques de la même. Tout cela de manière cryptographiquement sécurisée, empêchant l'accès non autorisé par des tiers. De cette manière, si l'ordinateur ou le smartphone d'un utilisateur venait à être endommagé, il suffirait d'utiliser le DApp sur un nouvel appareil pour récupérer toutes ses informations jusqu'à ce moment précis. Ajoutons également que le niveau de redondance et de sécurité avec les données augmente car de plus en plus d'utilisateurs utilisent le DApp.
Comment fonctionne un DApp?
Un DApp fonctionne de la même manière qu'un réseau blockchain. Dans ce cas, chaque utilisateur DApp est un nœud au sein du réseau. Chaque utilisateur veille au bon fonctionnement et aux opérations effectuées sur ledit réseau.
Le canal de communication utilisé par le DApp est la blockchain. Dans celui-ci, un enregistrement est laissé de chaque opération qui passe par le contrat intelligent contrôlé par le DApp. L'acceptation ou non des opérations effectuées par les utilisateurs du DApp, est soumise à la programmation dudit smart contract. De cette manière, il cherche à garantir que tous les participants agissent dans le cadre spécifié par lui.
Le contrat intelligent dans ce cas, c'est un point intermédiaire qui se charge de corroborer la validité de chaque interaction. Chaque fois qu'il y a une nouvelle opération dans le DApp, les informations de plate-forme sont mises à jour dans chaque nœud. Cela garantit que les informations sont stockées dans chacun d'eux. De cette manière, chaque utilisateur contribue à maintenir l'application avec les ressources de son ordinateur. Cette structure garantit également que la plateforme sera toujours en service. Cela est dû à l'impossibilité de supprimer tous les nœuds du réseau en même temps. Une situation qui peut se produire en raison d'une attaque informatique ou d'autres raisons telles que la censure.
À ce stade, les DApp font une grande avancée, car lorsqu'ils fonctionnent et fonctionnent sur une blockchain, ils bénéficient de ses capacités de sécurité, de confidentialité et même d'anonymat. En outre, ils garantissent également que les données utilisées par le DApp ne sont accessibles que par la personne à l'origine de ces informations. Avec lequel les utilisateurs gardent à tout moment un contrôle absolu sur leurs données.
Fonctionnalités DApps
Sécurité
C'est l'une des principales caractéristiques des DApps. C'est grâce au fait qu'il fonctionne sur une blockchain qui utilise une cryptographie forte pour sécuriser les données qu'elle gère. Ce premier point garantit que l'information ne peut être vue que par l'expéditeur et que le reste ne peut que vérifier sa validité ou non. A aucun moment, les informations provenant d'un utilisateur ne sont visibles par les autres.
En plus de cela, les données traitées par l'application sont à tout moment sous la possession de l'utilisateur. Les DApp ne stockent pas d'informations dans le cloud ou sur des serveurs externes. Cela minimise les risques associés au vol d'informations privées ou à leur vente par l'entreprise, violant ainsi la vie privée de l'utilisateur.
Décentralisation
Une autre des principales caractéristiques de DApps est sa décentralisation. Ou ce qui est pareil, la capacité de fonctionner sans serveurs centraux. Pour mieux mettre cela en perspective, considérons l'exemple suivant:
Facebook est l'un des réseaux sociaux les plus utilisés au monde. Avec plus de 2000 milliards d'utilisateurs, ses centres de données gèrent une énorme charge de données. À ce stade, maintenir votre infrastructure opérationnelle est une tâche ardue. Une solution qui n'a pas été exempte d'erreurs, qui ont conduit à une indisponibilité du réseau à l'échelle mondiale. Tout cela parce que Facebook est un réseau social centralisé.
Cependant, un DApp n'a pas ce point de défaillance grâce à la décentralisation. Chaque utilisateur DApp dispose d'un historique complet des actions effectuées dans le DApp. Quelque chose comme une copie globale de tout ce qui s'est passé. Pour cette raison, puisqu'il fonctionne sur une blockchain, il suffit qu'un seul utilisateur soit actif pour que le réseau continue à fonctionner sans problème. De cette façon, il est garanti que le DApp et son réseau fonctionnent toujours et que le cas de Facebook ne se produit pas.
Open Source
C'est une autre caractéristique très courante des DApps. Le fait que le code source soit disponible assure un haut niveau de transparence de l'application. Ceci grâce au fait que la communauté peut savoir à tout moment ce que fait le DApp. Il permet également des audits de communauté, afin que toute personne possédant les connaissances puisse consulter le code source de l'application. Cela permet de l'améliorer et en tout cas de poursuivre son développement dans le cas où le projet serait abandonné par ses créateurs d'origine.
Tous les DApp maintiennent publiquement le code source de leurs contrats intelligents et des autres parties de l'application. De cette manière, n'importe qui peut inspecter le code, l'améliorer ou le forger.
L'héritage de la blockchain
Les DApps interagissent sur la blockchain dans laquelle leur contrat intelligent est exécuté. Cela signifie que chaque interaction dans le DApp génère une entrée de données dans la blockchain. Ces données sont stockées de manière cryptographique pour ajouter de la transparence et de la sécurité. Toutes ces actions peuvent être examinées publiquement dans l'explorateur de blockchain.
Mais seules les interactions cryptographiques peuvent être vues, toutes les données sont stockées de manière cryptographique sécurisée. En plus de cela, le fait qu'un DApp fonctionne sur une blockchain signifie qu'un protocole de consensus est utilisé pour vérifier chaque interaction. Cela peut être le Preuve de travail (PoW) ou l' Preuve d'enjeu (PoS) ou ce que le développeur DApp choisit. Cela vise à garantir le même niveau de sécurité applicable à la blockchain sur le DApp.
Classification des DApps
Les DApp peuvent être classés en trois catégories, à savoir:
Type I
Cette classification comprend tous les DApps qui ont leur propre blockchain. Autrement dit, ceux qui ont leur propre infrastructure et ne dépendent d'aucune blockchain pour fonctionner. À ce stade, Bitcoin est le premier DApp blockchain à exister. de même pour Bitcoin Cash, Litecoin, Ethereum, Dash, Monero, entre autres.
Type II
Dans cette classification, nous trouvons les DApps qui dépendent d'une blockchain et de ses caractéristiques pour fonctionner. À ce stade, ces DApp peuvent fonctionner en utilisant leurs propres jetons ou la blockchain sur laquelle ils s'exécutent. Un exemple de ce cas est Golem.
Golem C'est un DApp qui fonctionne sur la blockchain Ethereum. Il a été créé afin de permettre à ses utilisateurs de louer des ressources informatiques pour traiter des données pour différents usages. Considérez Golem comme un superordinateur décentralisé auquel nous pouvons louer de la puissance de traitement. Pour y parvenir, Golem dispose d'un jeton ERC-20, le GNT (jeton de réseau Golem). Ce jeton est utilisé pour payer les utilisateurs qui louent leur puissance de calcul et pour d'autres activités au sein du réseau.
Type III
Les DApp de ce type utilisent des DApp de type II pour leur fonctionnement. En général, les DApp de type III utilisent les jetons des DApp de type II pour effectuer leurs opérations. Un exemple de ces DApps est, Réseau sécurisé. Safe Network s'appuie sur Couche Omni, un DApp de type II, pour générer Safecoin, sa propre crypto-monnaie. Cette crypto-monnaie est utilisée dans Safe Network afin d'effectuer toutes les opérations au sein dudit DApp.
Limitations de DApps
Certaines des limitations les plus importantes des DApps sont les suivantes:
- Difficulté à exploiter tout le potentiel du matériel des appareils des utilisateurs. Cela est particulièrement vrai pour les DApp exécutés à partir de navigateurs Web. Quelque chose qui est dû au nombre de couches d'abstraction et au très haut niveau d'exécution des langages de programmation utilisés.
- La complexité de l'application peut souvent rendre difficile le débogage et la vérification de la sécurité. Cette situation est particulièrement critique dans la programmation des contrats intelligents. Cela est dû à une vulnérabilité en eux, cela peut affecter tous les utilisateurs de DApp en même temps.
- La croissance et l'amélioration des DApps sont liées à l'enrichissement des améliorations au sein des structures de la blockchain. Un DApp peut avoir un développement très vivant, mais celui-ci sera ralenti si le développement de la blockchain et de ses outils est médiocre ou inexistant. À ce stade, la corrélation de développement entre les DApp et la blockchain est symbiotique. Tous deux doivent poursuivre leur développement pour atteindre des objectifs à long terme.
- Difficulté à implémenter les fonctionnalités nécessaires au bon fonctionnement des DApps. Certains DApp sont très simples dans leurs exigences de programmation, d'autres pas tellement. Prenons, par exemple, le Golem DApp et son système informatique décentralisé. La principale difficulté des projets est d'orchestrer le stockage des données traitées et à traiter au sein du réseau. En outre, un autre problème qu'il présente est la synchronisation lors de l'exécution de processus de calcul pour une certaine tâche affectée aux nœuds. Tout cela rend le développement de toutes les immenses possibilités de Golem en montée, mais c'est un défi que les développeurs ont pleinement relevé.
Exemple de certains DApps
CryptoKitties
Ce fut l'un des premiers jeux au monde à être créé sur la base de la technologie blockchain. CryptoKitties, consiste à collectionner des "chatons virtuels uniques". Chacun de ces chatons a des caractéristiques et des propriétés qui les rendent différents des autres. C'est justement leur extrême rareté qui leur donne de la valeur et deviendrait la crypto-monnaie du jeu. Les chatons peuvent être achetés et vendus, obtenant ainsi leur propriété de manière virtuelle.
En plus de cela, nous pouvons "élever" des chatons dans CryptoKitties. Autrement dit, nous pouvons unir deux chatons pour obtenir une progéniture génétique unique. que nous pouvons garder, élever plus tard ou vendre pour faire des affaires. CryptoKitties fonctionne sur la blockchain Ethereum, c'est un DApp de type II.
NASH
Il s'agit d'un DApp de type II qui fonctionne sur la blockchain NEO. L'objectif de NASH, consiste à exécuter un moteur de correspondance hors chaîne pour permettre des échanges beaucoup plus rapides et plus complexes que les échanges décentralisés existants.
Réseau Saturne
Réseau Saturne est un échange décentralisé pour le trading de jetons ERC-20 ou ERC-223. Il fonctionne sur la base d'une chaîne croisée disponible dans Ethereum et Ethereum Classic. Saturn Network offre un système d'échange rapide et sans effort, car il n'est pas nécessaire de remplir un KYC ou de créer un compte.
Chiens fous en direct
Chiens fous en direct est un système de jeu axé sur la création d'une plateforme transparente, sûre et amusante pour ses utilisateurs. Il est destiné aux courses de chiens avec des fonctionnalités innovantes de diffusion en direct et d'extraction de paris. Il permet également aux joueurs d'interagir les uns avec les autres et de profiter d'un plaisir de jeu formidable tout en réalisant des bénéfices. La plate-forme lancera également d'autres fonctionnalités dans un proche avenir pour que l'ensemble de l'écosystème du jeu se développe de manière exponentielle.
Crazy Dogs Live est un type DApp qui fonctionne sur la blockchain de TRON.