Notre projet désormais terminé, il est l’heure de faire un point sur notre ressenti sur cette implémentation d’une blockchain privée au sein d’un projet Symfony et plus généralement sur l’intérêt de cette technologie sur des problématiques non financières.
Point de vue général
Nous avons tous été témoin ces dernières années, et surtout depuis la flamboyante flambée du cours du Bitcoin et autres crypto-monnaies, d’une certaine hype autour de la technologie de la blockchain.
Parmi les phrases que l’on a pu lire ou entendre, ici ou là:
« La blockchain va révolutionner le monde financier et monétaire »
« La blockchain est la nouvelle grande révolution technologique »
« Bientôt tout sera fait dans la blockchain »
Bien évidemment, force est de constater que nous sommes bien loin de la promesse d’un monde numérique, et encore moins physique, régit par le blockchain.
Malgré cela, les ingénieurs que nous sommes avons été curieux d’explorer le fonctionnement et les possibilités offertes par la blockchain. L’un des intérêts principaux étant la distribution native des données et des transactions ainsi que la décentralisation de la confiance, la faisant passer d’un « tiers de confiance » pour des transactions classiques à une confiance au « réseau ».
http://EthereumEnergyConsumption.com)
De plus, ce qui est présenté comme étant un avantage de la blockchain, à savoir le fait que les données soient décentralisées, implique un très gros contrecoup, celui que tous les nœuds du réseau dupliquent la totalité des données de la blockchain entraînant ainsi une surconsommation colossale d’espace disque.
Enfin, la difficulté croissante du minage implique des délais de plus en plus longs pour la validation des transactions, après le pic faramineux de décembre 2017, en pleine fièvre du Bitcoin, où les délais de confirmation moyens était de 38h, nous sommes redescendus à des temps plus « raisonnables » d’environ 10 minutes à l’heure où nous rédigeons cet article. Ces délais pouvant être mis en comparaison avec les délais de validation du réseau VISA : quelques secondes à peine. (source: https://www.statista.com/statistics/793539/bitcoin-transaction-confirmation-time)
Point de vue technique
En mettant un peu la main à la patte (cf. Notre projet), et malgré la relative simplicité fonctionnelle de notre case d’usage, nous nous sommes vite retrouvés confrontés à une grande complexité technique, avec la gestion notamment de données et des transactions en asynchrones. Pour des raisons de performances nous avons été obligés d’utiliser des méthodes de stockage de données plus traditionnelles car les données des blocs ne sont pas exploitables aussi simplement et aussi rapidement qu’une base de données. Nous avons du créer par exemple une sorte de cache de l’application en BDD qui reprenait le contenu stocké dans la blockchain, celui-ci devant être rafraîchi de manière régulière.
Ajoutons à cela qu’il n’existe pas (encore) d’environnement de développement « developer friendly » ajoutant une nouvelle fois à la complexité de nos développements notamment lors de la phase de test.
Enfin, conceptuellement, la notion de smart-contracts aussi séduisante soit-elle, ne s’adresse pas au grand public, ni à des avocats ou juristes mais plutôt à une cible de développeurs avertis. Cela implique une confiance en ces mêmes développeurs quant à la juste retranscription technique des termes d’un contrat. De plus, comme nous l’avons évoqué dans notre suite d’articles, des éventuels bugs/erreurs qui ne seraient pas détectés en phase de test pourraient entraîner des actions irréversibles et ne pourraient être corrigés une fois déployés.
Une fois ce portrait très sombre dressé, il ressort tout de même quelques points positifs pour des technophiles : La compréhension des concepts techniques, une application très intéressante des concepts de cryptographie et d’algorithmique et la recherche de solutions blockchain-compatibles à des problèmes représentent en effet un challenge plutôt intéressant.
Pour conclure, malgré l’intérêt intellectuel de cette technologie, la complexité de mise en oeuvre représente à nos yeux le plus gros frein à sa démocratisation. Nous n’avons d’ailleurs à ce jour pas encore vu l’émergence d’une killer-app basée sur la blockchain en dehors du domaine monétaire.