Mémoire Algorithme Consensus Blockchain
Mémoire Algorithme Consensus Blockchain
Mémoire Algorithme Consensus Blockchain
' $
Thème
Analyse de quelques algorithmes de
consensus dans la blockchain.
& %
Présenté par :
DESDOUS Mohammed .
BOUKETTA Chanez.
Encadré par :
LAHOULOU Atidel .
MAHAMDIOUA Meriama.
Promotion : 2020.
& %
Résumé
Une blockchain est un réseau pair-à-pair permettant d’opérer des transactions en toute
sécurité et sans intervention d’une partie tierce. ce sont les n ?uds distribués qui doivent se
mettre d’accord sur la validité des transactions, en s’appuyant sur un algorithme de consen-
sus pour parvenir à un consensus.
Dans notre mémoire de fin d’étude, nous avons présenté et analysé un ensemble des al-
gorithmes de consensus. Ainsi, nous avons implanté et comparé les performances des deux
algorithmes de consensus ”preuve de travail” et ”preuve d’enjeu” avec l’utilisation des fonc-
tions de hachage SHA256 et MD5.
In our final thesis, we presented and analyzed a set of consensus algorithms. Thus, we im-
plemented and compared the performances of the two ”proof of work” and ”proof of stake”
consensus algorithms with the use of the hash functions SHA256 and MD5.
Tout d’abord, nous tenons à remercier Allah, le clément et le miséricordieux de nous avoir
donné la force et le courage de mener à bien ce travail.
Nous voudrions exprimer nos vifs remerciements à Mme LAHOULOU Atidel et Mme MA-
HAMDIOUA Meriama, pour leurs orientations, leurs encouragements, leur disponibilité et
leurs précieux conseils qui nous ont permis de mener à bien ce travail.
Nous tenons à remercier les membres du jury qui ont bien voulu accepter de juger notre
modeste travail.
A la fin nos remerciements les plus sincères à toutes les personnes qui ont contribué de
près ou de loin à l’élaboration de ce mémoire ainsi qu’à la réussite de cette formidable année
universitaire...
> Dédicaces >
A l’homme de ma vie, mon exemple éternel, mon soutien moral et source de joie et de
bonheur, celui qui s’est toujours sacrifié pour me voir réussir, que dieu te garde dans son
vaste paradis, à toi mon père.
A la lumière de mes jours, la source de mes efforts, la flamme de mon coeur, ma vie et
mon bonheur ; maman . Aux personnes dont j’ai bien aimé la présence dans ce jour,
A mes soeurs : Salma et Ahlem et Rahma
A mon frère :Masoud
Je dédie également ce travail à ma grande famille DESDOUS et la famille MAI-
MOUR.
A mes tentes, mes oncles, mes cousins et mes cousines et à toute ma famille
A tous mes amis, A tous ceux qui sont proches de mon coeur et qui m’encouragent à
donner le meilleur en moi surtout HOUSSEM et YOUSSERA .
Et en fin Je le dédie à tous ce qui m’a donné leur moindre coup de pouce pour réussir ce
travail.
MOHAMMED
> Dédicaces >
A l’homme de ma vie, mon exemple éternel, mon soutien moral et source de joie et de
bonheur, celui qui s’est toujours sacrifié pour me voir réussir, que dieu te garde dans son
vaste paradis, à toi cher PAPA .
A la lumière de mes jours, la source de mes efforts, la flamme de mon coeur, ma vie et
mon bonheur ; MAMAN QUE J’ADORE .
Aux personnes dont j’ai bien aimé la présence dans ce jour,
A ma très chère soeur qui ma vraiment soutenu, malgré la distance tu es dans mon coeur
NADINE .
A ma grand-mère, mes grands-pères, mes tentes, mes oncles, mes cousins et mes cousines
et à toute ma famille
Et en fin Je le dédie à tous ce qui m’a donné leur moindre coup de pouce pour réussir ce
travail.
CHANEZ
Table des matières
Introduction générale 1
2 Blockchain 11
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Histoire de Blockchain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
i
Table des matières ii
2.3 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.4 Caractéristiques de Blockchain . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.5 Fonctionnement d’une Blockchain . . . . . . . . . . . . . . . . . . . . . . . 13
2.5.1 Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5.2 Rôle de hache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.6 Composants de Blockchain . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.6.1 Le compte ou porte-monnaie (wallet) . . . . . . . . . . . . . . . . . . 16
2.6.2 Transaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.6.3 Bloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.6.4 Minage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.6.5 Algorithme de consensus . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Conclusion générale 44
Bibliographie 45
Liste des tableaux
iv
Liste des figures
v
Liste des abréviations
vi
Introduction générale
1
Introduction générale 2
fonctionnement.
Dans le chapitre 3 nous essayons d’expérimenter et d’analyser quelques algorithmes de
consensus dans la blockchain selon les critères d’efficacité de ce mécanisme, en s’appuyant
sur leurs avantages et inconvénients.
Dans le chapitre 4, nous présentons notre comparaison et évaluation des deux algorithmes
de consensus ”preuve de travail et preuve d’enjeu”.
Notre mémoire est enfin terminé par une conclusion générale.
Chapitre 1
Généralité sur la cryptographie
1.1 Introduction
Une blockchain est une technologie de stockage et de transmission d’informations sans
organe de contrôle
Elle s’appuie en grande partie sur la cryptographie pour assurer la sécurité de la trans-
mission et la confidentialité de l’information numérique au sein du réseau. Dans ce chapitre
nous présentons les notions de base de la cryptographie utilisées dans la blockchain.Tels que
le cryptage asymétrie,signature numérique,fonction de hachage,ect.
• L’intégrité : vérifier l’intégrité des données consiste à déterminer si les données n’ont
pas été altérées durant la communication.
3
Chapitre 1. Généralité sur la cryptographie 4
d’accès peut permettre (par exemple par le moyen d’un mot de passe qui devra être
crypté) l’accès à des ressources uniquement aux personnes autorisées.
• Cet utilisateur comme le destinataire possèdent tous deux une paire de clés, et chacun
connait la clé publique de l’autre.
• Cette clé active un algorithme, et le message écrit est alors transformé en texte in-
compréhensible, qui peut alors être envoyé au destinataire.
Une fonction de hachage (dite aussi une fonction de contraction, digest, empreinte digital,
”hash code”) est une fonction à sens unique et sans collision, générant une sortie de taille
fixe (appelée condensat ou empreinte)[3], caractéristique des données fournies en entrée (voir
figure 1.3).
Une fonction de hachage est dite à sens unique car :
• Elle est conçue de telle sorte que le hash produit une image ou empreinte de taille
fixe créée à partir d’une donnée de taille variable, fournie en entrée soit impossible à
inverser. Alors qu’il est simple de produire un hash.
• lorsqu’il est réputé très difficile de trouver deux sources différentes conduisant à un
même résultat[3].
Chapitre 1. Généralité sur la cryptographie 7
Une fonction de hachage cryptographique idéale possède les quatre propriétés suivantes :
• Il est par définition, impossible, pour une valeur de hachage donnée, de construire un
message ayant cette valeur de hachage [3].
• Il est impossible de trouver deux messages différents ayant la même valeur de hachage
[4].
L’intégrité des données peuvent être prouvées si les fonctions de hachage remplissent un
ensemble d’exigences. Une fonction de hachage est dite avoir des bonnes propriétés crypto-
graphiques si elle est résistante aux préimages, aux secondes préimages et aux collisions.
Les trois problèmes suivants doivent donc être difficiles à résoudre [5] :
• Préimage : étant donné un hache h choisi aléatoirement, trouver un message m tel que :
H(m) = h.
• Collision : trouver deux messages m , m’, tels que m déférent que m’ et H(m) = H(m’).
Selon sa définition, une fonction de hachage est une fonction dont l’ensemble de départ
est plus grand que l’ensemble d’arrivée.
Chapitre 1. Généralité sur la cryptographie 8
1.2.4.3.1 MD5 MD5 (Message-Digest algorithm 5) : est une fonction de hachage inventée
par Ronald Rivest en 1991. Cette fonction de hachage permet de calculer une empreinte de
toute donnée numérique (allant d’une simple chaı̂ne de caractères à un fichier de plusieurs
giga octets). L’empreinte générée est d’une longueur de 128 octets (soit 32 caractères)[2].
• La fonction de hachage MD5 a été initialement conçue pour être utilisée comme algo-
rithme de hachage cryptographique sécurisé pour authentifier les signatures numériques.
1.2.4.3.2 SHA256 SHA-256 (Secured Hash Algorithm 256) :est une fonction de hachage
qui a été développé par la NSA (United States National Security Agency) en 2001 et continue
à être utilisé par de nombreuses institutions financières et de gouvernements pour le cryptage
de leurs données grâce à sa complexité. Elle se trouve parmi les plus répandues [2].
• SHA-256 a ces portes logiques et d’autres opérations vont être appliquées à l’ensemble
de données de départ, qui aura été découpé en morceaux de 256 bits. Elles se succèdent
suivant une organisation complexe répétée une soixantaine de fois.
• La fonction de compression utilisé par le SHA-256 est basée sur des registres à décalage
et des opérations bits à bits. Ces registres nommés de A à H contiennent chacun un
mot de 32 bits.
• Sa sécurité est bien plus importante que le Md5, car il propose un bon équilibre entre
espace de stockage en ligne et sécurité.
Comme la signature manuscrite, la signature numérique est un terme générique qui in-
dique tout simplement un mécanisme permettant de lier un document à un signataire. Dans
les deux cas, les signatures peuvent être vérifiées publiquement. Donc elle permet de garantir
l’intégrité d’un document électronique une fois signé et d’en authentifier le signataire [24].
Les schémas de signature électronique sont donc fondamentalement asymétriques : la clé
privée du signataire intervient dans l’algorithme de signature, et la clé publique correspondant
sert à la vérification.
Chapitre 1. Généralité sur la cryptographie 9
2. Le hache est chiffré avec la clé privée du signataire. Le hache chiffré et la clé publique
du signataire sont ensuite réunis dans une signature numérique qui est annexée au
document.
Les signatures numériques sont souvent utilisées dans trois objectifs que leurs propriétés
permettent d’atteindre : l’intégrité des données, l’authentification et la non-répudiation.
• L’intégrité des données : Bob peut vérifier que le message d’Alice n’a pas été modifié
entre l’envoi et la réception. Toute modification du message produirait une signature
complètement différente.
• L’authenticité : Tant que la clé privée d’Alice est gardée secrète, Bob peut se servir de
sa clé publique pour confirmer que les signatures numériques ont été créées par Alice
et personne d’autre.
• Non-répudiation : Une fois la signature générée, Alice ne pourra pas nier l’avoir appliqué
à l’avenir, à moins que sa clé privée ne soit compromise d’une quelconque manière.
jusqu’au noeud racine, appelé racine Merkle (Merkle root). De cette façon, l’intégrité d’une
quantité arbitraire de données peut être efficacement assurée.
L’arbre de Merkle est construit de bas en haut. Un arbre Merkle typique peut être
représenté comme le diagramme dans la( Figure 1.5). Dans cet exemple l’arbre de Merkle
contient quatre feuilles.
1.3 Conclusion
Le but traditionnel de la cryptographie est d’élaborer des méthodes permettant d’échanger
des données de manière sécurisée. C’est pour ça la cryptographie moderne s’attaque en fait
plus généralement aux problèmes de sécurité des communications.
Dans ce chapitre nous avons présenté une introduction à la cryptographie qui permet de
s’assurer à la fois certain nombre de sécurité de base : confidentialité, intégrité et authentifi-
cation des données transmises, ainsi que l’authentification des tiers et la non répudiation.
Ces techniques cryptographiques ainsi que d’autres théquenologies forment les éléments
constitutifs de la technologie blockchain qui seront introduits au chapitre 2 .
Chapitre 2
Blockchain
2.1 Introduction
La protection des données sur internet a toujours été un sujet qui a affolé la toile : il
ne se passe pas une journée sans que les médias nous parlent de piratage des coordonnées
bancaires ou de géant du e-commerce qui se font hacker. C’est pourquoi les chercheurs se
concentrent aujourd’hui sur les technologies de cryptage et de sécurisation des données comme
la Blockchain.
Une Blockchain fonctionne sur un réseau pair-à-pair d’ordinateurs qui exécutent tous le
protocole et détiennent une copie identique des blocs de transactions, qui sont transmises
sans intermédiaire et sans aucune autorité central grâce à un mécanisme appelé consensus.
Blockchain est lui -même un registre public et partagé qui enregistre toutes les transactions
du bloc de genèse (premier bloc) jusqu’à aujourd’hui.
Dans ce chapitre, nous présentons la nouvelle technologie Blockchain , qui promet
d’assurer cette confiance numérique sans organe central. Nous montrons comment elle peut
être utilisée pour partager et contrôler en toute sécurité les informations entre les parties qui
ne se font pas nécessairement confiance.
Le présent chapitre couvre : l’histoire de la Blockchain ,sa définition ,ses ca-
ractéristiques,son fonctionnement,ses composants et le rôle de l’algorithme de consensus .
• A une monnaie numérique (le bitcoin avec b minuscule) utilisant des techniques cryp-
tographiques [16].
11
Chapitre 2. Blockchain 12
• Des vendeurs protégés contre d’éventuelles fraudes grâce à une impossibilité de suppri-
mer ou modifier une transaction.
• Des acheteurs protégés avec un système de comptes captif (indisponibilité d’un bien
pendant une courte période)
2.3 Définition
• Une Blockchain, ou chaı̂ne des blocs, est une technologie de stockage et de trans-
mission d’informations sans organe de contrôle. Techniquement, il s’agit d’une base de
données distribuée dont les informations envoyées par les utilisateurs et les liens internes
à la base sont vérifiés et groupés à intervalles de temps réguliers en blocs, l’ensemble
étant sécurisé par cryptographie, et formant ainsi une chaı̂ne [15].
• Par extension, une chaı̂ne de blocs 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 noeuds
de stockage. Une Blockchain est donc un registre distribué et sécurisé de toutes les
transactions effectuées depuis le démarrage du système réparti [16].
Grâce aux définitions ci-dessus, nous pouvons définir la Blockchain comme une distri-
bution d’un grand livre décentralisé et public composé de nombreux pairs (noeuds),
chaque pair a les mêmes enregistrements de données exactes dans son propre appareil,
ces enregistrements sont enregistrés dans des blocs là où se trouve un ensemble de
transaction sous forme d’une chaı̂ne. (voir la figure 2.1) [8].
Chapitre 2. Blockchain 13
• La décentralisation : un réseau pair à pair où chaque noeud du réseau remplit une ou
plusieurs fonctions ;
• L’immuabilité : une fois insérée dans la Blockchain, une transaction est infalsifiable, y
compris par des acteurs malveillants qui participeraient au réseau ;
2.5.1 Fonctionnement
Pour une première approche du fonctionnement des blockchain, le plus facile est de rai-
sonner avec une blockchain purement monétaire. On peut prendre l’exemple de Bitcoin, ou
d’une blockchain avec des jetons ”simples”, en commençant par la création d’une transaction
peut être décrit en quelques étapes (voir la figure 2.2) :
1. Un compte (ou portefeuille, portemonnaie, wallet) doit être créé pour qu’un utilisateur
de blockchain puisse envoyer ou recevoir des crypto-monnaie.A utilise son portefeuille
et effectue une transaction vers B. Cette transaction est diffusée sur le réseau.
Chapitre 2. Blockchain 14
3. Une fois les vérifications effectuées, le bloc dans lequel se trouve la transaction entre
A et B est validé par les mineurs, selon des techniques de consensus qui dépendent du
type de blockchain, et qui permettent d’atteindre le consensus distribué, c’est-à-dire le
consensus des noeuds sur l’état du réseau [10]. Pour cela, les mineurs doivent lancer
un procédé cryptographique : le calcul du hache du bloc. Dont chaque bloc possède
un identifiant qui prend la forme d’un hache permettant de relier les blocs les uns aux
autres. Cet hache est toujours le résultat du hachage du bloc précédent.
4. Quand le bloc est validé, il est daté et ajouté à la chaı̂ne de blocs à laquelle tous les
utilisateurs ont accès.
La modification étant visible dans l’ensemble des blocs suivants car les blocs sont tous
liés entre eux cryptographiquement. En conséquence, modifier le contenu d’un bloc suppose
de recalculer les hachs de tous les blocs qui le suivent (voir figure 2.4).
2.6.2 Transaction
Pour une première approche du fonctionnement des blockchains, le plus facile est de
raisonner avec un blockchain purement monétaire.
• Pour une simple définition, une transaction se résume à trois informations : qui donne
quoi à qui.[7]
• Les transactions sont composées d’une liste d’entrées de transactions et d’une liste de
sorties de transaction.
2.6.3 Bloc
Un bloc est un enregistrement dans la blockchain, qui contient et confirme plusieurs
données ou transactions en attente. Toutes les 10 minutes en moyenne (dans le cas de Bitcoin),
un nouveau bloc contenant des transactions est ajouté à la chaine de blocs par le minage
[13].
Chaque bloc est constitué de plusieurs champs :
• Hash du bloc précedent : champ contient l’empreinte de bloc précedant (bloc d’indice
numero 91 dans notre exemple).
2.6.4 Minage
Le minage est un processus très importent dans une blockchaine. [14]
• Minage (mining) : C’est le processus qui permet la validation des blocks des transac-
tions. Cette opération, très coûteuse en puissance de calcul informatique, est motivée
par l’obtention d’une récompense par le mineur gagnant.
• Il faut s’assurer qu’il n’y aura pas d’adversaires puissants pour réussir à bifurquer la
chaı̂ne.
Les algorithmes de consensus sont constitués une partie très importante des plateformes
blockchain. Sans eux, il ne nous restera qu’une base de données stupide et immuable. Nous
listons ici quelques algorithmes de consensus les plus utiliser qu’on va évaluer et analyser
dans le prochain chapitre.
2.7 Conclusion
Dans ce chapitre, nous avons étudier le mécanisme et le concept sur lequel repose la block-
chain, qui est une nouvelle technologie révolutionnaire qui a captivé l’attention des chercheurs
et des innovateurs dans le monde de la technologie. Cette innovation informatique permet
ainsi d’organiser les échanges de données sur un réseau distribué, assurant une sécurisation
Chapitre 2. Blockchain 19
des données par chiffrement, et faisant participer les noeuds du réseau pour la création de
nouveaux blocs de la chaı̂ne.
Le principe de base d’une blockchain repose sur la notion de consensus, qui sera le but de
prochain chapitre, là où nous allons discuter de quelques algorithmes de consensus en détails.
Chapitre 3
Algorithmes de consencus
3.1 Introduction
Après avoir compris les principes de la blockchain et découvert son architecture, nous
mettrons l’accent sur le consensus dans la blockchain : son utilité, son mode de fonctionnement
ou encore les différentes formes de consensus qui peuvent exister.
L’enjeu n’est pas de rentrer à un niveau de détail technique mais bien d’évaluer et de
vulgariser ce processus clé d’une blockchain. Alors, dans ce chapitre après avoir connaitre
les critères de l’efficacité d’un bon algorithme de consensus blockchain. Nous présentons en
détail quelques algorithmes de consensus les plus utiliser dans la blockchain et listons leurs
différents avantages et inconvénient.
• Être résilients aux pannes de noeuds, aux retards de transmission, aux messages égarés
ou corrompus .
Pour ce faire, une pluralité de mécanismes existent ( PoW, PoS, DPoS, PoET, PoI, etc).
Chacun d’entre eux dispose de ses propres caractéristiques en matière de synchronisation,
d’émission de message (fréquence, taille), de tolérance aux pannes, de prévention contre les
noeuds malveillants, de performance et de sécurité des messages échangés.
Ainsi, Le système blockchain, parvenir à un consensus garantit que l’ensemble des noeuds
du réseau s’accordent sur un même état du registre et des données qui y sont stockées. Pour
déterminer plus précisément l’efficacité d’un mécanisme de consensus, on évalue ce dernier
selon trois critères principaux [16] :
20
Chapitre 3. Algorithmes de consencus 21
• Tolérance aux fautes (Fault Tolerance) : Le mécanisme doit être capable de fonctionner
même si un ou plusieurs noeuds sont défaillants.
Il est crucial de pouvoir satisfaire les trois propriétés listées ci-dessus si on souhaite
résoudre, dans son intégralité, le problème du consensus. Malheureusement, Fischer, Lynch
et Patterson, trois chercheurs en informatique, ont montré en 1985 qu’aucun algorithme
déterministe de consensus ne permettait de garantir en même temps ces trois propriétés au
sein d’un système asynchrone tel qu’un réseau de noeuds distribués (FLP Impossibility).
Ainsi, en règle générale, puisque la tolérance aux fautes est absolument vitale dans le
cadre d’un réseau de noeuds distribués, les mécanismes de consensus doivent choisir entre la
sûreté et la terminaison en fonction des exigences de l’application pour laquelle a été conçue
la plateforme décentralisée [16].
En matière de tolérance aux fautes, les mécanismes de consensus traditionnels opérant
dans un réseau de noeuds distribués et connus se sont d’abord évertués à faire face aux fautes
”fail-stop” où un noeud ne répond plus à la suite d’un problème matériel ou logiciel[18].
La section suivante, présente un ensemble des algorithmes de consensus, les plus connus
dans la littérature, en expliquant leur principe et en mettant l’accent sur leurs avantages et
inconvénients.
s’est propagé pour devenir un algorithme de consensus largement utilisé et est maintenant
déployé par de nombreuses crypto-monnaies.[16]
• La difficulté du problème peut être modifiée lors de l’exécution, pour garantir un temps
de blocage constant. Parfois, il y a une situation dans laquelle plus d’un mineur résout
le problème simultanément. Dans ce cas, les mineurs choisissent l’une des chaı̂nes et
la chaı̂ne la plus longue est considérée comme gagnante. Donc, en supposant que la
plupart des mineurs travaillent sur la même chaı̂ne, celle qui se développera le plus
rapidement sera la plus longue et la plus fiable.
La version de PoW de Bitcoin est basée sur l’utilisation des haches. Son fonctionnement
est illustré dans les étapes suivantes :
• Les mineurs sont chargés d’ajouter de nouveaux blocs dans la blockchain. Pour ce faire,
les mineurs doivent essayer de deviner un nombre pseudo aléatoire (Nonce).
Chapitre 3. Algorithmes de consencus 23
• Ce nombre, lorsqu’il est combiné avec les données fournies dans le bloc et transmis
via une fonction de hachage, doit produire un résultat qui correspond aux conditions
données, par exemple, un hachage commençant par quatre zéros.
• Lorsqu’un résultat correspondant est trouvé, les autres noeuds vérifient la validité du
résultat et le noeud mineur est récompensé par la récompense de bloc [17] (actuellement
”12.5 bitcoins”,pour la blockckaine de Bitcoins).
• Par conséquent, il est impossible d’ajouter un nouveau bloc dans la chaı̂ne principale
sans trouver d’abord un nonce valide, ce qui génère à son tour la solution d’un bloc
spécifique (appelé hachage de bloc). Chaque bloc validé contient un hachage de bloc
qui représente le travail effectué par le mineur.
Les étapes de l’algorithme de PoW sont illustrées dans le diagramme de figure 3.2 :
• La preuve d’enjeu, elle est directement liée à la monnaie puisqu’elle lie la capacité à
valider un bloc à la quantité d’argent (ou jeton) détenue. Sans crypto-monnaie, il n’y a
donc pas de mécanisme de consensus, ce qui est le fondement cardinal d’une blockchain
[17].
Chapitre 3. Algorithmes de consencus 25
• Le concept sous- jacent est que si un individu est impliqué de façon notable dans une
Blockchain (comprendre qu’il possède une partie importante des jetons, et a donc un
intérêt financier considérable) il sera particulièrement sensible au bon fonctionnement
de cette dernière.
Les étapes de l’algorithme de PoS sont illustrées dans le diagramme de figure 3.3 :
• Le principal avantage de PoS est que la validation d’un bloc ne repose pas sur de
puissants calculs algorithmiques qui consommeraient énormément d’énergie et auraient
par conséquent un impact négatif sur l’environnement.
Chapitre 3. Algorithmes de consencus 26
• La preuve d’enjeu est beaucoup plus rentable que les autres méthodes et n’entraı̂ne pas
de fuite de valeur vers des monnaies fiduciaire.
• La stabilité de fonctionnement de réseau avec PoS est gardée comme il est présenté dans
la figure 3.1. Plus les mineurs rejoignent le réseau, plus la création des blocs augmente.
Automatiquement le temps moyen de création diminue et ce qui augmente la difficulté
du minage. Dans ce moment les validateurs des blocs quittent le réseau, cela implique
une diminution de création de bloc. Enfin, le temps moyen de la création de bloc devient
à la normale.
• Monopolisation de la richesse, en effet plus on a de jeton plus l’on peut forger et plus
on est reçois de l’argent. Les riches restent riches.
• Une blockchain basée sur DPoS compte les parties prenantes sous-traitent leur travail à
un tiers. En d’autres termes, ils peuvent voter pour quelques délégués qui sécuriseront
le réseau en leur nom. Les délégués peuvent également être appelés témoins et ils sont
chargés de parvenir à un consensus lors de la génération et de la validation de nouveaux
blocs.
• Le droit de vote est proportionnel au nombre de pièce détenues par chaque utilisateur.
Le système de vote varie d’un projet à l’autre, mais en général, chaque délégué présente
une proposition individuelle lorsqu’il demande des votes.
• Habituellement, les récompenses recueillies par les délégués sont partagées proportion-
nellement avec leurs électeurs respectifs. Par conséquent, l’algorithme DPoS crée un
système de vote qui dépend directement de la réputation des délégués.
• En ce qui concerne les performances, les chaı̂nes de blocs DPoS sont plus évolutives,
pouvant traiter plus de transactions par seconde, par rapport à PoW et PoS.
Les délégués n’ont pas le pouvoir de modifier les détails d’une transaction. Toutefois, en
tant que validateurs, ils pourraient théoriquement exclure certaines transactions d’un bloc.
Néanmoins, cela n’a que très peu d’effet puisque le prochain bloc créé inclura ces transactions,
ce qui donnera au prochain délégué les frais associés à leur validation.
Chapitre 3. Algorithmes de consencus 28
Ainsi, les transactions ne seront que légèrement retardées. De plus, cela conduirait
inévitablement à ce que le délégué malhonnête soit éliminé par le reste du réseau. Essen-
tiellement, un réseau DPoS est autogéré et contrôlé par tous ses participants, en veillant à
ce que les meilleurs intérêts du réseau demeurent la priorité.
• Efficacité d’un point de vue énergétique, et plus rapide qu’un mécanisme de POW et
POS, il permet de valider les transactions en quelques secondes seulement.
• Réduit les interactions entre les noeuds et permet dans un plus grand nombre de tran-
sactions et des validation plus rapides.
• Les participants possédant le plus de jetons peuvent voter pour eux-mêmes afin de
s’élire vérificateur des transactions
• PoET est un algorithme de mécanisme de consensus qui est utilisé sur des réseaux
blockchains, autorisés pour décider des droits d’extraction ou des gagnants de blocs sur
le réseau. Les réseaux blockchains autorises sont ceux qui exigent que tout participant
potentiel s’identifie avant d’être autorisé à se joindre.
• Basé sur le principe d’un système de loterie équitable où chaque noeud est également
susceptible d’être gagnant, le mécanisme PoET est basé sur la répartition des chances
de gagner équitablement parmi le plus grand nombre possible de participants au réseau.
Chapitre 3. Algorithmes de consencus 29
• Essentiellement, le flux de travail est similaire au mécanisme de consensus suivi par l’al-
gorithme de preuve de travail (POW) de Bitcoin, mais sans sa consommation d’énergie
élevée. Au lieu d’être gourmande en ressources, elle permet au processeur d’un mineur
de dormir et de passer à d’autres taches pendant la durée spécifiée, augmentant ainsi
son efficacité.
• Il est simple pour tous les participants de vérifier que le mineur a été légitimement
sélectionne.
• Même si ça marche, l’utilisateur doit avoir un matériel spécialisé. Il ne peut donc pas
être adopté en masse.
• Cet algorithme est conçu pour récompenser les utilisateurs très fidèles de la blockchain.
Par conséquent, encourager une plus grande utilisation de la plateforme.
• C’est un algorithme qui dépend de combien d’utilisateurs actifs sur le réseau. Plus ils
sont actifs, plus ils reçoivent de récompenses.
• Chaque utilisateur est noté, et plus son score est élevé, plus les récompenses sont
importantes.
• Le nombre de pièces peut faire balancer les votes naturellement étant donné que les
transactions d’un montant élevé peuvent être admissibles à davantage de transactions.
Cependant, l’algorithme dépend principalement des activités surveillées par chaque
utilisateur et pas nécessairement du montant qu’ils effectuent.[22]
Les riches peuvent ne pas continuer à s’enrichir injustement sur la plateforme car le
montant d’argent en possession d’un individu n’est pas le seul facteur à prendre en compte
lors de la mesure de la réputation d’un compte.
Un problème brûlant avec cette méthode est l’utilisation de transactions factice qui au-
raient récompensé les gens pour avoir envoyé des transactions de va-et-vient pour tromper
l’algorithme. L’utilisation de transactions factices est un problème que NEM (New Economy
Movement : un groupe d’organisations qui tentent de restructurer le système économique) et
d’autres acteurs majeurs doivent encore épuiser.
Chapitre 3. Algorithmes de consencus 31
3.4 Conclusion
Comme nous avons vu, aucun des algorithmes de consensus même en utilisant une énorme
quantité de ressources, ne fournit pas une soulution parfaite aux exigences de mécanisme de
consensus dans une blockchaine. Chacun d’eux a les faiblesses qui mettent le réseau en danger.
Cependant, il vaut la peine d’envisager des algorithmes de consensus uniquement comme
outils pour assurer la stabilité du réseau. Enfin, à partir de tous consensus discutés dans ce
chapitre, il parait que la preuve de travail fournit aux réseaux la plus grande fiabilité car elle
empêche les attaques à longue portée. Les performances de cet algorithme et l’algorithme de
PoS sont traités, et évalués dans le prochain chapitre.
Chapitre 4
Comparaison des algorithmes de
consensus
4.1 Introduction
L’objectif d’un mécanisme de consensus dans une Blockchain est de laisser les membres
du réseau s’accorder sur l’état actuel de l’historique des transactions en l’absence d’un organe
centralisé chargé de mettre á jour ce registre .
Comme nous avons déjá vu dans le chapitre précédent, il existe un ensemble des algo-
rithmes de consensus, qui sont variés en termes de performance (logicielle et matérielle) et
de sécurité. Ces critéres sont utilisés, dans notre projet, pour comparer deux algorithmes de
consensus discutés dans ce présent chapitre. Á cet égard, nous avons implémenté deux algo-
rithmes de consensus preuve de travail et preuve d’enjeu, avec l’utilisation de deux fonctions
de hachage, le SHA256 et le MD5.
Dans ce chapitre, nous présentons les différents moyens utilisés pour réaliser ce projet et
nous présentons les différents moyens et outils. Nous commencons tout d’abord avec l’idée
générale de notre projet , puis nous distinguons l’environnement de programmation et les
outils utilisés. Enfin nous discutons sur le processus complet de notre systéme Blockchain et
ses algorithmes pour analyser les résultats de la simulation obtenus.
32
Chapitre 4. Comparaison des algorithmes de consensus 33
• Le premier noeud parvenant á exhiber un hash gagnant acquiert ainsi le droit d’ajouter
le bloc afférent á la chaı̂ne et de réclamer la récompense de minage
• Dans notre solution, nous avons utilisé deux fonctions de hachage : SHA256 et MD5.
Pour l’algorithme de preuve d’enjeu PoS :nous avant utilisé le fonctionnement ellustré
dans la figure 4.3 .
4.3.2 Logiciel
Il existe plusieurs outils et langages de programmation pour implémenter ce projet. Nous
avons construit notre application en utilisant les outils suivants :
• HTML et CSS : Diverses options sont disponibles pour développer des Interfaces Gra-
phiques Utilisateurs (GUI). Dans notre projet, nous avons utilisé HTML et CSS á cause
de sa rapidité et facilité de créer des applications graphiques
• JavaScript (AJAX ) : utilisant pour envoyer et récupérer des données vers et depuis un
serveur de facon asynchrone,
• Pycharm : Vu que PyCharm est l’API Python est la plus compléte, nous avons choisi
de travailler avec. C’est un bon environnement de développement dédié au langage
Python.
Chapitre 4. Comparaison des algorithmes de consensus 36
• Clé prive et clé publique de l’envoyeur qui sont générées lors de la création du porte-
monnaie.
• Montent a envoyé.
• Nonce : est le nombre de cycle pour que le mineur obtient le hachage généré. La solution
est la génération d’un hache qui commence par 2 zéro.
• Minage : le hash généré commence par 2 zéros (au lieu de 4 zéro pour minimiser un
peu le temps d’exécution ).
Chapitre 4. Comparaison des algorithmes de consensus 37
4.4.2 Localhost
Nous avons testé notre solution en premier lieu localement sur une seule machine. Sur le
local host, nous avons utilisé 5 Noeud, en changeant á chaque fois le numéro de port. Par
exemple :
Notre application contient plusieurs fenêtres ( hash, block, transaction, Blockchain, pa-
ramétres ,ect) dans chaque noeud permis ces fenêtres nous présentent les plus importents
dans les lignes suivants :
4.4.3.1.1 Paramétres
• Cette fenêtre sert á sélectionner l’algorithme de consensus qu’on veut appliquer sur le
réseau Blockchain.
4.4.3.1.2 Minage d’un bloc Exemple minage d’un bloc de données avec PoW en fonc-
tion de Hash MD5.
• Sur cette page, nous devons créer un porte-monnaie (wallets) pour stocker de l’argent
afin de se permettre d’effectuer un paiement (ou une transaction).
• La création d’un porte-monnaie consiste á affecter une clé privée masqué et une clé
publique que tout le monde peut la voir.
• Liste des transactions : tableau de transactions et le Bouton Mine (seront affiché chez
le mineur).
Dans ce cas on a appliqué les algorithmes de consensus PoW puis PoS avec la fonction de
hachage SHA256, dont le PC1 est mineur. Les résultats sont présentés dans le (tableau 4.3),
en termes de temps de hachage et temps de minage.
Chapitre 4. Comparaison des algorithmes de consensus 42
Les résultats d’application des algorithmes de consensus PoW et PoS avec la fonction de
hachage MD5 dont le pc1 est mineur sont présentés dans le tableau 4.4, en terme de temps
de hachage et temps de minage.
Dans ce cas on a appliqué les algorithmes de consensus PoW puis PoS avec la fonction de
hachage SHA256, dont le PC2 est mineur. Les résultats sont présentés dans le tableau 4.5,
en termes de temps de hachage et temps de minage.
Chapitre 4. Comparaison des algorithmes de consensus 43
Les résultats d’application des algorithmes de consensus PoW et PoS avec la fonction de
hachage MD5 dont le pc2 est mineur sont présentés dans le tableau 4.6 , en terme de temps
de hachage et temps de minage.
• Le temps de minage dans la preuve de travail est plus élevé par rapport á la preuve
d’enjeu.
Chapitre 4. Comparaison des algorithmes de consensus 44
4.7 Conclusion
Dans ce chapitre nous avons abordé la partie implémentation de notre application de l’ana-
lyse des algorithmes de consensus dans la Blockchain. Nous avons commencé par présenter
le réseau Blockchain qui a été utilisé pour générer et tester et évaluer les performances des
algorithmes. Nous avons également présenté les différences prétraitements et les démarches
réalisé pour effectuer des transactions et réalisé la chaine des blocs ainsi les métriques utilisées
pour mesurer les performances des consensus. Enfin, nous avons terminé par la simulation et
par la discussion des résultats obtenus.
Conclusion générale
Sans mécanismes de consensus, nous n’aurions pas de système décentralisé pair à pair
tolérant aux pannes. C’est aussi simple que ça. Alors que la preuve de travail et la preuve
d’enjeu sont certainement les choix les plus populaires, de nouveaux mécanismes apparaissent
de temps en temps. Il n’y a pas de mécanisme de consensus parfait , mais il est intéressant
de voir ces nouvelles crypto-monnaies sortir avec leurs propres protocoles. En somme, une
blockchain est caractérisée par son consensus qui dépend de sa synchronie et de la nature de
sa tolérance aux pannes. Ces deux facteurs déterminent la sécurité de la blockchain (quand
est-ce que le consensus est possible et à quelles failles il est robuste) mais aussi sa perfor-
mance. Comme nous avons vu, aucun des algorithmes de consensus, même en utilisant une
énorme quantité de ressources, ne fournit pas solution absolue aux problème de mécanisme
de consensus dans une blockchaine. Chacun d’eux a les faiblesses qui mettent le réseau en
danger.
Dans ce mémoire, nous avons analysé un ensemble des algorithmes de consensus en met-
tant l’accent sur leur principe,leurs avantages et leurs inconvénients. Ainsi, nous avons im-
planter deux célèbres algorithmes PoW et PoS, et tester leurs performances en terme de
temps de hachage et temps de minage, en utilisant deux algorithmes de hachage , le MD5 et
SHA256. Nos tests sont fait sur une machine locale et sur un réseau.
Comme perspectifs, nous proposons :
• Proposer des améliorations pour les algorithmes existants, en jouant sur leurs pa-
ramètres par exemple.
45
Bibliographie
[7] FERRéOL GODEBARGE and ROMAIN ROSSAT. Principes clés d’une application
Blockchain. PhD thesis, Université EM Lyon Business School, 2016.
[8] SHAOAN XIE ZIBIN ZHENG. school of data and computer science. Binance academy
traduit par l’auteur/ binance academy, publié 2017.
[9] FERRéOL GODEBARGE and ROMAIN ROSSAT. Principes clés d’une application
Blockchain. PhD thesis, Université EM Lyon Business School, 2016.
[11] PRAPATH SIRIWARDENA. The Bitcoin Transaction. Apress, Berkeley, CA, publié
2018.
46
Bibliographie 47
[14] THOMAS HERBST. C’est quoi le mining. CRYPTOAST, mis à jour le 4 août 2020.
[16] SATOSHI NAKAMOTO. Bitcoin : A peer-to-peer electronic cash system (white paper).
URL : https ://bitcoin. org/bitcoin. pdf, publié 2008.
[22] SAL MIAH. Série technique blockchain, (série en 5 parties - partie 5) notion de base de
la blockchain pow vs pos vs poi. CryptoDigest, publié 8/06/2018.
[26] SENAT. les notes scientfique de l’office note numéro 4 : comprendre les blockchain.
publié Avril 2018.
[27] MELANIE SWAN. Blockchain : Blueprint for a new economy. ” O’Reilly Media, Inc.”,
publié en 2015.