La blockchain au-delà de l'emballement médiatique
Écrit par Lorenz Sommer
wega Informatik est l'un des principaux prestataires de services informatiques dans le domaine de la pharmacie et des sciences de la vie en Suisse. Wega mène plusieurs initiatives pour explorer le potentiel des nouvelles technologies. Cet article s'intéresse à l'engouement pour les systèmes basés sur la blockchain. Nous avons mis en œuvre des applications basées sur des contrats intelligents pour la chaîne de blocs Ethereum afin de mieux comprendre l'utilisation des applications basées sur la chaîne de blocs et également pour des cas d'application liés à l'industrie pharmaceutique.
L'objectif de cet article est de vous donner une introduction à certains principes des systèmes basés sur la blockchain. Vous pourrez ainsi décider dans quelles conditions et pour quels cas d'application la blockchain peut être utile ou non. J'ai écrit cet article avec l'intention de lancer une discussion. S'il vous manque quelque chose en particulier, ne vous inquiétez pas - nous avons prévu quelques articles de suivi qui exploreront plus en profondeur certains domaines. Je n'expliquerai pas la structure des données de la blockchain elle-même, car il existe déjà d'innombrables articles sur ce sujet. Au lieu de cela, dans cet article, je souhaite mettre en avant la philosophie qui se cache derrière les systèmes de blockchain et expliquer pourquoi ils sont construits avec une certaine conception à l'esprit.
Je ne sais pas si vous êtes familier avec certains principes de l'architecture logicielle, c'est pourquoi je vais utiliser quelques analogies simplifiées dans ce texte. En outre, j'en ferai la démonstration à l'aide d'un ménage et d'un système de chauffage.
Premier principe : le modèle budgétaire vs. le modèle d'entreprise/d'équipe pour les logiciels
Le modèle de ménage
Commençons ce voyage par une petite histoire :
J'ai deux amis, Alex et Carla. Lorsque nous étions étudiants, nous vivions tous en colocation. Après avoir obtenu leur diplôme et commencé à travailler, ils ont déménagé dans leur propre appartement de location. Et moi, j'ai déménagé dans mon propre appartement, dans lequel je vis heureux depuis. Alex et Carla ont joué à la loterie pendant plusieurs années et ont eu la chance de gagner. C'est pourquoi ils ont pu se permettre d'acheter une maison.
Cette histoire peut sembler assez ordinaire, mais continuons et soulignons les différences entre les modèles de ménage.
Alex et Carla ont vécu dans différents modèles de ménages, chaque modèle étant utile dans un cas particulier et dépendant de certains aspects. La plupart des gens se sentent à l'aise dans un ménage privé ou dans un ménage locatif. Les colocations ne sont pas si fréquentes. Lorsque l'on rejoint une colocation, l'intimité est bien moindre que dans un ménage privé. Et dans un ménage privé, il est plus facile de prendre une décision, car personne ne doit être impliqué, alors que dans une communauté, il est plus compliqué de changer quelque chose, car il faut trouver un consensus entre toutes les parties.
Si vous devez choisir un modèle de ménage particulier, vous pouvez utiliser ce croquis :
Mais comment le modèle budgétaire se rapporte-t-il aux systèmes basés sur la blockchain ?
Le modèle d'exploitation/de couche pour les logiciels
Un modèle similaire est utilisé pour la stratification et l'exploitation des logiciels. Si vous voulez avoir le contrôle total de votre système, vous opterez principalement pour une infrastructure privée (votre propre maison). Le logiciel en tant que service (SaaS) est comme une location, car vous ne devez pas posséder le logiciel, mais vous avez toujours votre vie privée et pouvez facilement collaborer avec n'importe qui, exemples : Dropbox, Office 365, G Suite et ainsi de suite.
Mais qu'est-il advenu de la communauté/propriété commune?
La blockchain est un cas particulier de système logiciel distribué, un réseau peer-to-peer (P2P). De tels systèmes sont souvent construits pour éliminer la propriété et la centralisation. Il nous permet également de partager des données avec n'importe qui sans restrictions (légales). Les exemples sont Bittorent, Shareaza, eMule, Gnutella, Vuze, Limeware, Kazaa, etc. La plupart de ces exemples sont des réseaux P2P pour l'échange de fichiers et sont basés sur une base de données de hachage distribuée (DHT). En comparaison, la blockchain utilise une structure de données distribuée de type blockchain.
Les logiciels peer-to-peer sont utiles pour les communautés ou les consortiums dans lesquels les données doivent être partagées. La prise de décision est plus facile dans un système logiciel privé en pleine propriété que dans un système de blockchain distribué géré par la communauté, car dans ce dernier cas, toutes les parties doivent trouver un consensus. Le consensus est l'élément clé de l'utilisation de la technologie blockchain.
Le modèle de ménage transformé en modèle d'entreprise/d'équipe est représenté sur ce schéma :
N'oubliez donc pas que le choix du modèle de logiciel/de la stratification qui convient le mieux à vos besoins a beaucoup à voir avec votre opinion personnelle et votre vie privée. Les blockchains sont conçues pour être transparentes, de sorte que tout le monde peut vérifier l'historique des transactions.
Deuxième principe : le système de chauffage du ménage contre le système de gestion des données
Le système de chauffage dans le ménage
Revenons donc à notre histoire précédente avec Alex et Carla. Ils ont acheté un terrain et ont pris contact avec une entreprise de construction. Ils ont eu plusieurs réunions sur les différentes possibilités de construire leur maison. L'un des sujets abordés était le système de chauffage, que nous utiliserons comme analogie dans cet exemple.
Au Canada, l'hiver peut être rude et froid. C'est pourquoi le choix du bon système de chauffage est si important. L'architecte propose trois systèmes de chauffage différents :
- Solaire (thermique, électrique)
- Pompes à chaleur (air-air/air-eau)
- Système de chauffage fossile (gaz, pétrole, bois)
Toutes les différentes solutions de chauffage résolvent le même problème. Elles utilisent simplement une mise en œuvre différente et sont (plus ou moins) interchangeables. Ce n'est évidemment pas l'approche optimale, mais il est possible de chauffer une maison au Canada en utilisant la technologie solaire. En revanche, la combustion du bois comme source de chauffage est une solution beaucoup plus économique, du moins au Canada.
Dans un autre pays, la décision pourrait être différente.
Si vous devez choisir un système de chauffage particulier, vous pouvez utiliser ce croquis :
Mais comment le modèle de chauffage s'accorde-t-il avec les systèmes basés sur la blockchain ?
Le système de gestion des données
Eh bien, un composant central dans un système informatique est le système de gestion des données, qui est l'endroit où toutes vos données sont stockées. Dans notre analogie, le système de gestion des données pourrait être considéré comme le système de chauffage d'une maison. Tout comme il existe différents systèmes de chauffage, il existe également différents systèmes de gestion des données connus pour stocker des données. Dans le paysage de la gestion des données, la blockchain peut être considérée comme un cas très particulier.
Le modèle d'installation de chauffage transformé en modèle de gestion des données est visible sur ce schéma :
La blockchain est un système de gestion de données très particulier qui présente certaines caractéristiques :
- Les données peuvent uniquement être jointes
- les données sont inaltérables et sécurisées par cryptographie
- Les données sont transparentes et compréhensibles pour la communauté
- Les données sont validées et accessibles à la communauté
- Chaque bloc créé augmente la probabilité que la transaction soit valide, mais la création de blocs coûte du temps et de l'énergie, ce qui, au final, représente de l'argent.
Mais on peut reproduire/répondre à la plupart des exigences en adaptant d'autres systèmes de gestion des données. C'est un peu comme avoir différents systèmes de chauffage. Tous les systèmes peuvent être utilisés pour résoudre un problème commun, ils ne diffèrent que par leur implémentation. La structure de données de la blockchain peut également être stockée dans une base de données relationnelle et il est même possible de distribuer ces systèmes (par exemple avec NewSQL). Mais sans un réseau distribué spécialisé (P2P), on perd la validation distribuée ou la sécurité contre les pannes, qui doivent être résolues différemment dans les systèmes traditionnels.
Quelques autres points de discussion
La blockchain en tant que service (Baas)
Les fournisseurs de services cloud comme Amazon, Google et Microsoft ont lancé un nouveau service pour leurs environnements cloud : Blockchain as a Service (BaaS). Avec l'aide de BaaS, vous pouvez exploiter des nœuds de blockchain privés dans le cloud. Cela semble bien au départ (surtout pour les prévisions de revenus des fournisseurs de services), mais en utilisant un fournisseur, vous centralisez vos nœuds. Vous perdez ainsi la résilience de l'aspect distribution. Si votre environnement cloud a un problème, c'est toute votre blockchain privée qui tombe en panne. Par exemple, en 2013, Amazon a connu un temps d'arrêt de 68 heures et Microsoft Azure de 272 heures, comme décrit dans cet article : Downtime Statistics of Current Cloud Solutions.
Pour éviter cela, vous devez exploiter au moins quelques nœuds à un autre endroit. L'utilisation de BaaS n'est alors plus si différente d'un système de gestion de données traditionnel si vous n'exploitez qu'un ou quelques nœuds d'un système de blockchain.
Applications basées sur la blockchain
Les applications basées sur la chaîne de blocs ne sont pas si différentes des applications traditionnelles. L'architecture de haut niveau d'une application basée sur la blockchain est très similaire à la conception traditionnelle d'une application à trois niveaux, en utilisant simplement un concept différent de stockage de données à plusieurs endroits. Un emplacement supplémentaire est utilisé pour stocker les données avec la capacité de suivre toutes les modifications, et il vous permet de prouver quand et par qui elles ont été modifiées. Il serait également possible de stocker de petits morceaux de code dans la chaîne de blocs, par exemple des contrats intelligents comme points d'interaction entre votre application et le système de la chaîne de blocs. Étant donné que l'espace de stockage des blocs est limité et que son utilisation a un coût, vous serez obligé de créer un deuxième espace de stockage pour les données ou les fichiers qui ne doivent pas être inclus dans la blockchain. Au final, vous aurez un mélange entre une structure traditionnelle pour la couche d'application et la couche de persistance avec la blockchain. La blockchain elle-même ne sécurise qu'une partie pertinente des données. Le reste de l'application aura tous les avantages et problèmes d'un système traditionnel.
L'utilisation de la blockchain dans le backend entraîne une complexité et des coûts plus élevés. Mais pour les données stockées dans la blockchain, vous obtenez une validation et une transparence lorsque vous devez les justifier auprès de collaborateurs ou d'autorités. La blockchain est une plateforme qui renforce la confiance entre les parties prenantes.
Résumé
L'utilisation d'un réseau peer-to-peer distribué pour le partage de la structure de la blockchain est très utile pour les crypto-monnaies. Comme il s'agit d'un cas d'utilisation piloté par la communauté, il y a une forte motivation pour éviter la propriété centralisée et il est crucial de garantir une transparence totale.
Mais appliquer les mêmes principes aux applications d'entreprise n'est peut-être pas la bonne approche. Le suivi des modifications ou de l'historique dans les applications privées n'est pas nouveau et a déjà été mis en œuvre et établi dans de nombreuses implémentations. Quelques exemples sont les Temporal Patterns, le support direct dans les bases de données comme SQL-Sever, ou les SCD Manangement Methodologies type 4.
Si vous créez une application web basée sur la blockchain, vous perdez la résilience, car l'application web est exécutée sur un serveur web traditionnel. Si vous n'avez qu'un seul serveur web, vous introduisez un seul point de défaillance, et si votre serveur web tombe en panne, vos utilisateurs ne peuvent plus travailler, même si la blockchain derrière est à sécurité intégrée. Le retour à un serveur web ramène toutes les techniques qui y sont utilisées pour rendre votre application à sécurité intégrée de manière traditionnelle, avec plusieurs serveurs web, proxys et load-balancers.
Le prochain article sera intitulé : "La blockchain peut-elle être utilisée dans le domaine de la pharmacie et des soins de santé ?
Je suis consultant chez wega Informatik AG à Bâle. wega Informatik est l'un des principaux prestataires de services informatiques dans le domaine de la pharmacie et des sciences de la vie en Suisse.
J'espère que cet article vous a intéressé et qu'il vous a ouvert une autre perspective sur l'ensemble du débat sur la technologie blockchain. Si vous avez des questions, n'hésitez pas à me contacter à l'adresse lorenz.sommer@wega-it.com.