Accueil » Implémentation d’une application décentralisée basée sur la blockchain » Explorer la technologie Blockchain et les smart contracts

Découvrez la technologie Blockchain et les smart contracts, des systèmes décentralisés et sécurisés pour des transactions fiables.
Découvrez le potentiel innovateur de la Blockchain, ses caractéristiques clés et son impact sur divers secteurs d’activité.
Découvrez les spécificités de la Blockchain privée et ses couches essentielles pour la sécurité des données en utilisant la cryptographie.
Découvrez le rôle du hachage dans la sécurité des mots de passe et la blockchain, ainsi que ses applications variées.

Chapitre II :

Aperçu global sur la technologie blockchain et smart Contract

Bref historique

Le concept de Blockchain est apparu en 2008 ; Pourtant, les deux chercheurs Stuart Haber et W. Scott Stornetta ont breveté une solution informatique permettant d’horodater les documents numériques pour éviter qu’ils ne soient obsolètes ou remplacés. Cela remonte à 1991, sans quoi le concept de Blockchain aurait été créé là. Leur brevet a expiré quatre ans avant la naissance du premier système basé sur la Blockchain, le bitcoin.

Le terme Blockchain vient de la manière dont le réseau stocke les données liées aux transactions, c’est-à-dire les blocs, liés pour former une chaîne. Par conséquent, la « Blockchain » évoluera à mesure que le nombre de transactions augmentera. La technologie Blockchain est une vaste base de données de transactions décentralisée qui permet la gestion de transactions authentifiées et inviolables sur un vaste réseau. Elle se définit également comme une technologie qui permet de suivre (dans un registre) un ensemble de transactions, de manière décentralisée, sécurisée et transparente.

En économie, nous explorons les transactions comme de petites unités qui peuvent être divisées et reconstituées. De plus, il s’agit d’un registre, une grande base de données qui a la particularité d’être partagée simultanément avec tous les utilisateurs, qui sont tous titulaires de ce registre et qui ont tous la possibilité d’y saisir des données, selon des règles de condition spécifiques établi par un protocole informatique très bien sécurisé grâce à la cryptographie.

Figure 5 : Fonctionnement de la Blockchain

C’est en 2008, contexte d’une crise financière et de confiance exprimées dans le système bancaire, les utilisateurs recherchaient un système efficace, fiable et sécurisé pour effectuer des transactions financières ; que la technologie Blockchain fera son apparition avec le premier crypto-système, le bitcoin. Le bitcoin est l’une des solutions développées pour répondre aux problèmes de complexité, de vulnérabilité, d’inefficacité et de coûts des systèmes de transactions existants.

Cette crypto-monnaie fut lancée en 2009 par un ou plusieurs personnes dont l’identité reste mystérieuse, puis qu’ils ne sont connus que sous le pseudonyme : Satoshi Nakamoto. Dans son livre blanc ou white paper, il expose le fonctionnement et les fondements de sa cryptomonnaie (Satoshi Nakamoto, 2008). Fonctionnant dans réseau pair-à-pair. En fonction de la forme de Blockchain, les Blockchains ouvertes (permissionless) et les Blockchains privatives, parfois appelé consortium. La première forme de Blockchain, ou encore Blockchain publique, est celle dont le contenu en innovation est le plus important mais dont les différentes filières économiques ne se sont pas encore appropriées suffisamment le potentiel technologie [bitcoin et Etherium]. Le procédé de cette dernière consiste à une accessibilité ouverte à tout le monde, Tout le monde peut y être à la fois à l’origine de transactions, d’échanges et être un nœud du réseau. La décentralisation complète.

Le fonctionnement d’une Blockchain commence par son cœur constitué des algorithmes de consensus qui permet aux participants de maintenir la cohérence des copies du registre distribué. Le consensus porte l’historique du registre : les copies maintenues par des participants doivent être cohérentes entre elles et les enregistrements doivent être valides. La validité d’un enregistrement dépend de l’application, par exemple en Bitcoin, la validité d’un enregistrement porte sur le fait que la double dépense est résolue et le payeur possède le montant déclaré dans sa transaction.

La notion de validité va au-delà des systèmes de paiement, les smarts contracts, ou contrats intelligents, sont aussi déployé dans les Blockchains. C’est grâce à ces contrats intelligents qu’il est possible de créer des règles d’enregistrement auto-établies par les participants, comme par exemple des validations complexes incluant des calculs et, in fine, rendre les Blockchains programmables.

Définition

La Blockchain est une technologie à échelle similaire à Internet, permettant de stocker des données numériques de manière décentralisée et sécurisée. Techniquement, il s’agit d’une base de données distribuée dont les informations soumises par les utilisateurs et les liens internes vers la base de données sont vérifiés et regroupés à intervalles réguliers en blocs.

Les blocs sont sécurisés cryptographiquement et forment ainsi une chaîne. D’une manière générale, la Blockchain est une base de données distribuée qui gère une liste d’enregistrements protégés contre la falsification ou la modification par les nœuds de stockage ; Il s’agit donc d’un registre distribué et sécurisé de toutes les transactions effectuées entre utilisateurs depuis sa création.

Fonctionnement de la Blockchain

Il s’agit donc d’une sorte de livre de comptes ou de registre qui contient une liste de toutes les transactions effectuées entre utilisateurs. Ce registre est sécurisé et distribué : elle est partagée par différents utilisateurs sans intermédiaires, ce qui permet à chacun de vérifier la validité de la chaîne.

Dans un réseau Blockchain, les transactions effectuées suivent définie dont voici le fonctionnement :

  • Les utilisateurs initient une transaction dans le réseau. La transaction pourrait être des contrats ou enregistrement d’autres informations ;
  • La demande de transaction doit être représenté sous forme de bloc dans le réseau ;
  • Le bloc est d’abord créé puis diffusé aux participants du réseau ;
  • Le bloc est analysé par tous les participants du réseau puis validé ;
  • La validation du bloc est effectuée avec le support de l’algorithme de consensus ;
  • Les membres du réseau valident le bloc pour l’attacher au réseau ;
  • Le nouveau bloc est attaché au réseau et la transaction terminée ;

M. Belotti, N. Bozic, G. Pujolle, et S. Secci, (2028), « A Vademecum on Blockchain Technologies : When, Which and How », article.

Le blocage ajouté avec le consentement des membres du réseau devient permanent et immuable.

Figure6 : Fonctionnement de Blockchain

Caractéristiques de la technologie Blockchain

La Blockchain repose sur un système de pair-à-pair c’est qui revient à dire que les données ne sont pas hébergées par un serveur unique mais distribuées entre les utilisateurs, sans intermédiaire. Les copies de la Blockchain est présente dans tout le nœud du réseau et sont mises à jour simultanément. Elle permet d’échanger sans le contrôle d’un tiers, c’est-à-dire que la validation et l’ajout d’un bloc résultent d’un consensus entre les utilisateurs-validateurs, qui repose sur la possibilité de vérifier leur travail de validation et l’inutilité d’un contrôle après une institution de référence.

Le potentiel innovateur de la Blockchain réside du fait qu’elle présente plusieurs caractéristiques dont nous en listons les principales.

La désintermédiation : la technologie Blockchain permet d’échanger sans le contrôle d’un tiers. Tout est effectué sans l’intervention d’une autorité centrale, les utilisateurs opèrent la surveillance, et se contrôlent mutuellement, assurant la certification des sauvegardes et leur cohérence. Le tiers de confiance, une banque par exemple, est traditionnellement le seul moyen de s’assurer qu’une transaction est valide. C’est-à-dire que les données (de la monnaie ou un fichier) ont effectivement été transférées d’une personne A à une personne B, et que la personne A n’est donc plus en possession des données initiales. Elle est ainsi décentralisée tant sur le plan politique 13 (personne ne la contrôle) que sur le plan architectural (pas d’infrastructure central).

La transparence : elle décrit le fait qu’une fois le document est inscrit sur la Blockchain, cela suffit à prouver que ce dernier existe bien à l’instant T et qu’il n’a pas été modifié. La Blockchain est qualifiée de transparence car tout le monde peut la télécharger dans son intégralité et vérifier à tout moment son honnêteté. Tous les utilisateurs de la Blockchain ont la possibilité de voir les transactions présentes et passées.

La sécurité : l’hébergement décentralisé rend la technologie sûre, il est quasi-impossible de supprimer toutes les copies des documents qui existent sur une multitude de serveurs à travers le monde. La Blockchain a une grande résistance, car toutes les données sont copiées dans les différents serveurs. Constitue un réseau très robuste face aux cyber-attaques.

L’autonomie : la puissance de calcul et l’espace d’hébergement sont fournis par les nœuds du réseau, c’est-à-dire les utilisateurs eux-mêmes. Au sein d’une Blockchain, l’infrastructure n’est donc plus concentrée dans les mains d’une organisation mais est, au contraire, éclatée dans l’ensemble des points du réseau. Une Blockchain est par conséquent autoportante et indépendante de service tiers.

La Blockchain est l’architecture sous-jacente de la cryptomonnaie bitcoin, qui reste aujourd’hui le cas d’usage le plus connu de la technologie Blockchain, elle trouve son application dans plusieurs secteurs de la vie ; possédant un potentiel de s’appliquer à tous les domaines qui impliquent un échange, une sauvegarde ou même une preuve.

Réseau Blockchain

Les différentes manières d’organisation le réseau correspondent aux types de réseaux à utiliser pour des besoins spécifiques. Les terminologies « centralisé, décentralisé et distribué » s’appliquent aux organisations diamétralement opposées. En architecture centralisé, les nœuds du réseau convergent ou sont reliés à un serveur unique. Techniquement, c’est type de réseau est simple à construire. Cependant, il présente de nombreux défauts dont le fait d’être un point de défaillance unique, Single Point of Failure. En ayant qu’unique point névralgique, une panne ou défaillance entraine l’arrêt de service. Aussi, en cas d’une sollicitation simultané des plusieurs au central, il peut vitre être saturé. Enfin, ce système est plus vulnérable aux attaques informatiques dans la mesure il n’existe qu’une seule version de données.

Figure7 : Schéma du réseau Blockchain

Dans un réseau centralisé une entité dispose des données et prend seule les décisions de modification. Dans un réseau distribué, le traitement est partagé entre plusieurs nœuds, mais que les décisions peuvent toujours être centralisés tout en utilisant des données provenant de tous les nœuds du système. Ce genre de système peut permettre de répartir des opérations informatiques trop lourdes à supporter pour un seul nœud du nœud. Cependant, un organisme central prend des décisions sur le traitement de chacun nœud. Enfin, le réseau décentralisé, le terme décentralisé explicite la notion de la non unicité d’organe décisionnel dans le réseau. Par ricochet, Chaque nœud prend une décision ayant son propre comportement, et le comportement du système qui en résulte est une réponse globale de la somme du comportement des nœuds dans le système. En résume, dans un réseau basé sur un système décentralisé, la prise de décision est une résultante du comportement de chacun de nœuds du réseau.

ARCHITECTURE CENTRALISÉE VS ARCHITECTURE DÉCENTRALISÉE

L’architecture centralisée, laisse un ou plusieurs serveurs diriger chaque ordinateur vers ceux qui possèdent le fichier qu’il recherche. Les systèmes centralisés présentent quelques inconvénients tels que les problèmes de confiance, de sécurité et de confidentialité. Ils sont couteux, plus vulnérables aux attaques et par conséquent moins sécurisés. L’architecture décentralisée quant à elle, ne connaît pas de serveur fixe. Chaque ordinateur fait office de mini serveur, ce qui répartit la responsabilité. L’une des particularités de ce type de réseau est d’offrir un relatif anonymat aux utilisateurs.

Les systèmes décentralisés présentent les avantages suivants par rapport aux systèmes centralisés : l’élimination d’intermédiaires / une vérification plus simple et l’authenticité des transactions / la sécurité y est renforcée à moindre coût / ces systèmes ont une plus grande transparence / sont décentralisés et immuables.

ÉCHANGE PAIR À PAIR (P2P)

Le pair-à-pair, Peer-to-Peer ou P2P (les trois termes désignent la même chose), définit un modèle de réseau informatique d’égal à égal entre ordinateurs, qui distribuent et reçoivent des données ou des fichiers. Dans ce type de réseau, comparable au réseau client-serveur, chaque client devient lui-même un serveur. Le P2P facilite et accélère les échanges entre plusieurs ordinateurs au sein d’un réseau.

CLASSIFICATION DES BLOCKCHAINS

La manière dont les chaines sont construites, accédées et vérifiées classe la Blockchain en trois grandes catégories. Nous en listons dans les lignes qui suivent.

Blockchain publique, comme son nom l’indique, est accessibles à n’importe qui : tout le monde peut rejoindre le réseau et partir comme il le souhaite. Ainsi les blocs de transaction et la Blockchain peuvent être observés publiquement, même si les participants sont anonymes. Par ailleurs, chacun peut envoyer des transactions et s’attendre à ce qu’elles soient incluses dans le registre; de toute évidence si ces transactions respectent les règles de cette Blockchain. Dans les Blockchains publiques, n’importe qui peut participer librement au processus d’approbation c’est-à-dire le processus qui décide le bloc à ajouter à la chaîne et qui définit l’état du système. La Blockchain Bitcoin et la Blockchain Ethereum sont deux principaux exemples de Blockchain publiques.

Blockchain dite de consortium ou autorisée, qui impose certaines restrictions aux autorisations d’écriture, de sorte que seul un ensemble présélectionné de participants au réseau peut influencer et contrôler le processus, même si la lecture est ouverte à tout participant du réseau;

15 Brahim El Khalil GHOGGALI, (2020), Système des crédits bancaire base sur la technologie blockchain, mémoire de Master, Université Mohamed Khider, Algérie. 16 Kabamba Jonathan, (2022), proposition d’une architecture blockchain sécurisée pour la gestion des Microcrédits, mémoire de master, Université Nouveaux Horizons, RDC

Blockchain privée, l’accès à la Blockchain est limité aux participants sélectionnés, par exemple les participants d’une organisation. Cette restriction aide à simplifier les opérations normales telles que la création de blocs et le modèle de contingence. Ainsi le processus d’approbation est contrôlé par un nombre restreint et choisi de nœuds. Ce qui entraine une double modification au système originel, puisque non seulement les participants au processus d’approbation sont limités et sélectionnés, mais aussi ce n’est plus la règle de la majorité qui s’impose. Quant à l’autorisation de lecture de la Blockchain, c’est-à-dire l’accès au registre, elle peut être, soit public, soit réservé aux participants du réseau.

Ces trois dernières années ont vu une multiplication de preuves de concept ou expérimentations dans des secteurs comme le minier, l’énergie, l’alimentaire, la mobilité, le contrôle de la pollution, l’administration, etc., mais souvent avec des ambitions limitées et des investissements timorés. Le passage à une Blockchain 3.0 demande de surmonter des obstacles d’ordre technique.

Dans toute classification de la Blockchain, les informations que contiennent un bloc sont les suivantes :

  • Unindex : la position d’un bloc dans la Blockchain ;
  • L’horodatage: la date à laquelle un bloc a été ajouté à la Blockchain ;
  • Les données : dans une transaction minière, par exemple, il pourrait s’agir de la production de mois passé. ;
  • Unehache : toutes les données du bloc sont passées dans une « fonction de hachage » pour produire un identifiant unique nommé une hache (procédé expliqué ci-dessus).
  • Lehache du bloc précédent ;
  • Lenonce : un nombre utilisé pour générer la hache d’un

La Blockchain présente un principe d’inviolabilité dont son cœur réside dans le hachage.

Figure8 : Envoie d’un message authentifié par une transaction

Blockchain en couches

Les composants technologiques sous-jacents aux couches de la Blockchain comprennent les transactions, les blocs, les consensus, les applications et les contrats intelligents. Tous ces composants sont séparés en différentes couches, ce qui équivaut à l’écosystème de Blockchain.

Les principaux aspects de la Blockchain peuvent être divisés en six couches répertoriées comme suit : couches de réseau, de transaction, de Blockchain, de confiance, d’application et de sécurité. Chacune de ces couches a des propriétés et des caractéristiques différentes, comme le montre la Figure9.

17 Mme Ana BAKHOUM, (2019), La Blockchain pour la Sécurisation des E-livrets scolaires, Mémoire de fin d’étude, UNIVERSITE ASSANE SECK DE ZIGUINCHOR, Sénégal

Figure9 : Illustration des différentes couches de la Blockchain (source : Mme Ana BAKHOUM, (2019), La Blockchain pour la Sécurisation des E-livrets scolaires, Mémoire de fin d’étude, UNIVERSITE ASSANE SECK DE ZIGUINCHOR, Sénégal)

La couche réseau

La couche réseau fait référence à un réseau P2P avec des nœuds Ethereum ou Hyperledger. La couche de transaction fait référence aux transactions déclenchées par les utilisateurs ou le contrat intelligent. La couche Blockchain fait référence au statut de bloc contenant toutes les informations nécessaires, tandis que la couche de confiance se réfère au protocole de consensus pour la validation de bloc et de transactions.

La couche d’application englobe les applications, la machine à états et le contrat intelligent. La couche de sécurité est essentielle pour la technologie Blockchain.

La cryptographie dans la blockchain

La quasi-totalité des solutions et mécanismes de protection contre les attaques sont orientés vers la sécurisation des données. Elle constitue le sous-bassement sur lequel se fondent toutes les solutions de sécurité. La Blockchain tire sa force dans l’application de notion lié à la cryptographie, dont notamment la fonction de hachage, la clé privée et la clé publique, et d’autres concepts.

La cryptographie est la pratique de la protection des informations par l’utilisation d’algorithmes codés, de hachages et de signatures. Les informations stockées dans un disque dur sont dites au repos, celles en transit constitue le fichier échangé par une voie électronique entre deux ou plusieurs parties, ou encore celles en cours d’utilisation (lors de l’utilisation de données). (Voir le point I.4.3.1.1).

19 Amazon, le 20/09/2023, https://aws.amazon.com/fr/what-is/cryptography/

Une fonction de hachage

Le hachage, en informatique, permet de convertir n’importe quel ensemble de données numériques en un has, c’est-à-dire en une courte suite binaire qui lui est propre. L’algorithme de chiffrement utilisé à cet effet est appelé « fonction de hachage cryptographique. En d’autres termes, elle est une primitive cryptographique qui transforme un message clair de taille arbitraire en un message de taille fixe.

Le hash d’un ensemble de données peut ainsi être comparé à une empreinte digitale, bien moins complexe que l’individu entier mais l’identifiant de manière unique. Le résultat de cette fo peut être selon le contexte somme de contrôle, empreinte, hash, résumé de message, condensé, condensat ou encore empreinte cryptographique.

Les fonctions de hachage cryptographique sont employées pour l’authentification, les signatures numériques et les codes d’authentification de messages. Prenons l’exemple classique d’une fonction de hachage, celui de la fonction modulo n : un jeu de donnée contenu dans un tableau de n cases, le repérage d’un élément i suffirait de parcourir les éléments contenus dans la case i modulo n.

Par exemple : on pose ℎ𝑒𝑥(𝑥) à valeur dans [0, 𝑁 − 1] défini par pour un mot 𝑥 écrit en ASCII de longueur I, ℎ𝑒𝑥(𝑥) = (∑𝑙−1 𝑥[𝑖] 𝐵𝑙−𝑖−1) mod N avec B une puissance de 2 et N premier. Posons B=256 et N=251. Cette fonction est une fonction de hachage sur 8 bits, du fait que les valeurs prises peuvent aller de 0 à 251 (en d’autres termes, modulo N).

Un hache a une taille fixe, ce qui revient à relever que les mêmes données produits le hache identique, par conséquent les données différents produisent de hache différent. A l’instar de ;« Smart » et « banane » produisent des haches différentes l’un de l’autre. En revanche, hacher « smart » produira toujours « 3wszzdzvZmDExT26R1v » et hacher « Banane » produira toujours « 2h6wc#QkCm8047eRt1l ».

Figure10 : Fonction hachage

Quelques Utilisations Usuelles

Vérification de mot de passe

Elle intervient lors du stockage des mots de passes des utilisateurs d’un site internet dans une base de données. Stocker ces derniers en clair est extrêmement risqué car, en cas d’attaque du serveur, le pirate obtient les mots de passe de tous les utilisateurs, et peut donc potentiellement les réutiliser sur d’autres sites. Ainsi, il est préférable de stocker les empreintes de hachage des mots de passe. Quand un utilisateur se connecte le mot de passe frappé à l’ordinateur est haché, l’empreinte obtenue est comparée à l’empreinte stockée par le serveur. Si elles correspondent, alors le mot de passe renseigné par l’utilisateur est correct.

Vérification de l’intégrité d’un fichier et chainage

Deux fichiers de nature différente, comme expliqué dans la figure 6, porte d’empreinte différente. Il est beaucoup plus facile de comparer la correspondance exacte entre deux fichiers en comparant leurs empreintes plutôt que de comparer les fichiers eux-mêmes. On peut vérifier en quelques secondes si deux fichiers, textes ou vidéos par exemple sont exactement identiques. Souvent utilisé par des sites hébergés en ligne proposant des logiciels sensibles.

Les sites publient l’empreinte du logiciel pour permettre aux utilisateurs de vérifier que le logiciel n’a pas été altéré entre sa conception et son installation. Cette fonction est au cœur de la Blockchain, car elle permet de vérifier la non-alternance des données cryptées dans le réseau. Pour ne citer que la Blockchain Bitcoin, les transactions sont groupées en blocs. L’ensemble de chaque bloc est ensuite passé à travers l’algorithme SHA-256 lui donnant ainsi une empreinte unique.

Figure 11 : Représentation du lien entre les blocs d’une Blockchain

Quelques cas d’usage emblématiques de la blockchain

De nombreux cas d’usage de la blockchain ont émergé ces derniers mois avec des degrés de maturité allant du proof of concept aux premiers déploiements, dont voici quelques exemples parmi les plus emblématiques :

  • Améliorer la traçabilité de la chaîne alimentaire afin de limiter la fraude sur la qualité et la nature des produits alimentaires (Alibaba, PwC,AusPost et Blackmores) ;
  • Améliorer la traçabilité des conteneurs et de leurs marchandises afin de réduire le temps de transport, la fraude et les erreurs d’aiguillage(Maersk, IBM) ;
  • Permettre l’échange de données sur la santé des patients de manière sécurisée (IBM Watson, FDA, Google, NHS) ;
  • Permettre d’établir numériquement des documents légaux (ex. diplômes) de sorte qu’ils soientinfalsifiables et vérifiables par tous (Bitproof) ;
  • Développeret rendre infalsifiable le vote électronique (FollowMyVote) ;
  • Améliorer la transparence sur l’usage qui est fait des dons auxassociations d’aide humanitaire (Start Fund) ;
  • Permettre le stockage cloud distribué pour éviter la concentration de l’information dans les data centers de quelques acteurs majeurs du stockage en ligne (Filecoin, Storj) ;
  • Permettre la rétribution des collaborateurs en fonction de leur investissement pour mieux valoriser les contributions de chacun dans le cadre d’un projet (Backfeed, Ouishare) ;
  • Luttercontre la contrefaçon de produits de luxe (Blockverify) ;
  • Protéger la paternité, la propriété et l’authenticité d’une œuvre dans la blockchain (Monegraph, Verisart) ;
  • Mettreen place un système de paiement direct des artistes sur une plateforme de streaming (PeerTracks, Ujo Music) ;
  • Permettrela communication autonome et décentralisée entre objets connectés au sein d’une maison intelligente (IBM, Samsung).

19 M. Laurent, (2018), « La blockchain est-elle une technologie de confiance », in Signes de confiance : l’impact des labels sur la gestion des données personnelles, Institut Mines Télécom.

Rechercher
Télécharger ce mémoire en ligne PDF (gratuit)
Exit mobile version