net/publication/335174496
CITATIONS READS
0 180
1 author:
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Oussama Abderraouf Ayadi on 15 August 2019.
Technologie Blockchain
Chapitre 3
3. État de l’art de la blockchain
B3.1 Introduction
Une blockchain, ou chaîne de blocs, est définie comme une base de données distribué (ledger)
qui conserve un enregistrement permanent et immuable (infalsifiable) des données
transactionnelles liées entre elles par une chaîne (par blocs).
Base de données
Propriétés Blockchain
traditionnelle
Seulement des opérations Peut effectuer des
Opérations
d'insertion opérations CRUD
Réplication complète du Maître esclave
Réplication
bloc sur chaque pair multi-maître
La majorité des pairs
Transactions distribuées
Consensus s'accordent sur le résultat
(validation en 2 phases)
des transactions
Tout le monde peut valider
Invariants les transactions sur le Contraintes d’intégrité
réseau
Tableau 2 : Comparaison entre Base de données et Blockchain
Une blockchain est un système totalement décentralisé et basé sur un réseau pair à pair (peer-
to-peer). Chaque objet du réseau conserve une copie du ledger afin d’éviter d’avoir un point
unique de défaillance. Toutes les copies sont mises à jour et validées simultanément. Bien que
l’objectif initial de la création de la blockchain fût la résolution du problème de la dépense
54 | P a g e
multiple en crypto-monnaie (monnaie virtuelle). Cette technologie peut être explorée dans de
nombreux cas d’utilisation et utilisée comme un moyen sécurisé de gestion et protection de
toute sorte de données (monétaire ou pas) [48]-[57].
Le ledger est composé d’un ensemble de blocs. Chaque bloc contient deux parties. La première
partie représente le corps du bloc. Il contient les transactions, appelées également faits (facts),
que la base de données doit enregistrer. Ces facts peuvent être des transactions monétaires, des
données médicales, des informations industrielles, des logs systèmes, etc. La deuxième partie
est l’entête(header) du bloc. Ce dernier contient des informations concernant le bloc telque
l’horodatage(timestamp), le hach des transactions, etc. Ainsi que le hachage du bloc précédent.
De ce fait, l’ensemble des blocs existants forme une chaîne de blocs liés et ordonnés. Plus la
chaîne est longue, plus il est difficile de la falsifier.
En effet, si un utilisateur malicieux veut modifier ou échanger une transaction sur un bloc, (1)
il doit modifier tous les blocs suivants, puisqu’ils sont liés par leurs hachs. (2) Ensuite, il doit
changer la version de la chaîne de blocs que chaque objet participant stocke.
Une blockchain suit un réseau P2P. il s'agit essentiellement d'un cadre de réseau multi-réseaux
intégré entre pairs, composé de cryptographie, d'algorithmes et d'expressions mathématiques
visant à résoudre les limitations classiques de la synchronisation de bases de données
distribuées à l'aide d'algorithmes de consensus distribués.
55 | P a g e
La figure 26 montre les différentes topologies de réseau ; centralisé, décentralisé et distribué
(type réseau de la technologie de Blockchain).
La figure 27 montre les différentes technologies combinées dans la Blockchain.
56 | P a g e
facilement. Cela ne signifie toutefois pas que tout le monde peut voir le contenu réel des
transactions, qui sont protégés par une clé privée.
Comme dans le réseau Bitcoin, toutes les transactions sont publiques et vérifiables par tous en
effectuant un mécanisme consensus, ce qui va permettre à chacun de s’assurer que chaque
participant possède bien les Bitcoins qu’il dépense et qu’il ne les dépense qu’une seule fois. La
nature transparente des blockchains pourrait certainement empêcher la modification ou le vol
de ces données.
- le consensus : la blockchain correspond à un historique de transactions sur lequel tout le monde
s’accorde, ce consensus sur le séquencement des transactions permet de résoudre le problème
dit de la “double dépense” : un Bitcoin dépensé dans une transaction ne peut pas être dépensé
une deuxième fois dans une transaction qui serait diffusée ultérieurement sur le réseau. La
deuxième transaction serait rejetée par le réseau.
- Elle est sécurisé : La base de données peut uniquement être étendue et les enregistrements
précédents ne peuvent pas être modifiés (au moins, le coût est très élevé si quelqu'un souhaite
modifier les enregistrements précédents).
Ces enregistrements sont dits Immuables, une fois stockés, deviennent réservés pour toujours
et ne peuvent pas être modifiés facilement sans le contrôle simultané de plus de 51% des nœuds
du réseau.
Le système cryptographique de validation garantit qu’il est quasiment impossible de réécrire
une transaction une fois son bloc validé (personne n’a réussi à le faire depuis la création du
Bitcoin).
- Autonome : Le système blockchain est indépendant et autonome, ce qui signifie que chaque
nœud du système blockchain peut accéder aux données, les transférer, les stocker et les mettre
à jour en toute sécurité, ce qui les rend fiables et exemptes de toute intervention externe.
- Open source : La technologie de la blockchain est formulée de manière à fournir un accès
open source à toutes les personnes connectées au réseau. Cette polyvalence inimitable permet
à quiconque non seulement de vérifier publiquement les enregistrements, mais également de
développer diverses applications imminentes.
- Anonyme : Lorsque le transfert de données à lieu entre nœuds, l'identité de l'individu reste
anonyme, ce qui en fait un système plus sécurisé et fiable.
Une personne faisant partie de ce réseau doit vérifier chaque nouvelle transaction effectuée.
Une transaction de recherche dans un bloc d'une blockchain est vérifiée par tous les nœuds du
réseau, elle devient de plus en plus immuable. La figure 28 ci-dessous illustre le flux de travail
du processus de la chaîne de blocs.
57 | P a g e
Figure 28 : Un flux de travail généralisé du processus de blockchain
Source: Applications of Blockchain Technology in Medicine and Healthcare: Challenges and Future Perspectives
Il existe deux types d’objets participants dans la blockchain : (1) des objets qui peuvent
uniquement lire les facts (mode passif), et (2) des objets qui peuvent lire et écrire des facts
(mode actif) appelés mineurs. Afin de rajouter un nouveau bloc à la blockchain, il faut suivre
les étapes suivantes :
- une transaction est regroupée avec d’autres transactions dans un bloc;
- les mineurs vérifient quel est transactions du bloc respectent les règles définies.
- les mineurs exécutent un mécanisme de consensus pour valider le bloc ajouté.
- une récompense est donnée aux mineur/mineurs qui valident le bloc.
- les transactions vérifiées sont stockées dans la blockchain.
Afin de prouver la validation honnête d’un bloc, il existe de nombreux mécanismes de
validation. Les plus utilisés sont le mécanisme de Proof of Work (PoW) et le mécanisme de
Proof of Stake (PoS).
Dans ce mécanisme, un mineur doit effectuer une quantité de travail, qui est souvent un puzzle
ou un défi mathématique, difficile à calculer mais facile à vérifier. La difficulté du défi est
adaptée, par la blockchain, en fonction du temps nécessaire à la validation d’un bloc.
58 | P a g e
Une PoW est exigée pour la validation de chaque bloc. D’une part, elle a l’avantage de protéger
l’intégrité des transactions et des blocs, car afin qu’un attaquant puisse modifier un bloc, il doit
modifier tous les blocs qui le succèdent et fournir une nouvelle PoW pour chacun de ces blocs,
ainsi que la mise à jour de tous les objets par la nouvelle version de la chaîne (falsifiée). Ce qui
nécessite une énorme puissance de calcul et d’énergie. D’autre part, la PoW souffre de certaines
lacunes qui peuvent avoir des mauvaises conséquences. Sans parler du fait que la PoW
consomme une grande quantité d’énergie lors de la résolution du défie mathématique, ce
mécanisme peut mener à une potentielle tragédie des ressources d’usage commun (tragedy of
commons) [122]. En effet, au fil du temps, les récompenses diminueront, ce qui entraînera une
diminution du nombre de mineurs, car les seuls frais qui seront gagnés viendront des
transactions. Ces frais de transactions vont également diminuer due à la concurrence d’autres
systèmes similaires. La diminution du nombre de mineurs rend l’écosystème blockchain
vulnérable à l’attaque du 51% . Cette dernière se produit lorsqu’un mineur malicieux (ou un
pool de mineurs malicieux) contrôlent 51%, ou plus, de la puissance de calcul du réseau. Ainsi,
il peut créer des blocs de transactions frauduleux pour lui-même, ou pour une autre entité, tout
en invalidant les transactions des autres utilisateurs dans le réseau. Enfin, dans certains
mécanismes de consensus, tel que celui de la chaîne la plus longue (longest chain) appliqué
dans Bitcoin(voirsection4.2pageci-contre), de nombreux mineurs qui valident des blocs et
réalisent la PoW ne sont pas récompensés, car ils n’ont pas assez de puissance pour construire
la chaîne la plus longue, ce qui leur cause beaucoup de pertes. La PoW représente la méthode
de validation de bloc la plus adoptée par les systèmes blockchain.
Le concept du l’algorithme le plus utilisé dans la Blockchain existait bien avant sa naissance.
Il a été publié à l'origine par Cynthia Dwork et Moni Naor en 1993, mais le terme «preuve de
travail» a été inventé par Markus Jakobsson et Ari Juels dans un document publié en 1999
(Blockgeeks, 2017). Dans le cas de Bitcoin, la preuve de travail suppose que tous les membres
du réseau votent en utilisant leur puissance de calcul en résolvant le PoW et la construction et
la validation du bloc. La preuve de travail peut être considérée comme le principal composant
afin de définir un calcul informatique coûteux, également appelé extraction qui doit être
effectuée afin de générer un nouveau bloc.
Les mineurs servent à deux fins : vérifier la légitimité d’une transaction et éviter les doubles
dépenses.
Afin de résoudre les lacunes de la PoW (Preuve de Travail), la PoS (Preuve d’Enjeu) a été
proposée. Dans ce mécanisme il n’y a pas de minage où on consomme beaucoup de ressources.
Les mineurs sont appelés forgeurs. Un forgeur peut valider des blocs en fonction de la quantité
d’argent qu’il possède. Ce qui signifie que plus il possède de monnaies, plus il augmente sa
chance de validation. Si on compare la PoS à un jeu de pari, où chaque forgeur parie sur un
bloc. On peut dire qu’une fois que les blocs honnêtes (ne contiennent aucune transaction
frauduleuse) sont ajoutés à la chaîne, chaque forgeur touche une récompense relative à son pari.
Et contrairement à la PoW où les mineurs malicieux sont pardonnés,dans la PoS un forgeur
dont le bloc s’avère malhonnête est pénalisé et le montant du pari qu’il a mis est débité de son
solde. Le point faible de la PoS est que les forgeurs qui possèdent beaucoup de monnaies sont
ceux qui bénéficient le plus. Il existe plusieurs systèmes blockchain qui utilisent la PoS, et
d’autres qui replacent la PoW par la PoS.
59 | P a g e
Il existe d’autres mécanismes de validation de blocs tel que la Delegated Proof-of-Stake
(DPoS), la Proof of Stake/Time (PoST), la Proof of Existence (PoE), etc.
La principale différence entre les PoS et les DPoS réside dans le fait que les PoS sont un
processus démocratique direct, tandis que le DPoS est démocratiquement représentatif - les
parties prenantes élisent des délégués pour générer et valider un bloc. Avec beaucoup moins de
nœuds pour valider le bloc, le bloc peut être confirmé rapidement, ce qui signifie que la
transaction peut être confirmée rapidement (Zheng, 2016) et (Kikitamara, 2017)
Cet algorithme de consensus a été développé pour tolérer les fautes byzantines, par exemple le
comportement arbitraire du nœud, qui rejoint et quitte le réseau à tout moment qui se produit
généralement dans un système distribué. Cet algorithme présente une technique de réplication
de machine à états permettant de gérer les erreurs byzantines. Théoriquement, il utilise un
algorithme de réplication de la machine d'état avec un seul aller-retour de message pour
exécuter des opérations en lecture seule et deux pour exécuter des opérations de lecture-écriture.
En outre, il utilise un schéma d’authentification efficace basé sur les codes d’authentification
du message en cours de fonctionnement normal ; la cryptographie à clé publique est utilisée
uniquement lorsqu'il y a des erreurs (Castro et Liskov, 1999).
L'architecture réseau d'un réseau distribué Blockchain est Peer to Peer, Le réseau d'égal à égal,
également appelé P2P, fait référence à un groupe d'ordinateurs agissant en tant que nœuds pour
partager des fichiers entre eux-mêmes.
La Blockchain fonctionne donc sur un réseau distribué de serveurs, également appelé nœuds.
Ces nœuds du réseau ont pour objectif de fournir un consensus sur l’état de la blockchain à tout
moment, et contiennent une copie de la blockchain.
L'application fondamentale de la Blockchain est un grand livre de transactions, un peu comme
un grand livre public sécurisé, qui stocke toutes les transactions qui ont lieu dans le réseau. Cela
en fait un système décentralisé très sécurisé et transparent.
60 | P a g e
Figure 30 : Architecture de la Blockchain
Source : blockchainhub.net
61 | P a g e
3.5 Fonctionnement de la Blockchain
Source : euderka.co/blockchain
Pour comprendre vraiment comment fonctionne une blockchain, le plus simple est de suivre
l’itinéraire d’une transaction (même si l’immense majorité de ceux qui utiliseront un service
sur la blockchain passeront par des intermédiaires qui leur simplifieront la tâche et se chargeront
de l’enregistrement de l’opération sur le réseau).
62 | P a g e
Prenons le cas d’une opération réalisée sur la plus ancienne et la plus commune des blockchains,
Bitcoin, qui a servi de modèle à l’ensemble de celles qui ont suivi.
1) Oussama souhaite envoyer 1 Bitcoin à Ilham sur le réseau Bitcoin, chacun possède une
adresse publique, appelée « clé publique » (l’équivalent d’un RIB) : une suite d’environ 34
caractères contenant des chiffres et des lettres en minuscules ou majuscules (par exemple :
13o7TCoNWbaqYp9g89w1gHrZ7GvvKftRsd, pour l’un et
16Xgsii16x4icN7yjQgXX648Lf4LxRsd19 pour l’autre).
2) Oussama signe la transaction avec sa clé privée : une autre suite de chiffres et de lettres, cette
fois-ci confidentielle (c’est l’équivalent numérique de la clé de votre coffre-fort, que vous
n’avez donc intérêt ni à donner ni à perdre), qui autorise le versement de l’argent (points 1 et 2
correspondants à l’étape 1 du schéma de la figure)
63 | P a g e
3) La transaction est alors écrite dans la blockchain. Elle est entrée, à la suite d’autres
transactions, dans ce qui est appelé un bloc (une grappe de plusieurs centaines, voire milliers,
de transactions).
Pour chaque transaction, différentes informations apparaissent et seront donc consultables par
tous les membres du réseau :
– les clés publiques de Oussama et de Ilham : les transactions ne sont donc pas anonymes, mais
réalisées sous les pseudonymes que constituent ces clés publiques ;
– le nombre de Bitcoins transférés de Oussama à Ilham : 1 ;
– l’heure précise, à la seconde près, et la date à laquelle l’opération a eu lieu (2019-07-12,
09 : 41 : 21 ).
4) Chaque bloc, en plus de toutes ces transactions, contient un résumé cryptographique du bloc
précédent : un nombre, qui correspond à l’unique résultat possible que l’on obtient quand on
entre les informations du bloc précédent dans une fonction appelée SHA256 (appelé le hash,
soit le résultat d’un algorithme de hachage). Cela permet de noter dans chaque bloc l’ADN
cryptographique du bloc précédent. Ainsi, si un pirate veut modifier a posteriori les
informations d’un bloc, il devra corriger tous les blocs qui suivent, et ce sur chaque exemplaire
de la blockchain hébergé par chaque ordinateur du réseau (ce qui est quasiment impossible).
Par ce système, les blocs sont donc enchaînés les uns aux autres (d’où le nom « blockchain » –
points 3 et 4 correspondants à l’étape 2 du schéma de la figure)
5) Les membres du réseau qui le souhaitent vont alors entrer en compétition pour valider le
bloc. On les appelle les « mineurs ». Ils y sont incités par une récompense : celui qui aura le
privilège d’effectuer cette validation gagnera automatiquement 12,5 nouveaux Bitcoins, qui
seront générés pour l’occasion par le système. Pour gagner ce droit, tous les participants vont
vérifier la véracité des informations contenues dans toutes les transactions du bloc : est-ce que
Oussama possède bien 1 Bitcoin au vu de toutes les transactions qu’il a déjà réalisées ?
N’utilise-t-il bien ce Bitcoin qu’une seule fois ? Est-ce que les autres transactions sont
également justes ? Mais ils vont aussi devoir résoudre un problème mathématique complexe,
en utilisant les capacités de calcul de leur ordinateur (c’est le système de « preuve de travail »,
ou proof of work). Chaque ordinateur va tester des solutions jusqu’à trouver la bonne. Le
premier à réussir pourra valider le bloc et gagner la récompense. Le système a été conçu pour
qu’une solution soit trouvée au bout de 10 minutes en moyenne (ce qui impose un léger délai à
la sécurisation de la transaction – point correspondant à l’étape 3 du schéma de la figure).
6) Le bloc est alors validé. Il est ajouté à la blockchain qui est mise à jour sur les ordinateurs de
chaque participant (point correspondant à l’étape 4 du schéma de la figure).
7) Les participants n’acceptent ce nouveau bloc que si les transactions qu’il contient sont valides
(si l’argent de chaque transactionneur n’y est bien dépensé qu’une seule fois). Si le bloc est
valide, ils expriment leur accord en travaillant sur le bloc suivant selon le même processus, et
y inscrivant le hash du bloc validé. C’est pourquoi on parle de système de consensus.
8) Ilham a désormais reçu le Bitcoin envoyé par Oussama. En récompense du travail fourni, le
mineur reçoit une certaine quantité de cryptomonnaie créée pour l’occasion (12,5 Bitcoins à ce
jour, mais ce rendement décroît au fil du temps – points 7 et 8 correspondants aux étapes 5 et 6
du schéma de la figure).
64 | P a g e
3.6 Evolution de la Blockchain
65 | P a g e
Figure 33 : Historique de la technologie Blockchain
Source : blockchain101.com
Bitcoin est une monnaie numérique. Il a été créé en 2009 par une entité anonyme utilisant le
nom Satoshi Nakamoto [47]. Les paiements utilisant les bitcoins sont enregistrés dans un grand
livre public stocké sur des ordinateurs connectés au réseau bitcoin. Le grand livre peut être
consulté à tout moment sur Internet. Bitcoin est la première et la plus grande crypto-monnaie
décentralisée, tandis que les autres monnaies numériques incluent : Altcoin, Litecoin et
Dogecoin [84]. Les utilisateurs peuvent envoyer et recevoir des Bitcoins par voie électronique
moyennant des frais de transaction optionnels (ou très minimes) à l'aide d'un portefeuille (un
logiciel sur un ordinateur personnel, une application mobile ou une application Web). En
réponse à ces transactions, de nouveaux bitcoins sont créés en guise de récompense pour le
traitement informatique (appelé extraction), qui est utilisé pour vérifier et enregistrer les
transactions en bitcoins dans le grand livre [82].
Bitcoin
Il a été introduit pour la première fois sur une liste de diffusion cryptographique le 31 octobre
2008 et a été publié en tant que logiciel à code source ouvert en 2009. L’idée de construire cette
monnaie numérique ou virtuelle est de construire un système décentralisé qui permettrait à la
monnaie de pouvoir être transférée électroniquement avec des frais de transaction négligeables
ou nuls. Il s'agit du premier réseau peer-peer qui permet à ses utilisateurs de ne disposer
d'aucune autorité centrale ni de banques. Ces bitcoins sont construits à partir d'un protocole
bitcoin. Selon ce protocole, il y aurait un nombre défini de bitcoins pouvant être produits
(extraits), soit 21 millions. Cependant, chaque bitcoin peut être divisé en parties plus petites
pouvant aller jusqu’à un centième de bitcoin. Cette plus petite division du bitcoin est appelée
"Satoshi".
Bitcoin a des utilisateurs qui sont répandus à travers le monde et il n'est pas contrôlé par une
seule personne. Du point de vue de l'utilisateur, bitcoin est une application qui fournit un
66 | P a g e
portefeuille et permet aux utilisateurs d'effectuer des transactions entre eux. Pour effectuer des
transactions, les utilisateurs sont libres d'utiliser le logiciel de leur choix, à condition que le
logiciel soit compatible et respecte les règles du protocole Bitcoin. Ce système de paiement
électronique repose sur une preuve cryptographique plutôt que sur la confiance, raison pour
laquelle le besoin d'un tiers est éliminé. Les transactions effectuées sont pratiquement
impossibles à inverser ou à détruire. Le réseau bitcoin partage un grand livre public appelé
blockchain.
Dans la blockchain, les contrats intelligents vont au-delà de simples transactions de bitcoins et
comportent des instructions plus détaillées (traitement) intégrées [85]. Formellement, un contrat
intelligent est une méthode d'utilisation de la blockchain (ou transactions bitcoin) pour former
des accords entre agents. En général, un contrat (discuté dans la section 2.2.2), c'est une
promesse faite à deux agents ou plus de travailler (ou de ne pas faire) de travail en échange de
quelque chose d'autre [86]. Chaque agent doit faire confiance à l'autre agent pour remplir sa
part de l'engagement. Le contrat intelligent comporte le même type de règlement pour agir ou
ne pas agir, mais il élimine la nécessité pour un agent de faire confiance aux autres agents [85].
En effet, un contrat intelligent est un code logiciel exécuté sur une blockchain sans aucune
discrétion. En fait, deux éléments des contrats intelligents qui les distinguent sont l'auto-
applicabilité et la décentralisation [85]. L'auto-applicabilité signifie qu'après son lancement, les
agents engagés dans le contrat intelligent n'ont plus besoin d'être en contact. Décentralisé
signifie que les contrats intelligents ne subsistent pas sur un seul serveur centralisé ; ils sont
distribués et s’exécutent automatiquement sur le réseau de chaînes de blocs [17]. L’illustration
classique des contrats intelligents dans la vie quotidienne est un distributeur automatique.
Contrairement à une personne, le distributeur automatique se comporte de manière
algorithmique ; le même jeu d'instructions sera exécuté à chaque fois dans tous les cas [85].
Un exemple de contrat intelligent de base, avec des instructions plus détaillées par rapport aux
bitcoins, est un cadeau d'héritage disponible dès le dix-huitième anniversaire [17]. Vous
pouvez créer une transaction qui repose sur la chaîne de blocs et reste non initiée jusqu'à ce que
les deux conditions suivantes soient déclenchées.
1. Le programme définit la date (18ème anniversaire) à laquelle lancer la transaction, ce qui
inclut la vérification si la transaction a déjà été exécutée.
2. Le programme analyse une base de données de registre de décès en ligne pour certifier que
l'entité héréditaire (parent ou grand-parent) est décédée. Lorsque le contrat intelligent confirme
le décès, il peut automatiquement transférer l'héritage (par exemple, des fonds).
Ethereum
Ethereum est un projet open source construit par les développeurs du monde entier, semblable
au protocole Bitcoin, mais beaucoup plus adaptable et flexible, car il permet aux utilisateurs de
créer et d'utiliser les applications décentralisées exécutées sur la technologie de blockchain
sous-jacente. Généralement, il existe deux approches pour créer une application blockchain:
démarrer un réseau indépendant ou établir un protocole sur Bitcoin. Ethereum a introduit une
blockchain avec un langage de programmation intégré complet de Turing qui permet à
quiconque d'écrire des contrats intelligents et des applications décentralisées avec des règles et
des paramètres personnalisés.
67 | P a g e
Contrairement aux états dans Bitcoin, Ethereum a des comptes. Les deux types de comptes sont
les suivants: (1) comptes contrôlés de manière externe (ou) comptes d’utilisateur, et (2) contrats,
c.-à-d. Extraits de code. Les transactions peuvent être initiées à partir des deux types de
comptes, mais les contrats ne peuvent démarrer une transaction qu'à la suite d'autres
transactions qu'ils ont reçues. Les contrats sont écrits dans un langage de programmation de
haut niveau (Solidity, par exemple), qui est ensuite converti en bytecode Ethereum Virtual
Machine (EVM). La devise intégrée pour le réseau Ethereum, Ether, peut être utilisée pour
échanger des actifs numériques et fournit également un mécanisme pour payer les frais de
transaction. La plus petite dénomination d'Ether est Wei (1018 Wei = Ether). Dans Ethereum,
il n'y a pas de limite de taille de bloc comme dans Bitcoin, mais il existe un concept appelé
«Gas». Dans Ethereum, tous les calculs programmables, y compris la création de contacts,
l'exécution d'opérations et la réalisation d'appels de messages, ont un coût convenu
universellement, mesuré en termes de gaz. Au lieu d'une limite de taille de bloc, il existe une
limite de gaz (définie par l'expéditeur de la transaction) pour chaque transaction, ce qui signifie
que la validation de cette transaction ne doit pas utiliser plus de gaz que la limite mentionnée.
Le gaz restant non utilisé à la fin de la transaction est remboursé sur le compte de l'expéditeur.
De plus, le temps d’exploitation de blocs dans Ethereum est considérablement réduit à 15
secondes en moyenne par rapport aux 10 minutes de Bitcoin. Cela se fait par la mise en œuvre
du protocole GHOST, qui est une politique de sélection de la chaîne principale dans
l’arborescence de blocs. Toutefois, ce temps peut être réduit davantage en fonction de la taille
des transactions et de la difficulté de calcul liée à la validation d'un bloc.
Crypto-monnaie
Bitcoin (Satoshi) Éther
utilisée
GHOST Protocol : Les blocs bien formés qui sont vérifiés par certains noeuds mais ont le
même bloc - hauteur (nombre de blocs éloignés du bloc de genèse), car ils sont vérifiés par les
noeuds à peu près au même moment, provoquent un fork dans la chaîne de blocs et un seul les
blocs sont ajoutés à la blockchain, rejetant l'autre bloc qui devient finalement un bloc rassis.
Dans Ethereum, ces blocs rassis sont appelés "oncles". Le protocole GHOST "Greedy Heavyest
Observed Subervede" a été proposé pour lutter contre le problème de la sécurité réduite et du
68 | P a g e
nombre élevé de blocs obsolètes bloqués dans des blockchains avec un temps de traitement
rapide. Dans une situation où nous souhaitons un bloc de temps court et une incitation
minimisée pour l’exploitation en pool, GHOST peut être utile car il implique également les
blocs d’oncle dans le calcul de la chaîne la plus longue avec la difficulté cumulative la plus
élevée. Afin de résoudre le problème du biais de centralisation, les récompenses en bloc sont
étendues aux blocs oncle et aux neveux (enfant d'oncle block), les oncles et les neveux recevant
respectivement 87,5% et 12,5% de la récompense de base.
Le protocole GHOST mis en œuvre par Ethereum comporte sept niveaux. Chaque bloc indique
son parent et le nombre d'oncles. Les oncles d'un bloc présentent les caractéristiques suivantes.
Le bloc oncle doit être un enfant direct de l'ancêtre du bloc B. La génération de l'ancêtre peut
être comprise entre 2 et 7 ans, mais l'oncle ne peut pas être un ancêtre de B. Le bloc oncle ne
doit pas nécessairement être vérifié auparavant, mais il doit être un en-tête de bloc valide.
Chaque bloc oncle doit être différent des oncles du même bloc et de ceux des précédents. Le
mineur du bloc de l’oncle reçoit 93,75% de la récompense du bloc et 3,125% supplémentaires
pour chaque oncle qu’il extrait.
Keccak-256 :
Keccak est une famille de fonctions éponge qui constitue la base de la norme SHA-3 approuvée
par l'Institut national de la normalisation et de la technologie [28]. Habituellement, dans les
fonctions de hachage primitives, la longueur de la chaîne de hachage en sortie est fixe, quelle
que soit la taille de l'entrée. Toutefois, dans le cas d’une construction en éponge, la fonction de
hachage mappe l’entrée de longueur variable en sortie de longueur variable. Les fonctions de
hachage cryptographiques sont dites sécurisées si leur comportement est proche d'un oracle
aléatoire, c'est-à-dire qu'une chaîne de sortie réellement aléatoire est renvoyée pour chaque
requête unique. Puisque toutes les fonctions de hachage utilisées fonctionnent sur une mémoire
finie, il y a un risque de collision, c'est-à-dire que différentes entrées peuvent donner la même
sortie [29]. Donc, dans la pratique, il est impossible de mettre en œuvre un oracle vraiment
aléatoire [30]. Mais les créateurs de Keccak affirment qu’une éponge aléatoire, qui peut être
obtenue en appliquant la construction en éponge avec une permutation aléatoire, offre une
sécurité proche de celle d’un oracle aléatoire. Ainsi, les éponges aléatoires peuvent remplacer
les oracles aléatoires en termes de sécurité.
Tout en maintenant une meilleure sécurité, Keccak offre de meilleures performances
matérielles et logicielles. Keccak est excellent en performances matérielles et surpasse SHA2
par un ordre de grandeur. Le tableau suivant propose une comparaison de différents algorithmes
en termes de cycles / octets et de force :
69 | P a g e
Tableau 3 : Comparaison logicielle des algorithmes de hachage
Source : Bertoni, Guido, et al. "Keccak and the SHA-3 Standardization." NIST, Feb (2013) : 30.
Kademlia :
Dans Ethereum, les nœuds communiquent entre eux via le protocole RLP (Recursive Length
Prefix), protocole de transport chiffré et authentifié utilisé comme méthode de codage pour la
sérialisation des objets [34]. Ethereum utilise une table de hachage distribuée (DHT, peer-to-
peer) similaire à Kademlia pour découvrir et établir des connexions avec des pairs. Ce tableau
dans chaque pair contient au maximum 255 lignes et chaque ligne contient des informations de
5 à 20 pairs. Les informations sur un homologue peuvent inclure l’adresse homologue, l’adresse
réseau, l’horodatage, la signature de l’homologue et d’autres métadonnées. L’identité de chaque
nœud (ID de nœud) est le hachage cryptographique de 256 bits des clés publiques du nœud,
tandis que dans le protocole Kademlia d’origine, les identifiants de nœud sont des nombres
aléatoires de 160 bits. [35]
Ethash:
Ethash est le système de preuve de travail d’Ethereum, qui combine des versions modifiées des
algorithmes Dagger et Hashimoto. Ce nouveau système a été mis au point pour résoudre les
problèmes courants dans d’autres crypto-monnaies, le principal étant la résistance aux ASIC.
Dans la plupart des crypto-monnaies, l'exploitation minière est de plus en plus centralisée en
raison du développement des machines ASIC et de certaines sociétés construisant d'énormes
exploitations minières. Etherha d’Ethash avait pour objectif principal de rendre l’exploitation
de l’unité centrale possible et celle de l’ASIC non rentable, en maintenant ainsi le réseau
décentralisé. Même si les ASIC étaient développés, l’idée était de minimiser la vitesse à laquelle
l’exploitation peut être effectuée avec des ASIC, de sorte que les utilisateurs ordinaires aient
un intérêt marginal à exploiter avec des processeurs. [39]
Hyperledger Fabric
Hyperledger Fabric est une blockchain open-source privée,créée par la Linux Foundation, plus
précisément par IBM. Contrairement à Bitcoin et Ethereum, Hyperledger Fabric ne fournit pas
une monnaie virtuelle. Selon la nature des informations stockées, les transactions peuvent être
publiques ou confidentielles. Hyperledger utilise le Practical Byzantine Fault Tolerant (PBFT)
comme mécanisme de consensus. Comme expliqué dans [123], PBFT est un mécanisme utilisé
dans les réseaux distribués, et qui tolère un certain taux de fautes afin de permettre la continuité
des opérations du système. Tous les objets participants se connaissent et sont de confiances, et
70 | P a g e
les objets validateurs sont choisis aléatoirement. Hyperledger Fabric permet également le
développement des smart contracts appelé chain codes.
Contrats Intelligents
Le tableau 5 montre les avantages des contrats intelligents par rapport aux contrats traditionnels.
Les contrats intelligents peuvent être exécutés très rapidement et il n’existe aucune exigence de
présence physique.
Lorsque nous traitons avec des appareils IoT, nous souhaitons essentiellement effectuer
certaines actions en fonction des données reçues. Par exemple, imaginez un capteur de lux qui
envoie des données à un système toutes les minutes. Sur la base de ces données, ce système
devra allumer / éteindre les lumières entourant ce capteur. Si tous les périphériques sont
connectés, cela pourrait être possible dans des conditions normales. Toutefois, pour que cela
fonctionne avec une application basée sur la technologie de la blockchain, des contrats
intelligents sont nécessaires car ils fournissent la logique des opérations tout ou rien.
Malheureusement, la mise en œuvre de contrats intelligents par Ethereum est totalement
déterministe et isolée, c’est-à-dire qu’un contrat intelligent n’a pas accès aux données
extérieures à la blockchain. Cela ne peut fonctionner qu'avec des données sur la chaîne. Après
avoir codé un contrat intelligent dans un langage de haut niveau tel que Solidity ou Snake, le
code sera compilé dans du bytecode EVM (Ethereum Virtual Machine) et sera stocké à une
adresse de la blockchain. Il est appelé lorsqu'une transaction est envoyée à cette adresse.
71 | P a g e
Figure 34 : Exemple Smart Contract
Source : blockchainhub.net
72 | P a g e
3.6.3 Blockchain 3.0 (Innovations basées sur les Smart Contracts)
73 | P a g e
Une fois que l'un des nœuds est connecté au réseau local sans fil, le système recherche d'autres
pairs auxquels se connecter, sur un port particulier via TCP. Ce processus de découverte de
nœud est également appelé protocole de découverte.
P2P (Peer to Peer) est un réseau dans lequel les ordinateurs servent de nœuds pour le partage
de fichiers au sein du groupe. Les périphériques ou ordinateurs participant à ce réseau sont
appelés Pairs. Chaque pair est égal à une autre. Il n'existe donc aucun périphérique
administrateur central au centre du réseau ni une partie privilégiée.
DLT (Distributed Ledger Technology) est un type de base de données consensuel partagé,
répliqué et synchronisé sur les membres d'un réseau. La principale caractéristique de cette base
de données est que les transactions et leurs détails sont enregistrés simultanément à plusieurs
endroits. DLT n'a pas de magasin de données central.
Les transactions sont stockées dans les fichiers appelés blocs. Ils sont cryptés et sont
généralement liés à des transactions précédentes, formant ainsi une chaîne. Un propriétaire
d’une valeur (devise numérique dans BC Bitcoin) signe numériquement la transaction
précédente avec sa clé publique et crée un hachage. Le propriétaire de la transaction précédente
signe alors le hachage avec sa clé privée.
La figure 35 illustre une version simplifiée de la chaîne de propriété. Dans des cas plus
complexes, le nombre d'entrées et des sorties peuvent être multiples. Une transaction contient
un certain nombre de champs, comme indiqué dans le tableau 6.
74 | P a g e
Dans BC Bitcoin la transaction est un transfert de valeur Bitcoin qui diffuse sur le réseau et est
collecté en blocs. Les transactions ne sont pas cryptées. Il est donc possible d'afficher chaque
transaction collectée dans un bloc. Elles sont regroupées en blocs et exécutées sur tous les
nœuds participants.
Un bloc contient une liste de transactions, l'état le plus récent, un numéro de bloc et une valeur
de difficulté. S'il existe des transactions en conflit sur le réseau (par exemple, des transactions
qui doublent les dépenses), une seule d'entre elles est sélectionnée pour faire partie du bloc. Les
blocs sont ajoutés à la Blockchain à intervalles régulières.
La figure 36 illustre les liens entre les blocs de la chaîne de blocs. Les blocs marqués en noir
indiquent la blockchain active en cours. Ceux qui sont marqués en gris sont appelés des blocs
rassis.
La Blockchain est techniquement une liste de blocs ordonnée et horodatée, qui fournit un
enregistrement de toutes les transactions qui ont eu lieu. Chacun de ces blocs est lié au
précédent, à savoir son parent, par un hachage unique. Ces hachages sont générés via
l'algorithme de hachage SHA256. En d’autres termes, l’en-tête de chaque bloc contient une
référence au hachage de son parent. Cette liaison se poursuit jusqu'au premier bloc de la
blockchain, également appelé bloc de genèse. Le bloc de genèse est le bloc bleu le plus à gauche
indiqué à la figure 8. Un bloc peut avoir plusieurs enfants simultanément. Chaque enfant fait
référence au hachage du même bloc parent. En fin de compte, l’un de ces blocs enfants devient
la partie de la blockchain principale. Ce phénomène est connu sous le nom de forking. Cela se
produit lorsque plusieurs mineurs extraient et vérifient différents blocs au même moment. La
blockchain est également appelée immuable car c’est une dépense astronomique de recalculer
les hachages de tous les blocs à partir du bloc de genèse.
75 | P a g e
Le tableau 7 décrit plus en détail la structure de l’entête du bloc, en expliquant les différents
types de métadonnées associées aux blocs
Le champ racine merkle fait référence à la racine d'un arbre à distorsion qui stocke les
informations de transaction dans chaque bloc.
Puisque l'entête de bloc fait partie du bloc, un bloc complet, y compris toutes les informations
de transaction, a une taille beaucoup plus grande qu'un en-tête de bloc. C’est la raison pour
laquelle les clients et les portefeuilles SPV téléchargent uniquement les fichiers d’en-tête de la
blockchain tout en récupérant les informations de leur bloc souhaité des nœuds complets
connectés au réseau. Le tableau 8 décrit les différents champs d’un bloc, ainsi que leur taille.
Le hachage précédent (hachage du bloc précédent) est présent pour assurer un lien entre les
blocs. Chaque bloc peut être identifié de manière unique par son hachage de bloc qui est généré
à partir des quatre paramètres de l'en-tête de bloc (voir diagramme). Maintenant, puisqu'il s'agit
d'un réseau d'égal à égal, chaque homologue peut ne pas recevoir les transactions dans le même
ordre. Donc, en fonction de leur arrangement de transactions, le hachage de bloc pourrait être
différent. Un seul de ces blocs peut être ajouté à la blockchain car un seul enregistrement d'une
transaction peut exister. En outre, chaque pair ne peut pas avoir sa propre version d'un bloc car
cela met tout le système en jeu. Il devrait donc y avoir un moyen pour tous les pairs de
s’accorder sur un bloc unique comme valide, de sorte que seul ce bloc soit ajouté à la
blockchain. Pour atteindre ce consensus, le bitcoin a pour règle que le hachage de bloc doit
avoir un certain non. des zéros non significatifs. Ainsi, tous les nœuds ont trois entrées: le
hachage précédent (Prev_Hash), l’horodatage et la racine de la transaction (Tx_Root). Ils savent
également que la sortie doit être dans un certain format. Maintenant, ils continuent à ajouter
une valeur de nonce aléatoire aux entrées jusqu'à ce qu'elles parviennent à un hachage cible. En
76 | P a g e
raison de la nature de la fonction de hachage, il est impossible de deviner cette valeur de nonce.
Le seul processus permettant de le savoir consiste à utiliser la méthode des essais et des erreurs.
La difficulté est exponentiellement proportionnelle au no. des zéros au début du bloc. Cette
valeur nonce est très difficile à trouver et nécessite souvent d’effectuer des milliards de
hachages. Ce processus n’est pas économe en énergie et nécessite du matériel spécial avec une
énorme capacité de calcul. Une fois que cette valeur de nonce est trouvée, le nœud diffuse
l’ensemble du bloc vers le réseau et il est très facile pour les autres nœuds de vérifier s’il s’agit
du nonce correct. Cette valeur de nonce prouve qu'un nœud a effectué un travail considérable
avant de générer un bloc, d'où le nom Preuve de travail.
Après vérification, ce bloc est ajouté à la blockchain et tous les nœuds commencent à travailler
sur le prochain ensemble de transactions.
77 | P a g e
calcul du hachage du bloc 12, le processus complet doit être répété pour rechercher une nouvelle
valeur de nonce pour le bloc 12. Il ne s’arrête pas là car le pirate doit également créer un bloc
13 avant tout autre nœud, car tous les nœuds suivent toujours la chaîne la plus longue puisqu'il
s'agit de la chaîne dans laquelle la majorité de la puissance du processeur est investie. En bref,
un seul nœud doit modifier 2 blocs et créer un nouveau bloc tandis que tous les autres nœuds
tentent de générer ce nouveau bloc uniquement. Ainsi, il est impossible pour un pirate
informatique de modifier les données présentes sur la blockchain. L'ensemble de ce mécanisme
de validation de travail et de génération de blocs maintient la chaîne de blocs sécurisée,
transparente et immuable.
Hachage est l'équivalent du concept d'empreinte digitale, c'est l'identifiant unique d'une
personne. Lorsque deux objets sont envoyés à la Blockchain, ils ont des hachages différents.
De plus, si vous avez l'objet, il est très facile de créer le hachage, mais il est presque impossible
d'effectuer l'opération inverse. Pour s'assurer que l'inverse n'existe pas, la sortie est plus courte
que les entrées et il y a plus de deux entrées qui donnent la même sortie. Ce mode de
fonctionnement rend impossible le calcul de l'inverse.
Hachage du bloc et sa hauteur Il y a deux façons d'identifier un bloc ;
Tout d'abord, par son hash. Ce hachage est calculé par les nœuds homologues du réseau chaque
fois qu'un bloc est généré. Le hachage pourrait être stocké dans une base de données incluse
dans les métadonnées du bloc pour une indexation et une récupération plus rapide des blocs du
disque.
La deuxième façon d'identifier un bloc serait par sa hauteur. Le bloc de genèse est à la hauteur
0. Cette méthode d'identification n'est pas absolue car deux blocs ou plus de la chaîne de blocs
peuvent avoir la même hauteur et il est également possible que deux blocs de même hauteur
aient le même parent.
Merkle Tree Un type spécial de structure de stockage de données basé sur des fonctions de
hachage est appelé arbre de Merkle :
- Il est structuré comme un arbre binaire ; les feuilles contiennent les valeurs à stocker et chaque
nœud interne est le hachage de ses deux enfants.
- Il fournit des recherches efficaces et une protection contre la falsification, car la vérification
d'une transaction est incluse dans l'arborescence. Peut être accompli en envoyant uniquement
la transaction, le hachage contenu dans chaque nœud entre le nœud feuille de transaction et la
racine, ainsi que les valeurs de hachage utilisées pour créer chaque hachage envoyé.
- La recherche d’une transaction dans une arborescence Merkle à trois niveaux inclut l’envoi
de deux transactions (celle souhaitée et l’autre enfant de son parent) et de trois hachages (le
parent de la transaction, la racine et l’autre enfant de la racine).
78 | P a g e
Figure 39 : Arbre de Merkel
Source : blockchainhub.net
Minage qui fait référence au processus de revue de calcul distribué effectué sur chaque "bloc"
de données dans une chaîne de blocs. Cela permet de parvenir à un consensus dans un
environnement où personne ne se connaît.
- L’extraction minière présente deux avantages majeurs :
Le réseau de chaînes de blocs, à savoir la validation et la vérification des transactions.
L’exploitation génère également de nouvelles pièces de monnaie numériques sur le réseau, car
ces pièces nouvellement frappées servent de récompense au mineur qui résout le prochain bloc
de la blockchain. La première étape de l'extraction consiste à calculer le niveau de difficulté de
la blockchain. Tous les nœuds complets connectés au réseau de chaînes de blocs recalculent ce
niveau de difficulté après certains intervalles. Le niveau peut augmenter ou diminuer en
fonction du temps nécessaire pour générer un certain intervalle de blocs. Dans le cas de
Bitcoins, qui était la première implémentation de blockchains, l'intervalle est de 2016 blocs.
Ainsi, les nœuds complets doivent réévaluer le niveau de difficulté après chaque bloc 2016, ce
qui donne un temps de consensus moyen de 10 minutes. À mesure que le nombre de mineurs
augmente, le taux de création de blocs augmente également. Ceci entraîne à son tour une
augmentation du niveau de difficulté, car il réduit le taux de création de blocs à 10 minutes,
dans le cas de Bitcoin. Le mineur télécharge ensuite toutes les transactions et les informations
de blocage qui se sont déroulées précédemment, et construit un chemin de merkle à partir de
celles-ci, générant finalement une racine de mot clé.
79 | P a g e
Mécanisme de consensus
Le consensus est un problème fondamental dans les systèmes distribués qui nécessite que deux
agents ou plus se mettent d’accord sur une valeur donnée nécessaire à des fins de calcul.
Certains de ces agents peuvent être peu fiables, et le processus de consensus doit donc être
dépendant. Ainsi, la nécessité de mécanismes de consensus est de faciliter la mise à jour
sécurisée d’un processus ou d’un état, conformément à certaines règles de transition d’état, dans
lesquelles un ensemble distribué a le droit d’effectuer les transitions d’état.
Un consensus est un processus qui permet à un ensemble de processus répartis de parvenir à un
accord sur une valeur ou une action en dépit d’un certain nombre de processus défaillants
(Correia, 2011). Blockchain nécessite vérification et acceptation par tous les membres du
réseau, généralement appelée consensus.
Pour parvenir à un consensus dans le mécanisme distribué, quatre algorithmes peuvent être
appliqués. Dans un réseau de blockchain, un consensus est utilisé pour éviter que des acteurs
mensongers ne provoquent informations potentiellement non valides dans la base de données
(Swanson, 2015).
Le mécanisme de consensus concret utilisé pour une blockchain donnée dépend d’un certain
nombre de y compris le degré de confiance entre les parties et l'alignement de leurs intrigues,
ainsi que en tant que facteurs concernant la forme et la synchronisation du réseau (Correia,
2011).
Attaque 51%
Outre le fait que l'algorithme de preuve de travail consomme beaucoup d'énergie, il présente un
autre inconvénient : l'attaque à 51%. Si une seule entité devait contribuer à plus de 51% des
activités du réseau Bitcoin, elle serait en mesure de contrôler totalement le réseau et de modifier
le grand livre en fonction de leurs besoins. Bien que cette attaque soit théoriquement possible,
elle coûterait aux mineurs une énorme somme d’argent ainsi que de la puissance de calcul
Ether est la devise utilisée dans le réseau Ethereum. Contrairement aux bitcoins, les éthers
n’ont pas été créés pour devenir une monnaie numérique mondiale décentralisée et leurs
aspirations vont au-delà de l'envoi ou du transfert d'argent.
Gas est le nom du carburant crypté utilisé pour effectuer les opérations sur un réseau
Blockchain Ethereum. Le prix du gas payé est proportionnel à la quantité de travail requise pour
exécuter la transaction.
Dapp (application décentralisée) est une application qui fournit une interface aux contrats
intelligents. Un exemple de Dapp pourrait être une application crypto-devise.
80 | P a g e
3.8 Types de la Blockchain
81 | P a g e
3.9 Couches de la Blockchain
La blockchain contient différentes couches :
Cette couche est la racine de toute la pile. C'est la combinaison de tous les réseaux tels que les
appareils IoT, les smartphones, les ordinateurs, etc. Ils reposent tous sur la suite de protocoles
Internet. Cette couche détermine la manière dont les informations doivent être transmises,
adressées, mises en paquets, etc. La version initiale d'Internet connue sous le nom de Web
Version 1 ou Web (WWW) a été introduite en 1989. Elle utilisait l'IoI (Internet of
Information). Il a défini un cadre spécifique et les URL vers d'autres ressources. Après plus de
dix ans, la technologie a fait l’objet d’une autre mise à niveau et est devenue la version 2 du
Web. Cette version a commencé à utiliser l’Internet d’Interactions, principalement utilisé sur
les sites de médias sociaux et de commerce électronique. Avec cette nouvelle version, la
connexion poire à poire s'est développée avec le temps et de nombreux groupes importants ont
joué le rôle de support pour cela. Ces organisations ont profité de l’utilisation de publicités ou
d’autres ressources d’abonnement.
Cette nouvelle popularité a donné naissance à la dernière version Web 3. La plupart des gens
considèrent cela comme Internet of Value ou Internet. La technologie Blockchain est l’un des
principaux initiateurs de cette nouvelle mise à niveau. Commencé avec le bitcoin et se dirigeant
lentement vers les marchés les plus importants. Cette même technologie peut remplacer les
applications de médias sociaux ou de covoiturage. Cela peut en effet faire du Web un endroit
décentralisé après tout.
82 | P a g e
3.9.2 Couche de protocole Blockchain
La couche fonctionne de la même façon que n'importe quel autre réseau de chaînes de blocs. Les
nœuds exécuteront des protocoles, ajouteront des données sur le grand livre et garantiront des
transactions transparentes.
Le protocole introduit un système de grand livre ouvert, approuvé et partagé. Le protocole offre
une quantité suffisante de commentaires à l'utilisateur.
83 | P a g e
3.10 Acteurs de Blockchain
Une solution de blockchain d'entreprise nécessite que de nombreux acteurs jouant différents
rôles soient pleinement fonctionnels :
84 | P a g e
Un architecte blockchain est le designer de la solution blockchain. Pour qu'une solution
blockchain soit fonctionnelle, elle doit d’abord exister. L’architecte blockchain est la personne
ou le groupe qui a conçu la blockchain.
L’opérateur de la chaîne de blocs stocke, tient à jour et met à jour le livre des chaînes de
bloc. Une fois que la solution blockchain est conçue et réalisée, un opérateur peut s’associer
pour créer le réseau homologue mentionné précédemment. Le rôle de l'opérateur est de
configurer et de maintenir des pairs au sein du réseau.
Le développeur Blockchain crée des contrats intelligents à exécuter sur la blockchain. La
fonctionnalité de la blockchain a été considérablement étendue par l'introduction de blockchains
prenant en charge les contrats intelligents. Les développeurs conçoivent et téléchargent des
contrats intelligents dans la blockchain pour étendre ses capacités. Outre la mise en œuvre des
contrats intelligents, des développeurs front-end peuvent également implémenter des
applications qui accèdent à la blockchain (c'est-à-dire que les applications initient les
transactions sur la blockchain).
Le régulateur Blockchain : de nombreuses entreprises sont soumises à des réglementations
concernant la manière dont leurs données doivent être stockées et traitées. Pour les solutions de
type blockchain, un régulateur peut avoir une plus grande visibilité dans le grand livre
historique en raison de son rôle au sein de l'organisation.
L’utilisateur final est le consommateur de services construits autour de la blockchain. En règle
générale, cela implique l’utilisation d’un logiciel qui utilise la blockchain comme solution de
stockage principale. Les utilisateurs interagissent rarement directement avec la blockchain.
Le stockage de données est représenté par les bases de données traditionnelles pour stocker les
données hors chaîne. La blockchain fournit un stockage distribué immuable avec un contrôle
d'intégrité intégré ; Cependant, sa capacité maximale est basée sur la taille et le taux de blocs
standard. Pour permettre la vérification de l'intégrité de grandes quantités de données, il est
courant de stocker les données hors chaîne et de stocker un hachage des données en chaîne. Cela
garantit que les données ne sont pas modifiées tout en protégeant la blockchain contre le
gonflement.
Le traitement des données est représenté par un système externe utilisé pour un traitement
supplémentaire. Les contrats intelligents s'exécutent sur la blockchain, ce qui signifie que
chaque membre du réseau homologue doit exécuter le code pour rester synchronisé avec l'état
actuel du réseau. Si les contrats intelligents nécessitent généralement une grande quantité de
puissance de traitement, des périphériques externes au réseau homologue peuvent être utilisés
pour augmenter la puissance de traitement du réseau.
85 | P a g e
3.11 Avantages de la technologie Blockchain
Les chaînes de blocs peuvent renforcer la sécurité principalement sur trois aspects : le blocage
du vol d'identité, la prévention de la manipulation des données et l'arrêt des attaques par déni
de service [63].
- Blocage de vol d'identité. La structure de la preuve de travail du mineur de réseau de
Blockchain et son grand livre distribué de transactions de données réduisent les risques de vol
et de corruption des données.
- Prévenir la manipulation et la fraude des données. Dans la technologie Blockchain, la
cryptographie, le hachage et une structure décentralisée empêchent quasiment tout membre de
modifier les données du grand livre. Cela empêche et détecte toute forme de manipulation et
permet aux organisations de maintenir la protection des informations. Une solution importante
qui a été développée pour éviter la fraude et la manipulation est KSI (Keyless Signature
Infrastructure), qui assure la protection des réseaux ainsi que la sécurité et la confidentialité des
données.
Avec KSI, personne ne peut manipuler les données et l'authenticité des données électroniques
peut être prouvée mathématiquement. KSI stocke les signatures numériques des fichiers
originaux dans une Blockchain, puis vérifie les copies en revérifiant les signatures des copies
par rapport à celles stockées dans la Blockchain. Si une quelconque manipulation est effectuée,
elle est détectée très rapidement car les hachages stockés dans la chaîne de caractères résident
dans des milliers de nœuds. KSI Technology est utilisée activement dans les secteurs de
l'aérospatiale et de la défense, ainsi que dans le secteur de la santé, afin de mieux contrôler le
dossier médical du patient.
- Prévention des attaques par déni de service distribué. Il existe un grand nombre
d'infrastructures critiques à protéger. Blockchain peut aider avec DNS (Domain Name System)
qui fournit un accès à des sites Web utilisant des noms de domaine plutôt que des adresses IP.
Le système DNS est dangereusement centralisé dans quelques serveurs racine sous le contrôle
de l’ICANN (Internet Corporation for Assigned Names and Numbers), qui est responsable des
adresses de protocole IP, des identificateurs de protocole, des fonctions de gestion de système
de domaine et de la gestion de système du serveur racine. Blockchain pourrait créer un DNS
distribué, beaucoup plus transparent, rendant pratiquement impossible la manipulation des
enregistrements par une seule entité.
Il existe certaines différences entre les réseaux Blockchain et le paradigme du Cloud
Computing. Dans le modèle en nuage, les périphériques IoT sont identifiés, authentifiés et
connectés via des serveurs en nuage, où le traitement et le stockage sont souvent effectués. Les
réseaux IoT ayant des coûts élevés sont concernés par le modèle de cloud centralisé. Les
appareils IoT sont vulnérables aux attaques DDoS, au vol de données, au piratage et au piratage
à distance. Si un périphérique IoT connecté à un serveur fait l'objet d'une violation, toutes les
personnes connectées au serveur pourraient être affectées. En outre, le modèle de nuage
centralisé est sujet à la manipulation. Les données collectées ne garantissent pas que les
informations sont utilisées de manière appropriée. Blockchain peut éliminer ces problèmes de
Cloud Computing. Dans Blockchain, les échanges de messages entre périphériques peuvent être
traités de la même manière que les transactions financières dans un réseau bitcoin. Les appareils
reposent sur des contrats intelligents qui garantissent plus de sécurité. Le fait que Blockchain
86 | P a g e
vérifie de manière cryptographique les transactions signées, elle élimine la possibilité d’attaque
par interférence, de rejeu ou d’autres attaques [52],[64].
87 | P a g e
Figure 40 : Entreprises implémentant la Blockchain
Source : blockchain101.com
88 | P a g e
3.13 Applications de Blockchain dans les soins de santé
Source: Applications of Blockchain Technology in Medicine and Healthcare: Challenges and Future Perspectives
89 | P a g e
Figure 42 : Représentation de l’interaction entre le DSE, les applications de santé mobiles, la technologie
blockchain et les soins préventifs.
Source: Applications of Blockchain Technology in Medicine and Healthcare: Challenges and Future Perspectives
Toutefois, les dossiers de santé électroniques (DSE) ne sont pas créés pour gérer les
enregistrements de la vie de plusieurs institutions, et les patients qui par la suite se séparent des
données d’un fournisseur de soins de santé ; de cette manière, ils perdent facilement l'accès aux
données antérieures [124]-[126]. Devant le besoin critique de trouver un moyen innovant de
gérer les DSE de manière à encourager les patients à consulter leurs données de santé actuelles
et historiques, de nombreux chercheurs ont évoqué la technologie blockchain pour la
maintenance des DSE. Un prototype appelé « MedRec » utilise des avantages distincts pour la
gestion de l'authentification, la confidentialité, l'intégrité et le partage aisé des données. Il
fonctionne sur un système de gestion des dossiers décentralisé et prétend fournir aux patients
un histoirique immuable et détaillée et permet un accès facile à leurs informations de soins de
santé respectives auprès de divers prestataires et établissements de traitement [127].
« MedRec » ne stocke pas de dossiers médicaux et n’exige pas de temps d’ajustement. Il
enregistre une marque du dossier sur une blockchain et en informe le patient, qui est responsable
de l'emplacement du dossier. La marque garantit qu’un duplicata inchangé du disque a été
acquis. De même, il déplace le pouvoir de contrôle de l'organisation au patient, ce qui pèse sur
le patient et lui permet d'assumer la responsabilité de propriétaire. Pour les patients qui
préféreraient ne pas traiter leurs informations, les associations d’administrateurs sont supposées
remplir le rôle d’agent du patient pour cette tâche. Une grande partie des entrées de patients que
les utilisateurs utilisent aujourd'hui ont des plans compliqués, créent plus de travail et disposent
d'interfaces utilisateur variées dans chaque fondation. Le cadre MedRec
(https://medrec.media.mit.edu/) comprend également une interface utilisateur, destinée à
améliorer la connexion persistante avec les enregistrements de soins de santé qui se déplacent
dans plusieurs organisations.
Lors de la mise en œuvre du DSE, le partage de données médicales se heurte souvent à des
limitations critiques, telles que la perte de données contrôlées, la fiabilité des données, la
vérification et la sauvegarde sécurisée des données médicales. Xia .[128] a introduit MeDShare,
un système sécurisé qui garantit l’échange de données médicales entre des parties non fiables.
MeDShare pourrait être utilisé pour partager des données médicales et maintenir des dossiers
de santé électroniques parmi les fournisseurs de services cloud, les hôpitaux et la recherche en
santé. entités, avec une plus grande provenance des données, un contrôle d’audit personnalisé
et un minimum de menaces pour la sécurité et la confidentialité des données.
90 | P a g e
Les DSE contiennent généralement des données hautement sensibles et critiques sur les
patients, qui sont souvent partagées entre les cliniciens, les radiologues, les professionnels de
la santé, les pharmaciens et les chercheurs, pour un diagnostic et un traitement efficace. Lors
du stockage, de la transmission et de la diffusion de ces informations du patient extrêmement
sensibles entre plusieurs entités, le traitement du patient peut être compromis, ce qui peut
constituer une menace grave pour la santé du patient et le maintien à jour des antécédents du
patient. Dans le cas de patients souffrant de maladies chroniques (par exemple, le cancer et le
VIH), la prévalence de ces risques peut devenir supérieure à l’histoire des traitements antérieurs
et postérieurs, des suivis et des processus de réadaptation. Il est donc impératif de maintenir les
antécédents du patient à jour pour assurer un traitement efficace. Pour contourner de telles
limitations, Dubovitskaya [129] a proposé un cadre basé sur une chaîne de blocage pour la
gestion, le maintien et le partage des enregistrements électro-médicaux de patients cancéreux.
Ils ont adopté une technologie de blockchain autorisée pour accéder, gérer et stocker les
données patients cryptées. Ces cadres proposés peuvent être utilisés pour mettre en œuvre de
manière pratique la technologie par blocs pour l'accès et la gestion de la confidentialité et de la
sécurité des données et de l'historique des patients dans les pratiques cliniques. Le projet
estonien basé sur la blockchain des dossiers médicaux est une autre référence historique. En
2016, l'Estonie a renoué avec la direction générale dans les technologies de base, lorsqu'elle a
proposé de conserver des millions de dossiers médicaux privés, tout en les rendant largement
accessibles aux prestataires de soins et aux compagnies d'assurance [130].
Peut-être que la raison de la croissance mondiale de l’utilisation de la technologie blockchain
en médecine est une garantie forte pour les patients, qui utilisent cette technologie pour rendre
leurs dossiers de soins de santé immuables et inchangés. Tout effort d'accès ou d'ajustement
peut être rapidement étiqueté et reconnu tout au long de la blockchain. Cela n’est pas seulement
utile pour l’intégrité du patient, il identifie également tout exercice criminel, y compris la fraude
en bloc ou la falsification des enregistrements. De plus, le partage et la révision des
enregistrements de services médicaux approuvés seront considérablement simplifiés. Au
moment où une visite du patient a lieu, la plupart des fournisseurs de ce patient l’ont rapidement
vue. Grâce à des algorithmes de prise en charge des patients adaptés, les médicaments, les
hypersensibilités et les solutions médicamenteuses peuvent être traités assez rapidement dans
tous les enregistrements Blockchain, sans qu'il soit nécessaire de recourir à des formes de
compromis pharmaceutiques fastidieuses. L'utilisation de l'innovation blockchain encouragera
donc un meilleur accès aux soins, la gestion des dossiers médicaux [128], la confirmation rapide
des informations cliniques, une sécurité accrue et une organisation plus efficace des soins.
Les blockchains en recherche clinique
Toute une gamme de problèmes, notamment la confidentialité des données, l’intégrité, le
partage des données, la tenue des dossiers, l’inscription des patients[131], et éventuellement,
les essais cliniques cliniques. La blockchain, qui est ensuite la génération Internet, peut apporter
des solutions viables à ces problèmes. Les chercheurs du secteur de la santé travaillent à la
résolution de ces problèmes à l’aide de la technologie de la blockchain [132,133]. Le secteur
de la santé sera bientôt pris d'assaut avec les applications de la blockchain, de l'intelligence
artificielle (IA) et de l'apprentissage automatique. Dans l'étude proposée par Timothy [134],
Ethereum permissionné, protocole fournissant des fonctionnalités de contrat intelligentes dans
la blockchain [134,135], est utilisé parallèlement aux systèmes de gestion de données en
clinique. L’objectif principal de l’étude était d’aborder le problème du recrutement des patients.
Les conclusions de l'étude ont montré qu'Ethereum permettait des transactions plus rapides, par
91 | P a g e
rapport à bitcoin, et la conclusion tirée proposait donc l'utilisation de contrats intelligents
Ethereum pour la transparence des systèmes de gestion de données dans les essais cliniques.
Par conséquent, l’inscription de patients au moyen de chaînes de blocs est l’une des applications
existantes de cette technologie en recherche clinique. Mehdi Benchoufi a également mené une
étude [136] visant à rendre le consentement éclairé des patients au suivi et au stockage de soins
médicaux, sûr, publiquement vérifiable et irréalisable. Ils ont utilisé une technologie de
blockchain pour créer son flux de travail.
Blockchains dans la détection de fraude médicale
Une énorme application de chaînes de blocs dans l'industrie médicale comprend la gestion de
la chaîne d'approvisionnement en médicaments. La gestion de l'offre est une question cruciale
à préserver dans tous les secteurs, mais elle revêt une importance accrue dans le secteur de la
santé en raison de sa complexité croissante. En effet, tout compromis dans la chaîne
d'approvisionnement en soins de santé affecte le bien-être du patient [137]. Les chaînes
d’approvisionnement sont vulnérables et consistent en des trous pour les attaques frauduleuses
car elles impliquent un certain nombre de pièces et de personnes en mouvement. Les
Blockchains constituent une plate-forme sûre et sécurisée permettant d'éliminer ce problème et,
dans certains cas, d'empêcher la fraude, en introduisant une transparence accrue des données et
une traçabilité améliorée des produits. Étant donné que le cordon dans la chaîne de blocs ne
peut être validé and mis à jour du contrat de travail intelligent, la manipulation de la blockchain
n’est pas chose aisée [138].
Blockchains dans l'industrie pharmaceutique et la recherche
L’industrie pharmaceutique est l’un des secteurs en forte croissance et un secteur de premier
plan à la pointe de la prestation des soins de santé. Le secteur pharmaceutique contribue non
seulement à l’introduction de médicaments nouveaux et potentiels sur le marché, mais aide
également à renforcer la sécurité et la validité des produits médicaux et des médicaments vendus
au consommateur final. En outre, le secteur pharmaceutique contribue également à l'évaluation
[139] et au traitement de médicaments sûrs, ce qui contribue finalement au rétablissement plus
rapide du patient. Dans les cas habituels, les sociétés pharmaceutiques sont confrontées au défi
de suivre leurs produits au bon moment, ce qui pose parfois des risques graves en permettant
aux contrefacteurs de compromettre la production ou d’invasion de faux médicaments dans le
système. En conséquence, la production et la distribution de médicaments contrefaits sont
devenues l’un des principaux risques pour la santé au niveau mondial, en particulier dans les
pays en développement. Au cours de la production, de la recherche et du développement (R &
D) de ces médicaments, la blockchain pourrait être une technologie optimale, qui peut être
utilisée pour évaluer, surveiller et garantir les processus de production de médicaments
potentiels. Récemment, Hyperledger, a lancé un projet de médicament contrefait utilisant la
technologie de la blockchain comme principal outil d’inspection et de lutte contre la production
de médicaments contrefaits. En ce qui concerne la fourniture efficace de médicaments
authentiques et fiables aux patients, il est absolument nécessaire de surveiller, évaluer et assurer
le processus général de développement et de fourniture de médicaments par le biais de
l’utilisation des technologies numériques dans le monde, et en particulier dans les pays en
développement. À cet égard, un système de contrôle numérique des drogues (DDCS) [140]
pourrait constituer une solution durable pour la prévention des médicaments contrefaits. En
utilisant un DDCS basé sur la blockchain, les grandes industries pharmaceutiques (Sanofi,
Pfizer et Amgen) ont lancé un projet pilote commun d'inspection et d'évaluation de nouveaux
médicaments [141]. En utilisant la blockchain comme approche, il serait possible non seulement
92 | P a g e
de suivre la production et l'emplacement du médicament, mais également d'améliorer la
traçabilité des médicaments, de sécuriser le système d'approvisionnement en médicaments et
de garantir la qualité des médicaments fournis aux consommateurs ou aux utilisateurs finaux.
On résume les applications de l’adoption de la blockchain pour faire progresser la recherche
biomédicale / sanitaire :
Dossiers de santé électroniques
Un DSE numérique sur un registre distribué d'une chaîne de blocs autorisée est garanti avec
intégrité, du stade de la génération des données à l'extraction des données, sans intercession
humaine.
Recherche clinique
Blockchain introduit un cadre sécurisé décentralisé pour toutes les collaborations d’information
qui pourraient avoir lieu, en ce qui concerne la recherche clinique. Grâce à cela, les données
peuvent être partagées en toute sécurité avec des groupes de chercheurs.
Détection de fraude médicale
La Blockchain, ayant la particularité d'être immuable, facilite la détection des fraudes en
interdisant toute duplication ou modification dans la transaction, et en permettant
éventuellement une transaction transparente et sécurisée.
Industrie pharmaceutique et recherche
La Blockchain, utilisant son pouvoir de traçage détaillé, surveille chaque étape de la chaîne
d'approvisionnement pharmaceutique : l'origine du médicament, ses composants et son
propriétaire sont fréquemment détectés à chaque étape pour éviter la contrefaçon / le vol de
marchandises.
La blockchain est une technologie émergente qui se répand dans divers secteurs et qui présente
un grand nombre d'avantages et d'opportunités. Cependant, cette technologie présente son
propre ensemble de défis à relever (voir figure 43). Quelques-uns de ces défis majeurs sont
abordés dans cette section.
93 | P a g e
Figure 43 : Opportunités et défis des blockchains.
Source: Applications of Blockchain Technology in Medicine and Healthcare: Challenges and Future Perspectives
Le premier et le plus important défi concerne la sécurité et la confidentialité des données. Avec
la mise en œuvre d'applications basées sur la technologie de la blockchain, la nécessité pour un
tiers d'effectuer une transaction est éliminée. Étant donné que le mécanisme de blockchain
permet à l'ensemble de la communauté, plutôt qu'à un seul tiers de confiance, de vérifier les
enregistrements dans une architecture de blockchain, les données sont exposées à des risques
potentiels en matière de sécurité et de confidentialité. Étant donné que tous les nœuds peuvent
accéder aux données transmises par un nœud, la confidentialité des données ne sera pas active.
En cas d'absence d'une tierce partie pour autorisation, le patient doit sélectionner un ou plusieurs
représentants qui peuvent accéder à ses informations et / ou à ses antécédents médicaux en son
nom, en cas d'urgence. Désormais, ce représentant peut également autoriser un ensemble de
personnes à accéder aux enregistrements du même patient, ce qui peut créer une menace énorme
pour la sécurité et la confidentialité des données. L'implication de mécanismes de haute sécurité
dans les données entraînera à son tour des obstacles pour le transfert des données d'un bloc à
un autre et, par conséquent, les destinataires auront accès à des données limitées ou incomplètes.
En outre, les réseaux blockchain sont sujets à une sorte de violation de la sécurité connu sous
le nom d'attaque 51%. Cette attaque implique une équipe de mineurs qui possèdent plus de 50%
des blocs d'un réseau blockchain. Les mineurs obtiennent une autorité du réseau et pourraient
empêcher toute nouvelle transaction en ne leur donnant pas leur consentement. Cinq crypto-
monnaies ont récemment été victimes de cette attaque. En outre, un dossier patient peut contenir
des données sensibles qui ne conviennent pas pour figurer dans la chaîne de blocs.
94 | P a g e
Gestion de la capacité de stockage
Un autre défi qui apparaît sur ce front est la gestion de la capacité de stockage. La Blockchain
a été conçue pour enregistrer et traiter les données de transaction, qui ont une portée limitée, de
sorte qu’elle n’a pas besoin de beaucoup de stockage. Avec le temps, au fur et à mesure de son
expansion dans le domaine de la santé, les défis du stockage devinrent évidents. Le secteur de
la santé contient une grande quantité de données qui doivent être traitées quotidiennement. Des
dossiers des patients aux antécédents médicaux, en passant par les rapports de test, en passant
par les analyses IRM, les rayons X et autres images médicales, toutes les données du scénario
de la blockchain seront disponibles pour tous les nœuds de la chaîne, ce qui nécessite un espace
de stockage considérable. De plus, les applications de la blockchain étant basées sur des
transactions, les bases de données utilisées pour cette technologie ont tendance à se développer
rapidement. En raison de la taille croissante des bases de données, la vitesse de recherche et
d’accès à l’enregistrement devient lente, ce qui est tout à fait inadéquate pour les types de
transactions pour lesquels la rapidité est essentielle. Par conséquent, une solution de chaîne de
blocs doit être évolutive et résiliente.
Problèmes d'interopérabilité
Défis de la normalisation
La technologie de la blockchain en est encore à ses balbutiements et elle sera donc certainement
confrontée à des problèmes de standardisation en vue de son application pratique en médecine
et en soins de santé. Un certain nombre de normes bien authentifiées et certifiées seraient
exigées des autorités internationales de normalisation. Ces normes prédéfinies seraient utiles
pour évaluer la taille, la nature des données et le format des informations échangées dans les
applications blockchain. Ces normes examineront non seulement les données partagées, mais
devront également servir de mesures de sécurité préventives.
Défis sociaux
La technologie des chaînes de blocs évolue toujours et fait donc face à des défis sociaux, tels
que le changement de culture, en plus des défis techniques susmentionnés. Accepter et adopter
une technologie complètement différente des méthodes de travail traditionnelles n'est jamais
chose facile. Bien que l’industrie médicale s’achemine lentement vers la numérisation, il lui
reste encore beaucoup à faire pour passer complètement à cette technologie, en particulier celle
comme la blockchain, qui n’a pas encore été validée sur le plan clinique. Il faudra du temps et
des efforts pour convaincre les médecins de passer de la paperasserie à la technologie. En raison
de son faible taux d'adoption dans le secteur de la santé, la technologie et les politiques
proposées sont relativement peu fiables. En raison de tous ces défis et menaces, nous ne
95 | P a g e
pouvons pas, à ce jour, le qualifier de solution viable et universelle pour tous les problèmes de
santé.
Afin de mieux comprendre, examiner et identifier les forces, faiblesses, opportunités et menaces
de la technologie de la chaîne de blocs dans le domaine de la santé, nous avons mené une
approche d'analyse SWOT (comme illustré à la figure 44).
Figure 44 : Analyse SWOT pour les blockchains dans les soins de santé.
Source: Applications of Blockchain Technology in Medicine and Healthcare: Challenges and Future Perspectives
96 | P a g e