La Blockchain apparaît aujourd’hui comme une disruption majeure qui présente de nombreux avantages. Les entreprises qui souhaitent lancer des projets reposant sur cette technologie doivent cependant se poser certaines questions avant d’envisager une implémentation.

Cet article fait suite à une question posée dans le cadre de la FAQ.

Jonathan Gérardin, Manager au sein de la practice Architecture des Systèmes d’Information, répond à vos questions.

Comment insérer une Blockchain dans un SI existant ?

Techniquement, la Blockchain doit être considérée comme une base de données distribuée.
Il faut donc déterminer si vous voulez que votre SI soit : simple client (juste consulter les informations d’une Blockchain publique), hébergeur, ou les deux.
L’intégralité des données de la Blockchain est stockée par chacun des nœuds, qui se synchronisent selon un modèle pair à pair.
Les nœuds peuvent réaliser les mêmes opérations qu’une base de données classique (insérer et consulter), à l’exception notoire des opérations de suppression et de modification d’une entrée.
Pour les opérations de consultation, un simple client, doté du connecteur approprié (dépendant du protocole choisi pour l’implémentation), peut accéder en lecture aux données de la Blockchain. Les clients peuvent également proposer aux nœuds d’ajouter de nouvelles données.
On peut donc dire que pour créer une Blockchain dans un SI client il faut :

– Un logiciel faisant office de serveur de Blockchain (nœud), hébergeant les données, déployé sur des serveurs ou des postes de travail

– Une partie client, ou un connecteur, permettant à des utilisateurs, ou des applications, d’accéder aux données, ou de proposer d’en ajouter

Quels sont les prérequis et prédispositions nécessaires pour faire en sorte que la Blockchain s’insère bien dans le SI complexe ?

Il faut envisager l’architecture sur les 3 plans :

– Fonctionnel : le recours à la Blockchain se justifie-t-il vis-à-vis de l’usage qui en est prévu ? Par exemple : est-ce que je devrais réaliser des opérations de mise à jour, ou de suppression d’information ? Est-ce que la réactivité du système est un critère important ?  Le système peut-il accepter de refuser des transactions ? Les opérations que je prévois de réaliser sur les données sont-elles compatibles avec un modèle distribué ? ….

– Applicatif : ma Blockchain est-elle équipée de moyens d’accès : connecteurs pour les applications, ou client pour les utilisateurs. Où seront localisés les différents blocs applicatifs ? Les flux sont-ils conformes à la politique d’échanges inter-applicatifs ?

– Technique : quelles ressources vont héberger les nœuds de la Blockchain ? Est-ce une solution efficace (empreinte énergétique, coût) ? Les équipes d’exploitations sont-elles en mesure de gérer à grande échelle la sécurité des certificats de chacun des nœuds ? A-t-on les moyens et les connaissances nécessaires pour gérer le déploiement et la mise à jour de nœuds de la Blockchain ?

Voici les exemples de quelques une des questions à se poser. En bref, n’hésitez pas à faire appel à un expert.

Est-ce que les mineurs sont les ordinateurs des collaborateurs ?

Les mineurs doivent pouvoir exécuter le logiciel faisant office de nœud, il faut donc de la puissance de calcul et du stockage.
In fine, il peut donc s’agir des postes de travail des collaborateurs, de ressources disponibles : serveur, VM, ou ressources issues du Cloud.
Dans les implémentations nécessitant de réaliser un calcul complexe (Proof of Work) pour ajouter une entrée (ce qui n’est pas systématique), il faut bien entendu disposer d’une puissance de calcul suffisante pour être en mesure de réaliser les calculs dans des délais raisonnables. Le critère de la consommation énergétique devient également un facteur à prendre en compte.

blockchain computer screen chain

Prenons un exemple connu de tous : Bitcoin. Il serait absolument contre-productif d’utiliser pour le minage autre chose qu’un équipement spécialisé. Depuis début janvier 2016, 5 types de processeurs spécialisés se partagent la majorité du marché ASIC (application-specific integrated circuit) : BitFury 16nm, KnC 16nm Solar, Spondoolies 28nm PickAxe, Bitmain 28nm BM1385, Avalon 28nm A3218. Ces équipements ont une efficacité énergétique de l’ordre de 0,055 – 0,27 J/GH (joules par gigahash).

Pour revenir à la question, un poste de travail équipé d’un GPU a une efficacité énergétique de l’ordre de 3,09 à 0,2 J/MH (joules par megahash), selon la qualité de son matériel. Un équipement spécialisé pour le minage de Bitcoin a donc une efficacité mille fois supérieure à une bonne station de travail équipée d’une carte graphique spécialisée.

Quels types et quel volume de documents peut-on stocker dans une Blockchain ?

D’abord, il ne faut pas perdre de vue que les données de la Blockchain ne pourront ni être modifiées, ni supprimées. Cela exclut donc un usage de type « Gestion Électronique de Document » (GED).

Ensuite, les documents devront être stockés par l’ensemble des nœuds de la Blockchain. Il faut donc limiter leur volume afin que celle-ci n’atteigne pas une taille déraisonnable en terme de stockage pur, ni n’entraine de très lourds échanges réseaux pour synchroniser les nœuds.

Quelques chiffres pour avoir une référence, la plus grande Blockchain actuelle est celle de Bitcoin.
Sa taille est de pratiquement 67 Go, et la taille moyenne d’un bloc est variable, elle oscille entre 0,7 et 0,8 Mo.

Ces limitations font que l’on ne stocke donc pas de documents dans une Blockchain, car cela n’aurait pas véritablement d’intérêt par rapport à une solution d’échange de fichiers. On utilise plutôt une déclinaison de Blockchain (une des implémentations disponibles) pour signer (au sens d’attester de l’existence d’un objet) des documents. On parle alors de « Proof of Existence », qui permet d’attester qu’un document existait bien dans cette forme, à un instant précis. Les usages principaux sont : d’attester de la propriété d’un document et d’horodater un document (exemple : dépôt de brevet), ou pour garantir de l’intégrité d’un document (exemple : pour garantir qu’un testament n’a pas été modifié). Bien entendu, seule l’heure et l’empreinte numérique du document (résultat d’une fonction mathématique à sens unique) sont stockées dans la Blockchain.