Édito : Cet article (plutôt long) est essentiel pour la compréhension globale du fonctionnement des différents projets de cryptos monnaies.
Un nouveau modèle permettant la création et le développement d’applications extrêmement évolutives est en train d’émerger depuis quelques années maintenant. Le Bitcoin a ouvert la voie depuis sa création en 2008 de par sa nature open-source, ses enregistrements stockés cryptographiquement (chaîne de blocs- blockchain) le tout via un nombre limité de devises en circulation (coins ou sorte de tokens) permettant d'utiliser les fonctionnalités de l'application.
Au cours des 3 dernières années, des dizaines d'applications ont adopté le modèle Bitcoin (et son code Open Source principalement) pour développer tout un tas d’applications décentralisées (DApps en Anglais). Ethereum, Omni et le SAFE network ne sont que quelques-unes de ces « applications décentralisées » qui utilisent une variété de méthodes complexes pour fonctionner.
Certains utilisent leur propre chaîne de blocs (comme l’Ethereum par exemple), certains utilisent des chaînes de blocs existantes et émettent leurs propres crypto-devises (Omni Layer), et d'autres opèrent deux couches au-dessus d'une chaîne de bloc existante et émettent leurs propres coins (SAFE Network).
Cet article décrit pourquoi les applications décentralisées ont un potentiel quasi illimité, comment les différents types d'applications décentralisées peuvent être classées et introduit une terminologie qui vise à être précise et utile à la communauté.
Pour clore cette introduction, cet article ouvre avant tout le débat sur le fait que ces applications décentralisées pourraient dépasser un jour les logiciels des plus grandes sociétés au monde en utilité, en base utilisateur et en capitalisation du réseau en raison de leur structure incitative supérieure, de leur flexibilité, de leur transparence, de leur résilience et de leur nature distribuée et décentralisée.
Les DApps, ces applications décentralisées expliquées
Définition d'une DApp
Pour qu'une application soit considérée comme une Dapp (prononcé Dee-app en Anglais), elle doit répondre aux critères suivants :

Bitcoin, la mère de toutes les DApps
Satoshi Nakamoto, le créateur du Bitcoin a décrit son invention comme « Un système de paiement électronique Peer to Peer ». Bitcoin a été développé pour résoudre efficacement les problèmes qui découlent d'un système de paiement électronique dans lequel personne n’aurait confiance et évolutif en utilisant un grand livre de comptes distribué, décentralisé et partagé pour des raisons de sécurité, la fameuse Blockchain Bitcoin.
En plus d'être un système de paiement électronique Peer to Peer, Bitcoin est également une application avec laquelle les utilisateurs peuvent interagir avec des logiciels informatiques. Mais Bitcoin est avant tout une application décentralisée.
Voici pourquoi :
Toutes les applications logicielles de Bitcoin sont open-source, aucune entité (gouvernement, société ou organisation) ne contrôle Bitcoin et tous les enregistrements liés à l'utilisation de Bitcoin sont ouverts et publics.
Bitcoin génère ses jetons, les bitcoins, avec un algorithme prédéterminé qui ne peut pas être modifié, et ces devises sont nécessaires pour que le réseau Bitcoin fonctionne. Les mineurs de Bitcoin sont récompensés par des nouveaux bitcoins pour leur contribution à la sécurisation du réseau Bitcoin (ils apportent de la puissance de calcul permettant de vérifier l’authenticité des transactions effectuées sur la chaine de blocs ou Blockchain).
Toutes les modifications apportées à Bitcoin doivent être approuvées par un consensus majoritaire de ses utilisateurs grâce au mécanisme de preuve de travail (mining).
Quelques définitions sémantiques
Les applications décentralisées ont été initialement décrites comme des corporations autonomes décentralisées, dans un article écrit par Daniel Larimer, d'Invictus Innovations. Ce document évite en tout point d’utiliser le mot “société” pour deux raisons :
Tout d'abord, car celui-ci comporte des préjugés inutiles. Par exemple, une société est établie dans une juridiction déterminée, elle possède généralement un PDG, des employés, des actions, etc. Les DApps, comme le Bitcoin, ne possèdent aucune de ces caractéristiques ! En outre, le choix des mots est très important pour la façon dont les DApps sont perçues par divers pays et juridictions. De la même manière que les différents gouvernements dans le monde luttent pour comprendre et mieux réglementer Bitcoin de par le concept de devise y étant associé, les gouvernements pourraient être obligés de réglementer un logiciel informatique open source qui est une application décentralisée en soi.
Deuxièmement, parce que les sociétés traditionnelles peuvent mobiliser des capitaux de différentes façons (comme la vente d'actions de leur stock et le versement de dividendes ou les emprunts contre leurs stocks et les différents intérêts payés). Une Dapp n'a pas besoin de tout ceci pour se financer. Le concept d'une DApp est si puissant et novateur, car il ne fonctionne pas via ces techniques qui s’appliquent aux entreprise traditionnelles. La propriété des devises d’une dite DApp est tout ce qui est nécessaire pour que son titulaire puisse utiliser le système. Ce n’est pas plus compliqué que cela. La valeur des jetons est déterminée par la quantité de personnes qui valorisent l'application et son projet (loi de l’offre et de la demande). Toutes les incitations, toute la monétisation, toutes les façons d'augmenter le soutien au projet sont intégrées dans cette structure remarquablement simplifié.
Les DApp ne sont pas nécessaires pour recréer les fonctions qui étaient nécessaires dans les sociétés centralisées afin d'équilibrer le pouvoir des actionnaires et de fournir des rendements aux investisseurs et aux employés.

Classification des DApps
Il existe plusieurs caractéristiques selon lesquelles les applications décentralisées peuvent être classées. Ici nous classerons les Dapps en fonction du type de Blockchain (chaîne de blocs) qu’elles utilisent (certaines d’entre elles utilisent la chaîne de bloc d'une autre Dapp, ou une version modifiée).
Selon ce critère, il existe trois types de Dapps :
Une analogie utile pour une DApp de type 1 serait un système d'exploitation informatique (comme Windows, Mac OS X, Linux) pour un type 2 de Dapp un logiciel à usage général (comme un traitement de texte, un tableur,…) et pour le type 3, une solution logicielle spécialisée (comme un outil de fusion de courrier qui utilise un traitement de texte, une macro de rapport de dépenses qui utilise une feuille de calcul…).
En utilisant cette analogie, on peut s'attendre à ce que, en raison des effets de réseau et de l'écosystème entourant chaque application décentralisée, il y est d’ici peu quelques Dapps de type 1, un plus grand nombre de Dapps de type 2 et encore beaucoup plus de Dapps de type 3 sur le marché.
À ce stade, il est important de mentionner qu'il existe actuellement plusieurs excellents projets open source qui tirent parti des Dapps de type 1. Les Colored coins et CoinJoin, par exemple, sont basées sur la chaîne de bloc Bitcoin et fournissent des fonctionnalités utiles à leurs utilisateurs. Ces projets ne peuvent toutefois pas être classés comme des Dapps de type 2, selon notre définition, car ils n’émettent pas et n’utilisent pas de coin. (Le développement et l'exploitation de ces projets dépendent plutôt des donations perçues).

Une mine à bitcoin
Le fonctionnement d'une DApp
Mécanismes et protocoles permettant d'établir un consensus
Il existe deux mécanismes communs et principaux par lesquels les Dapps peuvent établir un consensus : la preuve par travail (POW - Proof Of Work), et la preuve d'enjeu (Proof of Stake - POS).
Via le mécanisme de preuve de travail, les décisions concernant les changements dans une Dapp sont faites en fonction de la quantité de travail que chaque partie prenante apporte au fonctionnement de la Dapp. Bitcoin utilise cette approche pour son fonctionnement. Le mécanisme d'établissement du consensus par le POW est communément appelé minage.
Avec le mécanisme de la preuve d'enjeu (POS), les décisions concernant les changements dans la Dapp sont réalisées en fonction des parts de propriété que les différents acteurs possèdent dans l'application. Par exemple, le vote d’un acteur qui contrôlerait 10% des jetons émis par une Dapp, aurait un poids de 10%. Le protocole Omni est basé sur le mécanisme POS et Ethereum est actuellement en train de transitionner de son côté d’un mécanisme de POW à un mécanisme de POS (via Casper).
Les deux mécanismes peuvent être utilisés en parallèle, comme c'est le cas avec Peercoin. Une telle combinaison permet à une Dapp de fonctionner avec moins de consommation d'énergie (principale critique faite au mécanisme “preuve de travail”, l’activité de minage consommant beaucoup d’énergie à l’heure actuelle) et lui permet d'être plus résistant aux attaques de types prise de contrôle via 51% (un des défauts principaux du mécanisme preuve d’enjeu).
Il existe d'autres mecanismes qui se développent depuis peu, nous y reviendrons par la suite (LPoS, DPoS, PoI, PoA,..).
Mécanismes de distribution des coins/tokens/jetons
Il existe trois mécanismes communs permettant aux Dapps de distribuer leurs jetons : le minage, la collecte de fonds et le développement.
- Avec le mécanisme de minage, les jetons sont distribués à ceux qui contribuent le plus à l'exploitation d'une Dapp. En prenant Bitcoin à titre d'exemple, les Bitcoins sont distribués via un algorithme prédéterminé aux mineurs qui vérifient les transactions sur le réseau et maintiennent la Blockchain Bitcoin. Chaque bloc miné (env toutes les 10 mns) offre un “Block Reward” (une récompense) que se partagent les mineurs.
- Avec le mécanisme de collecte de fonds (ICO, Initial Coin Offering), les jetons sont distribués à ceux qui financent le développement initial d’une DApp. Prenons le protocole maître comme exemple, Mastercoins a d'abord été distribué à ceux qui ont envoyé des Bitcoins à une adresse donnée au taux de 100 Mastercoins par bitcoin envoyé. Les Bitcoins collectés ont ensuite été utilisés pour financer le développement d'applications qui ont permis par la suite de favoriser le développement du Protocole maître.
- Avec le mécanisme de développement, les jetons sont générés à l'aide d'un mécanisme prédéfini et ne sont disponibles que pour le développement de la DApp. Par exemple, en plus de son mécanisme de collecte de fonds, le Protocole maître a utilisé le mécanisme de collaboration pour financer son développement futur. Un supplément de 10% des Mastercoins générés grâce à la collecte de fonds a été mis de côté pour le développement du Protocole maître. Ces Mastercoins sont disponibles en suivant un calendrier prédéterminé et sont distribués via un système de primes axé sur la communauté où les décisions sont prises en fonction du mécanisme de preuve d’enjeu.
Pour résumer : Les coins/tokens d'une Dapp qui établissent un consensus par une preuve de travail sont distribués via les mineurs, par les personnes qui achètent (ou minent en pool) des coins directement via les mineurs et par des échanges de biens et de services; C'est le cas avec Bitcoin. Les jetons d'une DApp qui établissent un consensus à travers la preuve d’enjeu sont répartis en fonction de la contribution des parties prenantes lors d'une collecte de fonds, par des personnes qui collaborent au développement de la DApp et en commercialisant des biens et des services ; C'est le cas avec le protocole Omni.

Vitalik Buterin developpeur et Co-fondateur Ethereum
Création et développement d'une DApp
Le développement d'applications décentralisées se déroule généralement en trois étapes.
Étape 1 : un livre blanc (Whitepaper) est publié décrivant la Dapp, son fonctionnement, ses fonctionnalités ainsi qu'une Road Map (sorte de business plan).
Comme dans le cas de Bitcoin, la manière la plus courante par laquelle une DApp prend forme est via la publication d'un livre blanc (whitepaper) qui décrit le protocole, ses fonctionnalités et détaille sa mise en œuvre (Road Map). Après la publication de ce livre, les commentaires et le retour de la communauté sont nécessaires pour le développement ultérieur de la DApp.
Étape 2 : Les jetons initiaux sont distribués. (ICO, Initial Coin Offering).
Si la DApp utilise le mécanisme de minage pour distribuer ses jetons (POW), un logiciel de référence est diffusé afin qu'il puisse être utilisé pour débuter l’extraction. Dans le cas de Bitcoin, un logiciel de référence a été lancé et le bloc de transaction initial a été créé par son créateur Satoshi Nakamoto (qui a miné lui-même les premiers blocs).
Si la DApp utilise le mécanisme de collecte de fonds, un logiciel de type portefeuille devient disponible pour les personnes intéressées par la DApp et son projet, afin qu'ils puissent commencer à échanger des jetons. Dans le cas de Mastercoin par exemple, une adresse de collecte de fonds Exodus et un wallet ont été publiés lors de son lancement.
Si la DApp utilise le mécanisme de développement, un système de primes est mis en place pour permettre la réalisation des tâches, le suivi des personnes qui travaillent sur ces tâches et les critères de délivrance des primes.
Étape 3 : une répartition de la participation est mise en place.
Comme les jetons provenant d’un mécanisme basé sur le minage, sur de la collecte de fonds ou de la collaboration sont distribués à un plus grand nombre de participants, la propriété de la DApp se retrouve de moins en moins centralisée et les participants (sortes d’actionnaires) qui détenaient une participation majoritaire à un point antérieur ont de moins en moins de contrôle.
Au fur et à mesure que la DApp arrive à maturité, les participants ayant des compétences plus diverses sont encouragés à apporter des contributions précieuses et la propriété de la Dapp est davantage distribuée. Via l’offre et la demande, les jetons/coins d'une DApp sont transférés vers ceux qui y trouvent le plus de valeur.
Le cas du Bitcoin illustre parfaitement ce point. Selon certaines estimations, Satoshi Nakamoto (inventeur de la blockchain et du BTC) aurait miné une bonne partie des premiers 1 000 000 bitcoins. Comme les développeurs ont contribué à la pérennisation du code pour Bitcoin et que les mineurs ont contribué à apporter de la puissance de calcul sur le réseau Bitcoin, le marché a peu à peu commencé à valoriser davantage les bitcoins. À mesure que le système prend de l’âge et “mûrit”, des personnes ayant des compétences diverses ont commencé à valoriser Bitcoin et à contribuer à son développement.
A l’heure actuelle, plus de 12 millions de bitcoins sont en circulation et la forte participation initiale de Satoshi Nakamoto a été diluée.
Modèle juridique pour l'exploitation de DApps
L'utilisation sous licence open-source permet à une DApp d'être ouverte à l'innovation sans restrictions de droit d'auteur ou de brevet quelconque. En outre, étant complètement open-source, les applications décentralisées peuvent fonctionner selon le modèle juridique des logiciels open source. Bitcoin, par exemple, utilise la licence de logiciel open source MIT. Le Protocole maître de façon similaire exige que tout le code qui en est basé soit open-source et accessible à la communauté.
Délivrance et prise de jetons/tokens
Contrairement à de nombreuses idées reçues, il s’agit à la base de simplement de jetons cryptographiques permettant d’accéder/d’utiliser une application décentralisée !
Le Bitcoin, la mère des applications décentralisée, est une monnaie digitale créé dans le but de permettre d’échanger de la valeur sans intermédiaires. Il n’existe pas que des projets tournants autour de la monnaie et les cryptos devises sont avant tout des jetons permettant d’utiliser une application particulière. Ces “jetons” sont bien entendu listés sur des marchés financiers et sujets a une capitalisation mais il existe de nombreuses applications (et leur nombre grandit de jour en jour) dans des domaines variés tels que : les infrastructures de paiement (Bitpay, Abra), les systèmes de paiement inter-banques (Ripple), la protection d’identité en ligne (Civic), stockage de données en ligne décentralisé, cloud (Storj, Siacoin, Maidsafe), les prédictions de marché (Augur), les plateformes offrants des échanges privés (Monero, Zcash, Dash), les bases de données décentralisées (Startumn), les systèmes de votes en ligne décentralisés (Followmyvote, Boule), la gestion de cadastre, industrie musicale (Mycelia), taxi et covoiturage (Arcade city), immobilier (Ubitquity), vente en ligne (Openbazaar) et de nombreuses autres applications !
“Le système bancaire n’était qu’une mise en bouche, la technologie Blockchain peut théoriquement bouleverser de nombreuses industries dans les années à venir ! “
D’un point de vue technique, ceux qui délivrent des jetons, dans le cadre d'une vente publique, vendent tout simplement un accès au logiciel pour les utilisateurs. Les clés privées associées aux jetons/coins que les utilisateurs achètent sont techniquement des mots de passe (sortes de crédits) permettant aux utilisateurs d’accéder au logiciel de la Dapp. D'un point de vue fiscal, ceux qui détiennent des jetons détiennent une propriété numérique. Si les tokens n'ont pas de valeur de marché en dehors de leur utilisation dans la DApp, il est difficile de déterminer leur valeur réelle.
Organisme à but non lucratif
Il n'existe aucune entité juridique requise pour qu'une DApp opère car ce n'est pas une entreprise au sens stricte. Les propriétaires de tokens n'ont pas besoin d'être représentés par une société. Cependant, les jetons sont parfois émis par une organisation à but non lucratif qui ne recevra jamais de bénéfices financiers de cette DApp. Une telle organisation aura les responsabilités suivantes :
Idéalement, l'organisation à but non lucratif prendra des décisions de manière décentralisée, en utilisant un mécanisme de vote "preuve d'engagement" pour toute décision.
Prérequis pour créer une DApp
Qu'est-ce qui qualifie une application logicielle en tant que Dapp ?
L'application doit être entièrement open-source, elle doit fonctionner de manière autonome, sans entité contrôlant la majorité de ses jetons/tokens, et ses données et enregistrements d'exploitation doivent être stockés cryptographiquement dans une chaîne publique et décentralisée.
L'application doit générer des tokens selon un algorithme standard ou un ensemble de critères et éventuellement distribuer certains ou tous ses jetons au début de son fonctionnement. Ces jetons sont nécessaires pour l'utilisation de la DApp et toute contribution des utilisateurs devrait être récompensée par un paiement en jetons utilisés par ladite application.
La demande peut adapter son protocole en réponse aux améliorations proposées et à la rétroaction du marché, mais tous les changements doivent être décidés par consensus de la majorité de ses utilisateurs.
Qu'est-ce qu'un jeton ?
Le but d'un jeton/coin est de permettre l'accès à une application informatique. Par exemple, un individu doit posséder un certain nombre de Bitcoins afin d'être en mesure d'effectuer toute transaction sur le réseau Bitcoin.
Les jetons dans une DApp ne représentent aucun élément sous-jacent, ils ne donnent pas de droits à un dividende, et aucune équité n'est représentée par eux. Bien que la valeur d'un jeton DApp puisse augmenter ou diminuer au fil du temps, les jetons ne sont pas des titres de participation.
Comment distribuer les tokens ?
Il existe plusieurs manières de distribuer les jetons d'une DApp :
- Jetons offerts au public : une première vente unique de jetons est un moyen commun de financer initialement une Dapp. Les fonds provenant d'une telle vente devraient être contrôlés par une entité indépendante des fondateurs, généralement une Fondation.
- Jetons de développeur : une partie des jetons peut être mis de côté pour les développeurs travaillant sur le projet. Au fur et à mesure que le marché établit une capitalisation pour le projet, les jetons de développement gagnent de la valeur, attirant des contributeurs supplémentaires au projet.
- Jetons pré-minés : il est préférable que les jetons ne soient pas pré-minés car la plupart des investisseurs voient généralement cela d’un mauvais œil. Une opération de pré-minage ne peut être réussie que si les fondateurs fournissent une raison significative.
- Jetons minables : la répartition des jetons par “proof-of-work” incitera la communauté à contribuer et fournir des ressources au projet. Pour ce qui est du Bitcoin, par exemple, il y a une récompense de blocs (bloc reward) toutes les dix minutes, ce qui incitera les mineurs à fournir de la puissance de hachage (calcul) au réseau Bitcoin.
De même, les DApps doivent déterminer comment inciter les membres du réseau à contribuer aux ressources requises car c'est la décision la plus importante concernant la distribution des jetons.

Comment commencer à développer un DApp ?
Pour développer une Dapp, il est conseillé de suivre les étapes suivantes :
Créez un livre blanc contenant au moins les sections suivantes :
Pourquoi une DApp est un modèle rentable pour les développeurs, les utilisateurs et les contributeurs ?
Le modèle permet aux contributeurs de s'impliquer dans le projet en tant qu'acheteurs de jetons, en tant que contributeurs de projet ou en tant que fournisseurs de ressources pour le réseau. Tous ces contributeurs bénéficient de l'échange des jetons et de l'appréciation possible de leur valeur au fil du temps.
Qu'est-ce qu'une récompense qui favorise les comportements utilisateurs ?
Une récompense de comportement d'utilisateur est donnée aux contributeurs qui fournissent une certaine utilité au réseau. Le livre blanc se doit de décrire ce qui constitue une contribution pour la DApp. (Par exemple, la puissance de hachage/calcul est une contribution sur le réseau Bitcoin et elle est récompensée en tant que telle.) L'utilité doit être mesurable, comme dans le cas d'une DApp de stockage de données, la quantité de stockage est mesurable.
Conclusion
Les DApps ont le potentiel de devenir autonomes car elles permettent à leurs parties prenantes d'investir dans le développement d’applications décentralisées et ont de nombreuses applications variées.
Pour cette raison, il est concevable que des DApps permettant de gérer des paiements, le stockage de données, la gestion de bande passante ainsi que le stockage dans le cloud puissent un jour dépasser la capitalisation de sociétés multinationales comme PayPal, Mastercard, Google Drive, eBay ou Amazon qui sont actuellement actifs dans l'espace. Seul l’avenir nous le dira ici.
Site listant les DApps https://dapps.ethercasts.com
- Site offrant un classement des DApps selon de nombreux critères : https://dappradar.com/
- Site listant la majorité des DApps : www.stateofthedapps.com
- Portail pour découvrir les DApps : https://app.co
Sources : http://blogchaincafe.com/les-dapps-applications-distribuees-decentralisees
https://blog.bitnation.co/what-are-dapps/
https://www.ethereum-france.com/quest-ce-quune-dapp-quelques-exemples-simples/