Vous êtes sur la page 1sur 28

Chapitre 3 :

Algorithmes de Consensus
Algorithmes de consensus – Introduction 2

Replication for fault tolerance


u Initial Context
u Computing duplication over multiple machines to ensure availability
and continuity of service even in presence of faulty processors
u Machines have to reach consensus on the correct common obtained
result
u Applications
u Fault tolerant Processors
u Distributed file systems
u Distributed data bases
u Blockchain

Hanen IDOUDI
La défaillance – panne 3

u Modèles de défaillances
u Défaillance totale (Fail-stop)
u Défaillance Byzantine

u Modèle de réseau
u Synchrone
u Tous les messages arrivent en un temps borné
u Asynchrone : Les messages peuvent être dupliqués, retardés, perdus

Hanen IDOUDI
Défaillance Byzantine 4
u Le problème des généraux byzantins :

Des génér aux de l’armée byzantine campent autour d’une cité ennemie. Ils ne
peuvent communiquer qu’à l’aide de messagers et doivent établir un plan de bataille
commun (attaque ou retraite), faute de quoi la défaite sera inévitable. Cependant un
certain nombre de ces généraux peut s’avérer êt re des traît res, qui essayeront donc de
semer la confusion parmi les autres. Le problème est donc de trouver un algorithme
pour s’assurer que les généraux loyaux arrivent tout de même à se mettre d’accord sur
un plan de bataille.

u Réseau non fiable, absence de confiance, compromission de noeuds


èNœud compromis è informations erronées ou incohérentes

Hanen IDOUDI
4
Le Consensus
Le problème des généraux byzantins :
Réseau non fiable,
Défaillance absence de confiance, compromission
Byzantine 5 de noeuds
Nœud compromis informations erronées ou incohérentes
Le problème des généraux byzantins :

Exemple: cas de 2 généraux et 1 commandant


u Exemple: cas de 2 généraux et 1 commandant

Cas 1: Cas
Commandant malveillant
1: Commandant malveillant Cas
Cas 2: ungénéral
2: Un général malveillant (G2)
malveillant

C C
Attaque Défense Attaque Attaque
Défense
Défense Défense
G1 G2 G1 G2
Attaque Attaque
? ?

Hanen IDOUDI
Les Miners doivent se mettre d’accord sur la validité (authenticité),des
données insérées dans le blockchain,
décision concernant l’ajout des nouvelles transactions
Hella Kaffel-Ben Ayed Blockchain 2019 27/11/2019
Défaillance Byzantine 6

u Définition
u Défaillance d’un ou plusieurs participants au consensus dans laquelle
les participants défaillants peuvent paraître sains mais ne suivent pas le
protocole.

u Inclus
u Programmes défaillants
u Attaquant malicieux

Hanen IDOUDI
Problème des réseaux ouverts 7
u Les communications ne sont pas authentifiées
u Les nœuds vont et viennent
u Le nombre de participants est fluctuant

u Conséquences
u Il est à présent possible de créer un grand nombre de noeuds malicieux
à la volées, et donc d’obtenir la majorité (Sybil attack).
u Il faudra donc s’assurer que casser le consensus est trop coûteux.

u Cas des Blockchain publiques – permissionless

Hanen IDOUDI
Algorithmes de consensus et Blockchain -
8
Définition
u Consensus = agrément établi entre les nœuds sur le nouveau bloc
validé et sur les nœuds qui vont ajouter le nouveau bloc à la
chaîne,

u è valider l’ordre, la validité des requêtes ou des transactions


envoyées sur le réseau d’une blockchain

u è Rémunération d’un noeud

Hanen IDOUDI
Algorithmes de consensus et Blockchain -
9
Définition
u Deux types d’algorithmes de consensus:
u Par preuve:
u Les nœuds doivent montrer (prouver) leur qualification pour pouvoir ajouter
un nouveau bloc.
u Blockchain publiques (nombre de nœuds élevé) : Le meilleur peut recevoir
une récompense (reward)
u Plusieurs algorithmes : proof of work (PoW), proof of stake (PoS), proof of
elapsed time, proof of luck, and proof of space.
u Par vote:
u La décision finale est basée sur le résultat trouvé par la majorité des
nœuds.
u Blockchain privées ( nombre de nœuds réduit) : Au moins T nœuds doivent
trouver la solution
u PBFT

Hanen IDOUDI
Preuve de travail (Proof of Work- PoW) 10
u Implémenté par BITCOIN :
u Objectif : Contrôler arbitrairement la difficulté de la tâche de création
et d’ajout de blocs afin de rendre le « minage » difficile et par la même
occasion empêcher les mineurs malveillants d’inonder le réseau de
blocs.
u Calcul d’une donnée (minage) qui ne peut être obtenue que par la
réa lisation d’une tâche fortement consommatrice en puissance de
calcul (challenge crytopgraphique).
u Pour qu’un bloc soit accepté par l’ensemble des participants (et
obtenir le consensus), un mineur doit fournir une preuve de travail
(PoW) qui prend en compte toutes les informations du bloc.

u Difficulté du challenge ajustée tous les 2016 blocks


• Temps moyen d’ajout de bloc: 1 bloc/10minutes
è Latence
Hanen IDOUDI
Preuve de travail (Proof of Work- PoW) 11
u Minage : Il s’agit d’une opération de hachage inverse consistant à
déterminer un nombre (nonce) tel que le hachage SHA-256 de la
paire «ensemble de données ou transactions représentatives du
bloc», et le «nonce» choisi est inférieur à un seuil donné.

Prev_Hash Timestamp
H()
Tx_Root Nonce

Trouver une valeur du nonce tel que :


H( _ ) < valeur

Hash : 000000000000000001e2e3256cc81bf2c1c3e1d9230b1124c5cfd411adf03be2e

Hanen IDOUDI
Nonce: 10409895
Preuve de travail (Proof of Work- PoW) Bloc 44
12
H()
(Bloc 43)

AàB
u Si un ensemble de Miners
Bloc 42 Bloc 43
trouvent la solution avant de Signatur
H() H() e
recevoir le broadcast du (Bloc 41) (Bloc 42) PoW
gagnant
Données Données H()
(Bloc 44)
Signatur Signatur
u Des embranchements se créent e e Bloc 44
à fork PoW PoW
H()
H() H() (Bloc 43)
(Bloc 42) (Bloc 43)
AàC
u à Que faire si plusieurs versions
de la blockchain circulent? Signatur
e
PoW
H()
(Bloc 44)
Hanen IDOUDI
Preuve de travail (Proof of Work- PoW) 13
u La meilleur des chaînes : fitness
u La règle de consensus consiste à choisir la chaîn e de blocs valides la
plus longue.
u Implicitement, il s’agit de celle qui a nécessité ́ le plus de travail.
u Une transaction ancienne est plus sûre

AàB Bloc orphelin


C

Hanen IDOUDI
Preuve de travail (Proof of Work- PoW) 14
u PoW est un problème mathématique intensif en calcul
u Fortement critiqué car il est considéré comme excessivement
difficile, lourd en calcul et très coûteux en termes de
consommation d'énergie.
u Cependant, il n’est pas possible de réduire le travail lié au PoW :
u Le PoW doit être difficile car, si on veut obtenir une «rémunération»
(Bitcoin) à la suite d'un travail exécuté, cela ne peut pas être facile à
faire.

u PoW doit être une tâche asymétrique : difficile à résoudre et très


facile à vérifier : un mineur a besoin de beaucoup de temps pour
trouver le bon nonce mais les autres mineurs du réseau peuvent
immédiatement vérifier la validité de la solution trouvée.

Hanen IDOUDI
Preuve de travail (Proof of Work- PoW) 15
u PoW est un système démocratique : Tout le monde peut le faire. En
théorie, tout dispositif peut résoudre le problème de hachage.

u PoW rend difficile non seulement l’ajout de nouveaux blocs à la


chaîne, mais également la modification de blocs précédemment
ajoutés.
à Résilience et Sécurité

Hanen IDOUDI
Preuve de travail (Proof of Work- PoW) 16
u Sûreté et progression en PoW
u Propriétés probabilistes, si la majorité de la puissance de calcul est
honnête :
u Sûreté
u Les blocs sont construits plus rapidement sur une chaine valide. Un bloc non
valide deviendra rapidement orphelin.

u Progression
u La probabilité qu’un bloc soit inclus est lié à la longueur de la chaîne sur
laquelle il est construit.
u Les nœuds sont donc incités à inclure les blocs proposés par d’autres.

Hanen IDOUDI
Preuve d’enjeux (Proof of Stake - PoS) 17
u Proof of Stake remplace le minage PoW par un mécanisme dans
lequel les blocs sont validés en fonction du nombre de coins
verrouillés en stake (enjeu) par les participants.
u Les participants au réseau doivent posséder une certaine
quantité de cryptomonnaies de ce réseau à une « mise en
jeu » ou un « enjeu ».
u Leader désigné de manière pseudo-aléatoire : La Blockchain est
sécurisée par un processus d'élection pseudo-aléatoire prenant en
compte la richesse du nœud et l'âge des coins (le temps pendant
lequel les pièces sont verrouillées) auxquels s’ajoute un facteur de
randomisation.
u Le validateur de chaque bloc (également appelé forgeur) est
déterminé par un investissement de la crypto-monnaie en elle-
même et non par la quantité de puissance de calcul allouée.

Hanen IDOUDI
Preuve d’enjeux (Proof of Stake - PoS) 18

u Alignement des intérêts : producteurs de blocs doivent posséder


beaucoup de jeton, si la chaîne disfonctionne, leurs jetons perdent
de la valeur.

u Ethereum, Peercoin, BitShares, ShadowCash, Qora, Nxt, BlackCoin,


etc.

Hanen IDOUDI
Preuve d’enjeux (Proof of Stake - PoS) 19
u PoS est basé sur des algorithmes déterministes :
u Les validateurs de blocs sont élus en fonction de la nature de l'enjeu.
u Si la sélection du solde du compte comme seul critère pour définir la
validité du prochain bloc à une centralisation non souhaitée : par
conséquent, les membres riches d'un réseau bénéficieraient de grands
avantages.
u Différentes méthodes de sélection pour définir un enjeu, ou une
combinaison d'enjeux :
u le solde effectif des cryptomonnaies sur un compte,

u un temps mort pendant lequel les tokens doivent être dans une blockchain
pour contribuer à la génération de blocs,
u l'âge de la cryptomonnaie (le nombre de cryptomonnaies détenues dans
un wallet multiplié par le nombre de jours que ces cryptomonnaies ont
passé dans ce wallet),
u d'autres facteurs.

Hanen IDOUDI
Preuve d’enjeux (Proof of Stake - PoS) 20
Sureté et progression en PoS

u Gestion des forks


u Punir la participation à plusieurs chaîn es :
u Dép ôt de garantie pour la créa tion d’un bloc
u Dép ôt détruit ou redistribué si construction de blocs sur deux chaîn es
différentes.
u Progression
u Priorités pseudo-aléa toire pour désigner une liste de leaders auxquels
sont assigneeś des priorités. Si plusieurs leaders injectent un block, la
chaîn e comportant le bloc du leader le plus prioritaire est retenue.

Hanen IDOUDI
Preuve d’enjeux (Proof of Stake - PoS) 21
Avantages
u PoS comble certaines des lacunes d'un système PoW.
u Les utilisateurs n'ont plus besoin d'investir dans des ordinateurs puissants
dans le seul but d'avoir une chance de gagner.
u PoS nécessite moins de puissance informatique et a donc également
moins d'impact sur l’énergie et l'environnement que la PoW.
Inconvénients
u Certains réseaux PoS présentent des défauts majeurs, selon les
variantes utilisées pour définir l'enjeu d'un réseau.
u Les créateurs de blocs peuvent exercer une très grande puissance s'ils
sont peu nombreux dans le réseau et qu'ils valident toutes les
transactions.
u Le deuxième défaut majeur est qu'un certain nombre de systèmes PoS
favorisent les utilisateurs riches : plus vous avez de cryptomonnaies, plus
vous avez d’impact sur les votes.
Hanen IDOUDI
Delegated PoS 22

u Variante du POS
Délégation
u Les possesseur de jetons peuvent déléguer leur droit de production de
blocs.
u Les utilisateurs du réseau sélectionnent un nombre suffisant de
délégués (également appelés témoins) pour assurer la
décentralisation du réseau.
u Les délégués élus vérifient les transactions et génèrent des blocs.
u Si un délégué reçoit une récompense globale, il la partage
généralement avec les wallets qui ont voté pour lui et qui ont
également un enjeu dans le réseau.

u Avantage
u Nombre de proposeurs/validateurs réduits à Infrastructure plus légère

Hanen IDOUDI
Practical Byzantine Fault Tolerance (PBFT) 23

u Le réseau atteint un consensus malgré les menaces. Une des


principales menaces étant le comportement malveillant arbitraire
(byzantine faults) d’une ou plusieurs nœuds (Miners).
u PBFT: un réseau blockchain de N nœuds peut résister à F nombres
de nœuds byzantins tant que F < (N-1)/3.
u PBFT garantis qu’un minimum de 2*F + 1 nœuds atteignent le
consensus avant de l’inscrire dans le registre.
u PBFT s’assure de l’intégrité des données malgré les fautes
byzantines si les fautifs sont inférieurs à 1/3 des nœuds du réseau.

u Blockchain privées/permissionned : Hyperledger

Hanen IDOUDI
Consensus algorithms - strengths and
weaknesses 26
Requires validators to solve difficult cryptographic puzzles.
Pros: Works in untrusted networks.
Cons: Uses much energy, and slow to confirm transactions.
Proof of work Example usage: Bitcoin and Ethereum

Requires validators to hold currency in escrow.


Pros: Works in untrusted networks.
Cons: Requires intrinsic (crypto)currency, and the ”Nothing at stake” problem.
Proof of stake
Example usage: Nxt

Wait time in a trusted execution environment randomizes block generation.


Pros: Efficient.
Proof of
Cons: Requires processor extensions.
Elapsed Time Example usage: Hyperledger Sawtooth
Consensus algorithms - strengths and
27
weaknesses
Validators apply received transactions without consensus.
Pros: Quick, and suited to development.
Cons: No consensus, which can lead to divergent chains.
Solo /
No-ops

Practical Byzantine Fault Tolerance (PBFT) implementations


Pros: Reasonably efficient and tolerant against malicious peers.
Cons: Validators are known and connected.
PBFT-based

Ordering service distributes blocks to peers.


Pros: Efficient and fault-tolerant.
Cons: Does not guard against malicious activity.
Kafka /
Zookeeper
Consensus algorithms - Performances 28

u Consensus tradeoffs: Latency versus scalability


Consensus algorithms - Performances 29

u Consensus tradeoffs: Permissioned versus permissionless


Références 28

u Seyed Mojtaba Hosseini Bamakan, Amirhossein Motavali, Alireza


Babaei Bondarti, A survey of blockchain consensus algorithms
performance evaluation criteria, Expert Systems with Applications,
Elsevier, Volume 154, 2020,
u ByR. Indrakumari, T. Poongodi, Kavita Saini, B. Balamurugan,
Consensus Algorithms – A Survey, (Book Chapter), Blockchain
Technology and Applications, Edition Taylor and Francis, 2020
u S. J. Alsunaidi and F. A. Alhaidari, "A Survey of Consensus Algorithms
for Blockchain Technology," 2019 International Conference on
Computer and Information Sciences (ICCIS), Sakaka, Saudi Arabia,
2019, pp. 1-6, doi: 10.1109/ICCISci.2019.8716424.

Hanen IDOUDI

Vous aimerez peut-être aussi