Contenu connexe Similaire à La Duck Conf - Tour d'horizon des algorithmes de consensus en 2021 (20) Plus de OCTO Technology (20) La Duck Conf - Tour d'horizon des algorithmes de consensus en 20211. 1
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Les nouveaux consensus
blockchain
DuckConf 2021
Aymeric Bethencourt & Frank Hillard
Version 1.4
4. 4
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Consensus
[kɔ̃.sɛ̃.sys] / Du mot latin qui signifie « accord » ou « sentiment commun ».
Moyen par lequel une série d'électeurs indépendants (souvent appelés
« validateurs ») parviennent à un accord commun sur une décision.
Exemple : Démocratie, Dictature, Compromis, Normes Aéronautique, ...
5. 5
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Algorithme de Consensus
Consensus appliqué à l’informatique
Un programme informatique permettant à ses utilisateurs de se mettre
d’accord sur l'état des données dans un réseaux distribué.
Exemples : Calcul distribué, base de donnés distribuée, ...
6. 6
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Blockchain
[blok] [cheyn]
Une base de données décentralisée [...]
Exemples: Bitcoin, Ethereum, Tezos, ...
7. 7
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Proof-of-X
Consensus appliqué à la blockchain
Un algorithme permettant aux utilisateurs de la blockchain de se
mettre d’accord sur l'état des données (e.g. transactions) et de
sélectionner le prochain validateur.
Exemples : Proof-of-work, Proof-of-stake, Proof-of-authority,...
8. 8
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Nœud
[nø]
Un nœud est un ordinateur qui détient une copie du registre des
transactions et qui l'entretient grâce à ses interactions avec les autres
noeuds.
9. 9
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Illustration d’un consensus
Sans consensus / Données désynchronisé
12, 4, 5
12, 4, 8
12, 4, 5
12, 4, 7
12, 4, 7
10. 10
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Illustration d’un consensus
Consensus, but # 1 : Synchroniser les données / Choix de la chaîne
12, 4, 7
12, 4, 7
12, 4 , 7
12, 4, 7
12, 4, 7
11. 11
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Illustration d’un consensus
Consensus, but # 2 : Choix du prochain validateur.
12, 4, 7, ?
12, 4, 7, ?
12, 4 , 7, ?
12, 4, 7, ?
12, 4, 7, ?
12. 12
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Illustration d’un consensus
Consensus, but # 2 : Choisir le prochain validateur.
12, 4, 7, 16
12, 4, 7, ?
12, 4 , 7, ?
12, 4, 7, ?
12, 4, 7, ?
13. 13
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Illustration d’un consensus
Puis propagation aux autres noeuds
12, 4, 7, 16
12, 4, 7, 16
12, 4 , 7, 16
12, 4, 7, 16
12, 4, 7, 16
14. 14
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Oui mais...
๏ Coupure réseau / Délai
๏ Noeuds défectueux ou malveillants
Exemple du problème des généraux byzantins :
> un général peut être corrompu
> un messager peut être corrompu
> un message peut être corrompu
ATTACK!
ATTACK!
RETREAT!
Problème insoluble du
Partitionnement
15. 15
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Théoreme CAP
Cohérence
(Consistency)
Disponibilité
(Availability)
Tolérance au
partitionnement
(Partition Tolerance)
CA CP
AP
Cohérence (Consistency) : tous les nœuds du
système voient exactement les mêmes données au
même moment.
Disponibilité (Availability) : garantie que toutes les
requêtes reçoivent une réponse.
Tolérance au partitionnement (Partition Tolerance) :
aucune panne moins importante qu'une coupure
totale du réseau ne doit empêcher le système de
répondre correctement.
16. 16
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Théorème CAP sur la blockchain
Cohérence
(Consistency)
Disponibilité
(Availability)
Tolérance au
partitionnement
(Partition Tolerance)
CP
AP
La blockchain a besoin de la Tolérance au
partitionnement.
> Il faut trouver un compromis entre Cohérence et
Disponibilité pour :
● avoir un niveau de cohérence suffisant
● atteindre une convergence le plus
rapidement possible (Finalité)
18. 18
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Le partitionnement implique une réconciliation.
Synchrone vs Asynchrone
Synchrone Asynchrone
Finalité immédiate…
...mais tous les validateurs
doivent participer, ou la
blockchain s'arrête.
Finalité probabiliste, possible
re-organisation…
…mais acceptable (> 99%)
rapidement.
19. Coin
Coin
!
19
La Duck Conf by OCTO Technology © 2021 - All rights reserved
1. Consensus Classiques
2. Consensus Nakamoto
3. Consensus Avalanche
21. Coin
Coin
!
21
La Duck Conf by OCTO Technology © 2021 - All rights reserved
et le problème des généraux Byzantins.
Practical Byzantine Fault Tolerant
Chaque validateur communique avec tous les autres validateurs en suivant une séquence.
Source: https://www.researchgate.net/
Explosion quadratique du nombre de messages quand le nombre de validateur augmente.
Scalabilité limitée. Vulnérable aux attaques dès 33%.
22. 22
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Practical Byzantine Fault Tolerant
et le problème des généraux Byzantins.
Finalité obtenue a chaque bloc. Chaine unique. Pas de fork.
23. 23
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Théoreme CAP
Cohérence
(Consistency)
Disponibilité
(Availability)
Tolérance au
partitionnement
(Partition Tolerance)
CP
Consensus Synchrone. Cohérence avant Disponibilité.
Exemples: Tendermint, Algorand, Ripple, Stellar, Dfinity, Hot-Stuff
25. Coin
Coin
!
25
La Duck Conf by OCTO Technology © 2021 - All rights reserved
1. Consensus Classiques
2. Consensus Nakamoto
3. Consensus Avalanche
26. Coin
Coin
!
26
La Duck Conf by OCTO Technology © 2021 - All rights reserved
2a. Selection des validateurs
2b. Selection de la chaine
28. 28
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Proof of Work
Bitcoin, Ethereum, etc...
Le prochain validateur est celui capable de résoudre un problème mathématique arbitraire en
premier. En compétition contre les autres mineurs! Récompense au minage.
Transactions :
0.3 BTC from 0x434E... to 0x720D…
0.1 BTC from 0x72FE... to 0x93EB...
2.6 BTC from 0x927F... to 0xBBC3...
Nonce : 0
Hash : 234AF98872EE
BLOC INVALIDE
Transactions :
0.3 BTC from 0x434E... to 0x720D…
0.1 BTC from 0x72FE... to 0x93EB...
2.6 BTC from 0x927F... to 0xBBC3...
Nonce : 32918
Hash : 0000232FEB
BLOC VALIDE
29. 29
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Consommation énergétique annuelle (Janvier 2021)
Bitcoin : 78 TWh
Suisse: 58 TWh
France : 473 TWh
Proof of Work
Source: cbeci.org
31. 31
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Proof of Stake
Les possesseurs de tokens les place dans un coffre (staking).
32. 32
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Proof of Stake
Le consensus sélectionne un coffre au hasard avec un probabilité proportionnelle au nombre de
tokens qu’il contient.
33. 33
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Proof of Stake
La validateur sélectionné propose un nouveau bloc.
Transactions :
0.3 ETH from 0x434E... to 0x720D…
0.1 ETH from 0x72FE... to 0x93EB...
2.6 ETH from 0x927F... to 0xBBC3...
0.3 ETH from 0x434E... to 0x720D…
0.1 ETH from 0x72FE... to 0x93EB...
2.6 ETH from 0x927F... to 0xBBC3...
0.3 ETH from 0x434E... to 0x720D…
...
34. 34
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Proof of Stake
Tous les autres validateurs vérifient le bloc.
Transactions :
0.3 ETH from 0x434E... to 0x720D…
0.1 ETH from 0x72FE... to 0x93EB...
2.6 ETH from 0x927F... to 0xBBC3...
0.3 ETH from 0x434E... to 0x720D…
0.1 ETH from 0x72FE... to 0x93EB...
2.6 ETH from 0x927F... to 0xBBC3...
0.3 ETH from 0x434E... to 0x720D…
...
35. 35
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Transactions :
0.3 ETH from 0x434E... to 0x720D…
0.1 ETH from 0x72FE... to 0x93EB...
2.6 ETH from 0x927F... to 0xBBC3...
0.3 ETH from 0x434E... to 0x720D…
0.1 ETH from 0x72FE... to 0x93EB...
2.6 ETH from 0x927F... to 0xBBC3...
0.3 ETH from 0x434E... to 0x720D…
...
Proof of Stake
S'ils sont d’accord, le bloc est ajouté à la blockchain et le validateur reçoit une récompense.
Transactions :
0.3 ETH from 0x434E... to 0x720D…
0.1 ETH from 0x72FE... to 0x93EB...
2.6 ETH from 0x927F... to 0xBBC3...
0.3 ETH from 0x434E... to 0x720D…
0.1 ETH from 0x72FE... to 0x93EB...
2.6 ETH from 0x927F... to 0xBBC3...
0.3 ETH from 0x434E... to 0x720D…
...
Transactions :
0.3 ETH from 0x434E... to 0x720D…
0.1 ETH from 0x72FE... to 0x93EB...
2.6 ETH from 0x927F... to 0xBBC3...
0.3 ETH from 0x434E... to 0x720D…
0.1 ETH from 0x72FE... to 0x93EB...
2.6 ETH from 0x927F... to 0xBBC3...
0.3 ETH from 0x434E... to 0x720D…
...
36. 36
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Proof of Stake
S'ils ne sont pas d’accord, le validateur perd son argent et le processus recommence.
37. 37
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Proof of Stake
Consommation énergétique très basse.
Mais critiqué : Les riches deviennent plus riche….
38. 38
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Delegated Proof of Stake
Exemple d’implémentation: Blockchain EOS
1. Les candidats se font connaître (engagement
avec la communauté, contribution au réseau,
etc…)
2. Les gens votent avec leurs tokens pour des
candidats (délégation, pas de transfert).
3. Les N top candidats avec le plus de tokens alloués procèdent à un PoS classique entre eux.
39. 39
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Delegated Proof of Stake
Système plus démocratique.
Election de validateurs (pas forcement les plus riches).
Acteurs suspects rapidement éliminé par la communauté.
Plus rapide que Proof-of-stake.
EOS
40. 40
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Weight
Burn
Et les autres...
Elapsed time
Importance
Capacity
Activity
Proof of..
41. Coin
Coin
!
41
La Duck Conf by OCTO Technology © 2021 - All rights reserved
2a. Selection des validateurs
2b. Selection de la chaine
42. 42
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Sélection de la chaîne
Solution #1: Chaine la plus longue
Finalité probabiliste. La chaîne la plus longue gagne.
Vulnérable aux attaque a 51%, e.g. attaque sur Bitcoin Cash en 2020.
fork
fork
Chaine la plus longue
43. 43
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Sélection de la chaîne
Solution #2: GHOST (Greedy Heaviest Observed SubTree)
Finalité probabiliste. La chaîne avec le plus de siblings (“oncles”).
Moins vulnérable aux attaques à 51%, mais attaque possible.
fork
Gagne sur Bitcoin
Gagne sur GHOST
44. 44
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Sélection de la chaîne
GHOST résiste aux attaques à 51% de type “long-term”
Chaîne “honnête” perd sur
Bitcoin
Chaîne “honnête”
gagne sur GHOST
Chaîne secrète de l’attaquant
Chaine “pirate”
gagne sur Bitcoin
45. 45
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Sélection de la chaîne
GHOST vulnérable aux attaques à 51% de type “balanced subtree”
Attaquant maintien des fork de même “poids” en minant sur plusieurs chaînes, partitionne
les validateurs et empêche temporairement la finalité.
fork
Les 2 sous arbres
ont le même
“poids”, les
validateurs ne
peuvent pas
décider.
attaquant
46. 46
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Théoreme CAP
Cohérence
(Consistency)
Disponibilité
(Availability)
Tolérance au
partitionnement
(Partition Tolerance)
AP
Consensus Asynchrone. Disponibilité avant Cohérence.
Exemples: Casper TFG (Ethereum 1.0), Ark, Tezos, Ouroboros, NXT
47. 47
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Sélection de la chaîne
Disponibilité avant Cohérence.
Nakamoto
Classique
Hybrid
Cohérence avant Disponibilité.
Favorise la Disponibilité mais fournit
le plus de Cohérence possible.
fork
fork
fork
fork
48. Coin
Coin
!
48
La Duck Conf by OCTO Technology © 2021 - All rights reserved
1. Consensus Classiques
2. Consensus Nakamoto
3. Consensus Avalanche
49. 49
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Avalanche
White paper 2018 by Team Rocket
Production 2020
En cas de conflit, chaque validateur va demander à d’autres validateurs tirés au
hasard leur avis sur le conflit.
Une super-majorité émerge suite à un processus probabiliste appelé Snowball.
Un nouveau consensus
50. 50
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Avalanche
Slush : Demande à 10 validateurs leur avis sur le conflit.
Super-majorité
Snowflake : mémoire temporaire permettant de converger.
Snow ball : mémoire persistante mesurant la confiance.
57. 57
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Avalanche
- Convergence rapide, finalité rapide.
- Scalable, un noeud ne parle pas avec tous les noeuds.
- Forte décentralisation, beaucoup de validateurs possibles (1,000,000).
- Non permissionné, pas d’autorité, tout le monde peut participer.
en résumé
Pas résistant aux attaques Sybil (pseudo-spoofing) et doit être combiné avec
PoS ou PoW.
59. 59
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Ca part dans tous les sens, “usine à gaz”
Conclusion
Résilience
Résistance aux attaques reste encore un sujet
Hybrides de plusieurs consensus
Faible consommation énergétique
60. Coin
Coin
!
60
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Les consensus de blockchain évoluent vers un meilleur compromis
entre cohérence et disponibilité, tout en étant à la fois moins
énergivore et plus performant.