introduction à la chaîne de blocs - séminaire comelec · 2008 : nakamoto [9], contexte...
TRANSCRIPT
![Page 2: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/2.jpg)
Objectifs du séminaire
Présenter les principes de bases de la chaîne de blocs• Notion de chaîne de blocs• Problème du consensus distribué• Solutions proposées dans le cadre de la chaîne de blocs :
preuves de travail et preuves d’enjeu
2/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 3: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/3.jpg)
Plan
Fonctions de hachage
IntroductionDéfinitionHistorique
Consensus distribuéProblème du consensus distribuéConsensus dans la chaîne de blocsPreuve de travailPreuve d’enjeu
Conclusion
3/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 4: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/4.jpg)
Fonction de hachageHash function
H : {0,1}∗ → {0,1}n
x 7→ h = H(x)
Propriétés• Compression : L’entrée x est de taille arbitraire (finie) et la
sortie est de taille fixe n• Facilité de calcul : Étant donné H et une entrée x , h = H(x)
est facile à calculer (par un ordinateur...)Vocabulaire• h est appelé hash, haché ou condensé
4/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 5: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/5.jpg)
Fonction de hachage à sens unique(One-way hash function)
Propriétés• Compression et facilité de calcul• Résistance à la première pré-image : Étant donné y , il est
difficile de trouver une pré-image x telle que y = H(x)• Résistance à la seconde pré-image : Étant donnés x et y
tels que y = H(x), il est difficile de trouver une deuxièmepré-image x ′ 6= x telle que H(x) = H(x ′)
5/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 6: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/6.jpg)
Fonction de hachage résistante auxcollisions(Collision resistant hash function)
Propriétés• Compression, facilité de calcul, résistance à la première et
à la seconde pré-image• Résistance aux collisions : Il est difficile de trouver x et
x ′ 6= x tels que H(x) = H(x ′)
6/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 7: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/7.jpg)
Plan
Fonctions de hachage
IntroductionDéfinitionHistorique
Consensus distribuéProblème du consensus distribuéConsensus dans la chaîne de blocsPreuve de travailPreuve d’enjeu
Conclusion
7/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 8: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/8.jpg)
Plan
Fonctions de hachage
IntroductionDéfinitionHistorique
Consensus distribuéProblème du consensus distribuéConsensus dans la chaîne de blocsPreuve de travailPreuve d’enjeu
Conclusion
8/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 9: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/9.jpg)
Une chaîne de blocs
Une chaîne de blocs est une liste croissanted’enregistrements (blocs) liés entre-eux (chaîne) etsécurisée grâce à des fonctions cryptographiques(fonctions de hachage résistantes aux collisions)Chaque bloc de la chaîne contient• Le condensé cryptographique du bloc précédent• Des informations liées à l’application (transactions
monétaires, données mises en gage, enregistrements, etc.)
9/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 10: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/10.jpg)
Schématiquement
H(Blocn−3)
Données
Blocn−2
H(Blocn−2)
Données
Blocn−1
H(Blocn−1)
Données
Blocn
10/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 11: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/11.jpg)
Sécurité
À partir du condensé d’un bloc valide, il est possible devérifier qu’aucun bloc précédent dans la chaîne n’a étéaltéréSécurité basée sur la propriété de résistance à la secondepré-image de la fonction de hachage utilisée par la chaîne• En effet, le bloc i + 1 contenant le condensé du bloc
précédent i , altérer la chaîne reviendrait à trouver un blocBloc′
i 6= Bloc i tel que H(Bloc′i ) = H(Bloc i)
11/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 12: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/12.jpg)
Arborescence possible
Il peut y avoir des divergences pouvant mener à unestructure en arbre et non plus simplement une simple liste
12/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 13: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/13.jpg)
Problématique principaleLe consensus distribué
Quelle est la chaîne « valide » à prendre en considération(i.e. quel est le dernier bloc « valide »)?Problème exacerbé en présence de plusieurs utilisateursqui ne se font pas confiance• Si tout le monde se fait confiance, il suffit d’un serveur
centralisé indiquant le dernier bloc valide
→ Problème du consensus distribué
13/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 14: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/14.jpg)
Plan
Fonctions de hachage
IntroductionDéfinitionHistorique
Consensus distribuéProblème du consensus distribuéConsensus dans la chaîne de blocsPreuve de travailPreuve d’enjeu
Conclusion
14/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 15: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/15.jpg)
(Bref) Historique1991 : Habber, Stornetta [6], usage de chaînes de blocsliées et sécurisées cryptographiquement2008 : Nakamoto [9], contexte distribué et utilisation à desfins de monnaie électronique en évitant le problème de ladouble dépense : Bitcoin2011 : Namecoin [3], premier embranchement (fork ) de lachaîne Bitcoin pour de l’enregistrement distribué (pairesclé/valeur)2013 : Ethereum [1], chaîne dédiée à l’exécution decontrats intelligents (smart contract)2015 : Hyperledger [2], projet hébergé par la LinuxFondation, regroupant de nombreux industriels, pour ledéveloppement de registres distribués (distribued ledgers)basés sur des chaînes de bloc
15/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 16: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/16.jpg)
Plan
Fonctions de hachage
IntroductionDéfinitionHistorique
Consensus distribuéProblème du consensus distribuéConsensus dans la chaîne de blocsPreuve de travailPreuve d’enjeu
Conclusion
16/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 17: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/17.jpg)
Plan
Fonctions de hachage
IntroductionDéfinitionHistorique
Consensus distribuéProblème du consensus distribuéConsensus dans la chaîne de blocsPreuve de travailPreuve d’enjeu
Conclusion
17/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 18: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/18.jpg)
Description
Problème fondamental de l’informatique distribuéeUn certain nombre (pas nécessairement fixe ou connu)d’entités doivent se mettre d’accord sur une valeur (parexemple, le dernier bloc valide d’une chaîne de blocs)Problèmes potentiels• Fautes non malicieuses (disparition d’une entité : crash ou
problème réseau, délais de communication variables,partitionnement du réseau, etc.)
• Fautes potentiellement malicieuses (Byzantines) : un nœudpeut tenter de perturber le protocole
18/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 19: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/19.jpg)
Résultats théoriques importants
Contexte synchrone (délais des communications bornés)• Problème des généraux byzantins (Lamport, Shostak,
Pease [8]) : pas de solution si 3t ≥ n (t est le nombre detraîtres et n est le nombre de participants)
• Nombreux algorithmes développés comme par exemplePBFT (Practical Byzantine Fault Tolerance [4])
Contexte asynchrone (pas de limite supérieure au tempsde réponse d’un nœud)• Impossibilité du consensus si un nœud est défaillant
(Fischer, Lynch, Paterson [5])
19/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 20: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/20.jpg)
Plan
Fonctions de hachage
IntroductionDéfinitionHistorique
Consensus distribuéProblème du consensus distribuéConsensus dans la chaîne de blocsPreuve de travailPreuve d’enjeu
Conclusion
20/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 21: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/21.jpg)
Dans les chaînes de blocs
Objet du consensus : quel bloc constitue la tête de lachaîneDeux types de chaînes (en pratique un peu pluscompliqué)• Chaînes de blocs privées
– Les participants sont connus et authentifiés– Des algorithmes classiques comme PBFT peuvent être
utilisés• Chaînes de blocs publiques (Bitcoin...)
– Participants inconnus et variables (attaque Sybil : unadversaire peut créer de nombreux nœud sur le réseaupair-à-pair)
– Consensus implicite (détaillé par la suite)
21/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 22: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/22.jpg)
Consensus implicite dans les chaînespubliquesPrincipe simplifié
Un nœud propose un nouveau blocLes autres nœuds l’acceptent implicitement en étendant lachaîne à partir de celui-ci ou le rejettent en étendant lachaîne à partir du bloc précédent
22/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 23: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/23.jpg)
Consensus implicite dans les chaînespubliquesAlgorithme simplifié
1. Les transactions à inclure dans le prochain bloc sontdiffusées à l’ensemble des nœuds
2. Chaque nœud collecte l’ensemble des transactions etconstruit un nouveau bloc
3. À chaque tour, un nœud aléatoire diffuse son nouveau bloc4. Les autres nœuds acceptent ce nouveau bloc seulement si
toutes les transactions qu’il contient sont valides5. Les nœuds signifient l’approbation du bloc en incluant son
condensé dans le prochain bloc qu’ils créent
23/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 24: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/24.jpg)
Choix du nœud
Si choix purement aléatoire : risque d’attaque SybilProbabilité d’être choisi proportionnelle à une ressource• Puissance de calcul : preuves de travail (Proof-of-Work,
PoW)• Possession : preuves d’enjeu (Proof-of-Stake, PoS)
En espérant que personne ne puisse monopoliser cetteressource
24/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 25: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/25.jpg)
Plan
Fonctions de hachage
IntroductionDéfinitionHistorique
Consensus distribuéProblème du consensus distribuéConsensus dans la chaîne de blocsPreuve de travailPreuve d’enjeu
Conclusion
25/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 26: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/26.jpg)
Objectif
Objectif : sélectionner aléatoirement un nœud qui aura ledroit de proposer le prochain blocDans le cadre de la preuve de travail, la probabilité d’êtrechoisi est proportionnelle à la puissance de calcul d’unnœudRésoudre un problème particulier
26/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 27: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/27.jpg)
Propriétés des problèmes utilisés
La solution du problème doit être difficile à trouverCette difficulté doit pouvoir être adaptée (par exemple pourcompenser l’augmentation de la puissance de calcul avecle temps)La validité d’une solution doit être simple à vérifier parn’importe quel nœud
27/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 28: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/28.jpg)
Exemple de problème
Soit H une fonction de hachage utilisée comme un oraclealéatoireChaque bloc contient un champ particulier : nounceProblème : trouver une valeur de nounce tel queH(bloc) < V où V est une valeur fixe (difficulté réglable)Difficile : Pas d’autre solution que de tester toutes lesvaleurs possibles de nounceProbabilité de trouver en premier une valeur correctedirectement proportionnelle à la fraction de la puissancede calcul dont on disposeFacile à vérifier (1 appel à la fonction de hachage)
28/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 29: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/29.jpg)
Inconvénients
Les preuves de travail sont majoritairement utiliséesaujourd’hui dans les chaînes de blocs publiquesNéanmoins, nombreux inconvénients• Consommation énergétique très importante en pure perte
– Tous les nœuds du réseau ne participent pas, seulementquelques nœuds : les mineurs
• Le développement d’accélérateurs dédiés (GPU, FPGA,ASIC) à tendance à concentrer la puissance de calcul entrequelques groupes
– Coopératives de minage (mining pools)
• Nécessité de mécanismes d’incitation pour continuer àinciter les mineurs
29/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 30: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/30.jpg)
IncitationsNécessité d’incitations pour disposer de suffisamment demineursImpliquent la plupart du temps une notion de monnaievirtuelleClassiquement sous deux formes• Création de monnaie
– Le nœud trouvant le prochain bloc valide se voit attribuerune certaine somme de monnaie créée ex nihilo
– Cette somme est souvent décroissante dans le temps• Frais de transaction
– Une transaction peut spécifier un certain montant quireviendra au nœud générant un bloc incluant cettetransaction
– Plus une transaction prévoit des frais élevés, plus lesmineurs auront intérêt à l’inclure dans un prochain bloc
– Peut mener à une inflation des frais de transaction surtoutlorsque l’intérêt du premier mécanisme décroît
30/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 31: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/31.jpg)
Sécurité — Du point de vue de l’adversaireTransaction invalide
Objectif de l’adversaire : Inclure une transaction invalidedans un bloc (dépense de monnaie avec une signatureinvalide, dépenses supérieures aux recettes, etc.)• La transaction est considérée comme invalide par les
nœuds corrects (nœuds du réseau ou mineurs, comme parexemple, le nœud du commerçant)
• Donc le bloc contenant cette transaction est rejeté• Les mineurs corrects étendent la chaîne depuis le dernier
bloc correct (donc sans inclure ce bloc incorrect)• → Impossible tant qu’il existe des nœuds corrects pour
vérifier
31/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 32: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/32.jpg)
Sécurité — Du point de vue de l’adversaireDétournement de la chaîne
Objectif de l’adversaire : Étendre la chaîne depuis unancien bloc (pour permettre par exemple une doubledépense)Exemple• L’adversaire A effectue une transaction pour acheter un
bien immatériel auprès d’un vendeur V pour un montant X• Le vendeur attend qu’un bloc contenant cette transaction
soit miné (bloc n) et ajouté à la chaîne puis transmet le bienà A
• Maintenant A va chercher à faire en sorte que le chaîneconsidérée comme correcte étende le bloc n − 1 plutôt quen
• S’il y arrive, pour la chaîne, A n’a pas envoyé X au vendeur(et pourtant à reçu le bien...)
32/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 33: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/33.jpg)
Sécurité — Du point de vue de l’adversaireDétournement de la chaîne
Les mineurs honnêtes vont chercher à étendre la chaîne laplus longue, donc ici à partir du bloc Bn
L’adversaire va donc devoir trouver un bloc alternatif B′n(basé sur Bn−1) puis B′n+1 (basé sur B′n) avant que le blocBn+1 (basé sur Bn) ne soit trouvéDans cet exemple, il est probable que l’adversaire y arrives’il contrôle les 2/3 de la puissance de calcul globale• Si on raisonne sur le long terme, il lui « suffit » de contrôler
strictement plus de la moitié de la puissance de calculglobale (attaque des 51 %)
En règle général, c’est aussi pour cette raison que l’onattend plusieurs confirmations (nouveaux blocs) avant deconsidérer une transaction comme confirmée
33/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 34: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/34.jpg)
Sécurité — Du point de vue de l’adversaireAttaque des 51 %
Un adversaire contrôlant 51 % de la puissance de calculglobale (variable) peut ainsi• Empêcher une transaction d’être enregistrée dans la chaîne• « Supprimer » les derniers blocs de la chaîne
Néanmoins, le plus grand risque est de casser la confiancedans l’application utilisant la chaîne• Avec pour conséquence une perte de valeur d’échange
dans la cas d’une monnaie électronique par exemple
34/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 35: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/35.jpg)
Variantes
Preuves de travail « utiles » (Proof-of-Useful-Work )• Essayer de trouver un problème « utile » plutôt que de
gâcher des ressources• Exemple : Primecoin dont le problème est basé sur la
recherche de chaîne de Cunningham (suites de nombrespremiers ayant certaines propriétés)
35/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 36: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/36.jpg)
Plan
Fonctions de hachage
IntroductionDéfinitionHistorique
Consensus distribuéProblème du consensus distribuéConsensus dans la chaîne de blocsPreuve de travailPreuve d’enjeu
Conclusion
36/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 37: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/37.jpg)
Présentation
Développées pour répondre aux inconvénients liés auxpreuves de travailPrincipe : Déterminer le nœud qui pourra proposer leprochain bloc proportionnellement aux ressources qu’ilcontrôle dans l’application de la chaîne• Les nœuds souhaitant participer mettent sous séquestre un
certain montant de monnaie électronique• Un algorithme indique régulièrement un nœud parmi les
participants qui aura le droit de proposer le prochain bloc– La probabilité d’être choisi est proportionnelle aux
ressources mises sous séquestre– Pénalités souvent prévues si le nœud choisi ne propose pas
de bloc ou propose un bloc n’étendant pas la chaîne la pluslongue
37/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 38: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/38.jpg)
Avantages
Les participants ont un intérêt à ce que la chaînefonctionne bien et soit reconnue comme telle pour que lasomme qu’ils ont mis sous séquestre ne soit pas dépréciéeConsommation électrique réduiteBesoin de moins d’incitationsRisque réduit de centralisation
38/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 39: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/39.jpg)
Inconvénients
Preuve de sécurité pas évidenteEn pratique, pour le moment, aucune chaîne n’utilise unepreuve d’enjeu pure (mélange avec une preuve de travail)• Peercoin [7]
39/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 40: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/40.jpg)
Plan
Fonctions de hachage
IntroductionDéfinitionHistorique
Consensus distribuéProblème du consensus distribuéConsensus dans la chaîne de blocsPreuve de travailPreuve d’enjeu
Conclusion
40/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 41: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/41.jpg)
Exemple d’applications
Monnaie électronique (historiquement premier usage)Registre distribué• Nommage• Enregistrement d’œuvres (copyright)• Gestion de chaînes logistiques (supply chain)
Contrats intelligents (smart contract)
41/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 42: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/42.jpg)
Quelques exemples de recherche
Preuves de sécurité des différents mécanismes de preuvede travail et d’enjeuPassage à l’échelleLangages et outils pour les contrats intelligentsUsages, impacts sociétaux
42/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 43: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/43.jpg)
Conclusion
La définition d’une chaîne de blocs est simple et est baséesur des fonctions de hachageElle est couplée à un mécanisme permettant unconsensus distribué sur la chaîne valide• Pour les chaînes publiques : mécanisme basé sur des
preuves de travail (le plus répandu) ou des preuves d’enjeu(plus récent)
• Pour les chaînes privées : algorithme plus classique typePBFT
43/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 44: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/44.jpg)
Plan
Références
44/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 45: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/45.jpg)
Références I
[1] Ethereum white paper, 2013.https://github.com/ethereum/wiki/wiki/White-Paper.
[2] Hyperledger, 2017.https://www.hyperledger.org/.
[3] Namecoin, 2017.https://namecoin.org/.
[4] Miguel Castro and Barbara Liskov.Practical byzantine fault tolerance and proactive recovery.ACM Transactions on Computer Systems, 20(4) :398–461, November 2002.http://doi.acm.org/10.1145/571637.571640.
[5] Michael J. Fischer, Nancy A. Lynch, and Michael S. Paterson.Impossibility of distributed consensus with one faulty process.Journal of the ACM, 32(2) :374–382, April 1985.http://doi.acm.org/10.1145/3149.214121.
[6] Stuart Haber and W. Scott Stornetta.How to time-stamp a digital document.Journal of Cryptology, 3(2) :99–111, January 1991.https://doi.org/10.1007/BF00196791.
[7] Sunny King and Scott Nadal.Ppcoin : Peer-to-peer crypto-currency with proof-of-stake, August 2012.https://peercoin.net/assets/paper/peercoin-paper.pdf.
45/46 Télécom ParisTech Guillaume Duc 16/11/2017
![Page 46: Introduction à la chaîne de blocs - Séminaire COMELEC · 2008 : Nakamoto [9], contexte distribué et utilisation à des fins de monnaie électronique en évitant le problème](https://reader036.vdocuments.net/reader036/viewer/2022081612/5f458dccd923bc506268b9a9/html5/thumbnails/46.jpg)
Références II
[8] Leslie Lamport, Robert Shostak, and Marshall Pease.The byzantine generals problem.ACM Transactions on Programming Languages and Systems, 4(3) :382–401, July 1982.http://doi.acm.org/10.1145/357172.357176.
[9] Satoshi Nakamoto.Bitcoin : A peer-to-peer electronic cash system, October 2008.https://bitcoin.org/bitcoin.pdf.
46/46 Télécom ParisTech Guillaume Duc 16/11/2017