Non, le lancement d'une application décentralisée (dapp) sur la blockchain ne conduira pas à un succès commercial. En réalité, la plupart des utilisateurs ne se soucient même pas de savoir si l'application fonctionne sur la blockchain — ils choisissent simplement un produit qui est moins cher, plus rapide et plus simple.
Malheureusement, même si la blockchain a ses propres caractéristiques et avantages uniques, la plupart des applications qui y fonctionnent sont beaucoup plus coûteuses, plus lentes et moins compréhensibles que leurs concurrents centralisés.

Dans les whitepapers des applications construites sur la blockchain, il est assez courant de trouver un paragraphe mentionnant : "la blockchain est coûteuse et incapable de supporter le nombre requis de transactions par seconde. Heureusement, de nombreuses personnes intelligentes travaillent à l'évolutivité de la blockchain et, au moment du lancement de notre application, elle sera suffisamment évolutive".
Dans un simple paragraphe, le développeur de la dapp peut éviter une discussion plus approfondie sur les problèmes d'évolutivité et les solutions alternatives. Cela conduit souvent à une architecture inefficace, où le backend et le cœur de l'application sont constitués de contrats intelligents fonctionnant sur la blockchain.
Cependant, il existe encore des approches non éprouvées dans l'architecture des applications décentralisées qui permettent une bien meilleure évolutivité, grâce à une réduction de la dépendance à la blockchain. Par exemple, Blockstack travaille sur une architecture où la plupart des données et de la logique de l'application sont stockées en dehors de la blockchain.
Examinons d'abord une approche plus traditionnelle, dans laquelle la blockchain est utilisée comme intermédiaire direct entre les utilisateurs de l'application, et qui ne s'évolue pas très bien.
Approche n°1 : La blockchain comme backend
Pour rendre cela plus concret, prenons l'industrie hôtelière comme exemple. C'est une énorme industrie où des intermédiaires comme Booking.com, pour connecter les invités et les hôtels.
Dans toute situation où nous voulons surmonter un tel intermédiaire en utilisant cette approche, nous essaierons de reproduire sa logique commerciale, en utilisant des contrats intelligents sur une blockchain comme Ethereum.
Les contrats intelligents open source, lancés sur l'"ordinateur mondial", peuvent relier directement les vendeurs aux consommateurs sans intermédiaire, réduisant ainsi les frais et les commissions perçus par les intermédiaires.
Comme le montre l'image ci-dessous, les hôtels utilisent une application décentralisée pour stocker sur la blockchain des informations sur les chambres, leur disponibilité et les prix en semaine ou le week-end, ainsi qu'une description des chambres et toutes les autres informations pertinentes.

Quiconque souhaite réserver une chambre utilise cette application pour rechercher des hôtels et des chambres répertoriés sur la blockchain. Une fois que l'utilisateur choisit une chambre, la réservation se fait en envoyant le montant requis de jetons à l'hôtel en tant que dépôt. En retour, le contrat intelligent met à jour les informations sur la blockchain, rendant la chambre indisponible.
Cette approche présente deux aspects de la problématique de la scalabilité. Premièrement, le nombre maximal de transactions par seconde. Deuxièmement, le volume de données pouvant être stocké sur la blockchain.
Faisons des calculs approximatifs. Booking.com déclare avoir près de 2 millions d'hôtels répertoriés. Supposons qu'en moyenne, chaque hôtel ait 10 chambres et que chacune soit réservée environ 20 fois par an — cela nous donne en moyenne 13 réservations par seconde.
Pour évaluer ce chiffre, il convient de noter qu'Ethereum peut traiter environ 15 transactions par seconde.
Il convient également de prendre en compte que notre application générera également des transactions de la part des hôtels — pour télécharger et mettre constamment à jour les informations sur leurs chambres. Les hôtels mettent très souvent à jour les prix des chambres, parfois même quotidiennement, et chaque changement de prix ou de description nécessite une transaction sur la blockchain.
Il existe également un problème de taille — le poids de la blockchain Ethereum a récemment dépassé les 2 To. Si des applications de ce type devenaient réellement populaires, le réseau Ethereum deviendrait extrêmement instable.
Un tel système basé sur la blockchain peut exclure les intervenants grâce à son impartialité et à son absence de centralisation — ce sont les principaux avantages de la technologie blockchain. Mais la blockchain présente également d'autres caractéristiques — elle est distribuée et non réinscriptible, ce qui sont d'excellentes caractéristiques, mais cela se paie en termes de rapidité et de frais de transaction.
C'est pourquoi les développeurs de dapps doivent évaluer soigneusement si chaque fonctionnalité utilisant la blockchain nécessite vraiment décentralisation et immutabilité.
Par exemple : quel est l'avantage de répartir les données de chaque hôtel sur des centaines de machines à travers le monde et de les conserver constamment là-bas ? Est-il vraiment important que les données historiques sur les prix et la disponibilité des chambres soient toujours incluses dans la blockchain ? Probablement pas.
Si nous commençons à poser de telles questions, nous allons voir que nous n'avons pas nécessairement besoin de toutes les caractéristiques coûteuses de la blockchain pour toutes nos fonctions. Alors, quelle est l'alternative ?
Approche #2 : Architecture inspirée de Blockstack
Bien que l'accent principal soit sur des applications où les utilisateurs possèdent leurs propres données (comme , , ou ), Blockstack a également une philosophie d'utilisation limitée de la blockchain — uniquement lorsque cela est absolument nécessaire. Leur argument principal est que la blockchain est lente et coûteuse, et donc elle ne devrait être utilisée que pour des opérations isolées ou peu fréquentes. Tout le reste de l'interaction avec les applications devrait se faire via peer-to-peer, c'est-à-dire que les utilisateurs des dapps devraient partager des données directement entre eux, plutôt que par l'intermédiaire de la blockchain. Après tout, les plus anciennes et les plus réussies dapps décentralisées, comme BitTorrent, l'email et Tor, ont été créées bien avant que le concept même de blockchain n'existe.

À gauche : première approche, où les utilisateurs interagissent via la blockchain. À droite : les utilisateurs interagissent directement entre eux et la blockchain est utilisée uniquement pour l'identification et des aspects similaires..
Revenons à l'exemple de la réservations d'hôtels. Nous voulons un protocole impartial, indépendant et ouvert pour relier les invités aux hôtels. En d'autres termes, nous voulons éliminer le médiateur centralisé. Nous n'avons pas besoin, par exemple, de conserver constamment les prix des chambres dans un registre distribué commun.
Pourquoi ne pas permettre simplement aux invités et aux hôtels d'interagir directement, plutôt que via la blockchain ? Les hôtels peuvent stocker leurs prix, la disponibilité des chambres et toute autre information n'importe où, où elle sera accessible à tous - par exemple, IPFS, Amazon S3 ou même leur propre serveur local. C'est exactement ce que propose le système de stockage décentralisé de Blockstack appelé . Il permet aux utilisateurs de choisir où ils souhaitent stocker leurs données et de contrôler qui peut y accéder via un processus appelé .
Pour établir la confiance, toutes les données de l'hôtel sont cryptographiquement signées par l'hôtel lui-même. Peu importe où ces données sont stockées, leur intégrité peut être vérifiée à l'aide de clés publiques associées aux informations d'identification de cet hôtel, stockées dans la blockchain.
Dans le cas de Blockstack, seules vos informations d'identification sont stockées dans la blockchain. Les informations sur la façon d'accéder aux données de chaque utilisateur sont stockées dans des fichiers de zone et diffusées via un réseau pair-à-pair à l'aide de nœuds. Encore une fois, vous n'avez pas besoin de faire confiance aux données que donnent les nœuds, car vous pouvez vérifier leur authenticité en les comparant aux hachages qui sont stockés dans la blockchain et chez d'autres utilisateurs.
Dans une version simplifiée du système, les invités utiliseront le réseau pair-à-pair de Blockstack pour rechercher des hôtels et obtenir des informations sur leurs chambres. Et l'authenticité et l'intégrité de toutes les données que vous recevrez peuvent être vérifiées en utilisant des clés publiques et des hachages stockés dans Blockstack.
Cette architecture est plus complexe que la première approche et nécessite une infrastructure plus complète. En fait, c'est exactement là que Blockstack entre en jeu, fournissant tous les composants nécessaires à la création d'un tel système décentralisé.

Avec cette architecture, nous ne stockons dans la blockchain que les données qui doivent vraiment être distribuées et non réinscriptibles. Dans le cas de Blockstack, vous n'avez besoin de transactions dans la blockchain que pour vous enregistrer et indiquer où vos données doivent être stockées. Vous pourriez avoir besoin de plus de transactions si vous souhaitez modifier certaines de ces informations, mais ce n'est pas un événement récurrent.
De plus, la logique de l'application, contrairement à la première approche, fonctionne côté client plutôt que sur des contrats intelligents. Cela permet au développeur de modifier cette logique sans mises à jour coûteuses ou parfois même impossibles des contrats intelligents. En gardant les données et la logique de l'application en dehors de la blockchain, les applications décentralisées peuvent atteindre des niveaux de performance et d'évolutivité comparables à ceux des systèmes centralisés traditionnels.
Conclusion
Les applications fonctionnant sur Blockstack peuvent évoluer beaucoup mieux que les applications blockchain classiques, mais c'est une approche plus récente avec ses propres problèmes et questions en suspens.
Par exemple, si une application décentralisée ne fonctionne pas sur des contrats intelligents, cela réduit le besoin de tokens utilitaires. Cela peut poser des problèmes pour les entreprises, étant donné que les ICO étaient la principale source de financement pour les applications décentralisées (y compris Blockstack lui-même).
Il y a aussi des problèmes techniques. Par exemple, il est relativement simple de mettre en œuvre une fonction de réservation d'hôtels dans un contrat intelligent, où lors d'une opération atomique, les chambres sont réservées en échange de tokens. Il n'est pas très évident de savoir comment les réservations fonctionneraient dans une application Blockstack sans contrats intelligents.
Les applications visant les marchés mondiaux avec un potentiel de millions d'utilisateurs doivent évoluer très efficacement pour réussir. Il est erroné de s'appuyer uniquement sur les blockchains pour atteindre un tel niveau d'évolutivité dans un avenir proche. Pour être en mesure de concurrencer de grands acteurs centralisés du marché, tels que Booking.com, les développeurs d'applications décentralisées doivent envisager des approches de conception alternatives pour leurs applications, comme celle proposée par Blockstack.
Source : habr.com
