Retour d’expérience sur 2 ans de R&D et intégration blockchain

Un projet blockchain, c’est en réalité un projet d’intégration systèmes avec une petite partie (autour de 20%) de tâches liées à la blockchain. La vraie complexité, c’est le reste, qui va apporter les propriétés faisant la différence entre un Proof of Concept (POC) et un projet pouvant passer en production : robustesse, scalabilité, performances, sécurité, haute disponibilité, évolutivité logicielle et système, bonne intégration à des logiciels, à des flux, à du hardware… tout en respectant des contraintes plus ou moins fortes selon les projets : coût, consommation d’énergie, fiabilité du système dans la durée, etc. La valeur ajoutée de l’intégrateur, outre le développement et les compétences spécifiques inhérents aux blockchains, est de construire l’architecture globale garantissant l’homogénéité des systèmes des différents acteurs impliqués, intégrant les contraintes, sans oublier la mise en place des outils analytiques ou de gouvernance permettant le pilotage du projet.

Notre partenariat technique avec la startup Sunchain, qui mène un des rares projets blockchain français aujourd’hui au stade de pilote avancé, nous a permis de tirer des enseignements précieux de plus d’un an et demi de travail de développement et d’intégration blockchain. Nous en partageons les principaux ci-dessous. Ce projet d’autoconsommation collective d’énergie solaire utilisant de l’IoT a remporté divers prix et labels prestigieux (cf.
https://www.linkedin.com/feed/update/urn:li:activity:6381728681106247681/).
Talium assure l’expertise et l’intégration blockchain.

 

Les producteurs (soleils) mutualisent leur énergie sur le réseau,
les consommateurs (prises) la partagent. Crédit : Sunchain.

  • De l’importance d’être agnostique en choix technologiques

Lorsque nous avons commencé le travail R&D en septembre 2016, nous avions effectué des benchmarks sur des blockchains adaptées au projet Sunchain et sa contrainte d’implication d’IoT. L’important était de pouvoir exécuter des smart contrats sans faire de minage, de manière à garantir la scalabilité et limiter la consommation d’énergie (la sobriété énergétique étant également un vrai choix en adéquation avec les valeurs portées par la start up Sunchain).

Notre choix s’est d’abord porté sur la blockchain Eris (aujourd’hui aussi appelée Hyperledger Burrow) de Monax Industries, qui intègre le consensus Tendermint et permet de faire tourner des smart contrats Solidity sur la machine virtuelle d’Ethereum. Ce choix semblait répondre au besoin, mais il a finalement été éliminé pour deux raisons. Tout d’abord, Tendermint s’est avéré trop bavard par rapport aux contraintes de bande passante, épuisant rapidement les forfaits 3G des nœuds de validation. Ensuite, nous avons dû porter Eris sur une architecture ARM, ce qui s’est à l’époque avéré très compliqué et inadapté, nous demandant de redémarrer périodiquement le système.

En veille permanente sur les nouvelles releases de blockchains pour perfectionner les réponses aux problématiques du projet, nous nous sommes intéressés et avons benchmarké dès début 2017 diverses blockchains sans minage, consommant peu d’énergie et ayant un grand potentiel de scalabilité tout en solutionnant d’autres problématiques (et permettant l’utilisation de smart contrats). Ethereum avec consensus Proof of Authority a retenu notre attention, mais nous avons finalement choisi Hyperledger Fabric, notamment du fait de sa stabilité par rapport à l’architecture. On en était au tout début, à une version pré-alpha 0,6 issue d’un hackathon. Nous avons réussi à stabiliser le système, tout en le faisant évoluer suivant les différentes versions d’Hyperledger : alpha, beta et 1.0 sortie 6 mois plus tard.

Le fait d’être technologiquement agnostiques nous permet donc d’être en veille permanente dans un  environnement en pleine évolution de faire les meilleurs choix blockchain pour les projets de nos clients.

  • Anticiper les contraintes de coût et les risques hardware

Quand nous sommes passés à Hyperledger, nous avons dû adapter  en partie notre architecture. Ce projet présente toutes les caractéristiques d’une architecture IoT où des boîtiers collectent et chiffrent les données au niveau des compteurs. Nous avons dû repenser le système dans son ensemble pour minimiser la consommation de bande passante et les coûts de télécommunication : une contrainte importante pour assurer la faisabilité économique des projets en production. Dans ce contexte techno très innovant, les architectures mises en place ont été monitorées pour vérifier l’impact réel sur le volume de communication. Egalement, notre préoccupation a été de minimiser les risques hardware : plus on met de software côté IoT, plus la maintenance et les mises à jour sont rendues complexes dans un contexte technique en évolution permanente.

L’architecture actuellement en place est très évolutive : la containerisation propre à Hyperledger Fabric simplifie le déploiement des nœuds et permettra, lors de l’industrialisation, d’assurer que le consensus est suffisamment distribué et d’envisager dans le futur un rôle accru de la part des utilisateurs dans le portage de nœuds validateurs et l’audit du système y.c. les smart contrats.

  • Vérifier la conformité avec la réglementation

Qui dit blockchain dit également stockage et transfert de données pouvant comporter un caractère personnel. C’est le cas dans ce projet d’autoconsommation collective où les données de consommation individuelles sont soumises  au « droit à l’oubli ». Ceci est rendu possible par l’anonymisation des données de consommation et une gestion séparée des tables de rapprochement. La blockchain ne stocke pas les numéros PRM des abonnés, garantissant la compliance RGPD.

  • Garantir une visualisation des données performante

Un des livrables d’un projet blockchain comme Sunchain et qui ne peut pas tout à fait être traité de la même manière qu’un projet IoT classique est la visualisation des données par les utilisateurs ou les partenaires qui viendront se connecter, majoritairement via un accès web. Afin de maximiser la performance de ce service, Talium a choisi de développer un nœud client spécifique pour mettre à disposition les données du smart contrat puis de les présenter via une plateforme permettant de concevoir des visuels pertinents, de programmer des alertes et de monitorer les transactions.

  • S’adapter aux besoins en data et en intégration aux SI des partenaires

Dans le cadre du projet d’autoconsommation collective de Sunchain, Enedis, le gestionnaire de réseau public de distribution d’électricité, interface ses systèmes avec la blockchain pour recueillir le bilan de la répartition des flux. . Notre rôle d’intégrateur a été de développer un système pour mettre à disposition les données certifiées par la blockchain. Nous avons donc mis en œuvre les outils d’interfaçage entre le SI d’Enedis et l’architecture blockchain diffusant les clés de répartition (c.à.d. comment l’électricité non consommée des producteurs a été répartie entre les utilisateurs consommateurs). Enedis combine la relève des courbes de charge des compteurs de chaque client avec ces taux de répartition et transmet les informations de facturation vers les autres acteurs. Enedis a par ailleurs développé un format de données disponible pour tous les acteurs souhaitant répliquer ce type de projet d’autoconsommation collective utilisant les blockchains. Du point de vue de cet acteur clé, standardiser ce format de données et l’interface entre ses Systèmes d’Information et les blockchains est essentiel afin de faciliter le déploiement industriel de ces solutions.

Les projets blockchain sont pour la plupart jeunes, ils démarrent souvent comme une start-up, la priorité initiale est de démontrer le concept applicatif et de convaincre les premiers clients et utilisateurs.

Mais si le succès est au rendez-vous, il faut passer à la phase d’industrialisation pour garantir la fiabilité et la sécurité du service. Pour cela il est impératif d’adopter une démarche d’expert intégrateur pour la conception de l’architecture et de respecter certains principes au risque de devoir plus tard apporter des patchs à son application et devoir affecter sa performance et sa sécurité.