Vous êtes sur la page 1sur 22

Module : Blockchain

HANEN IDOUDI
HANEN.IDOUDI@ENSI-UMA.TN
Chapitre 2 :
Architecture et fonctionnement de la
Blockchain
Pour rappel 3
u La blockchain est une base de données distribuée, transparente,
immuable, validée, et sécurisée
u La blockchain est distribuée car une copie complète rés ide sur autant de
nœuds que dans le système.
u La blockchain est immuable car aucune des transactions ne peut être modifiée.

u La blockchain est validée (par exemple dans l’espace Bitcoin) par les mineurs
responsables de la construction du prochain bloc sécurisé.

u Dans la plupart des Blockchain, la confiance de la chaîne est garantie si


51% des nœuds sont en accord à mécanisme du Consensus
u Déc entralisation : Le consensus remplace le recours à une autorité de
confiance

Hanen IDOUDI
Sécurité dans la Blockchain 4

u Confidentialité : Prévenir que Eve lise les messages d’Alice (Prévenir


la divulgation)
u Intégrité : Prévenir que Mallory falsifie les messages d’Alice sans être
détectée (Prévenir la falsification)
u Authentification des tiers : Prévenir l’usurpation de l’identité d’Alice
par Mallory (Prévenir l’impersonation)
u Authentification de l’origine : détecter la réception de faux
messages (Prévenir la mascarade+fabrication)
u Non répudiation : Prévenir la répudiation d’envoi, de réception ou
de contenu.
u La disponibilité : prévenir les tentatives de saturation ou de mise
hors service ou d’erreurs de fonctionnement

Hanen IDOUDI
Types d’utilisateurs (cas de BITCOIN) 5
u Utilisateurs (End Users)
u Consultent et demandent l’ajout d’informations à la blockchain via un
intermédiaire membre du réseau (nœud), sans la manipuler directement.
u Identifiés par des clés publiques. Disposent d’un couple clé Publique/Clé Privée

u Nœuds ordinaires (Nodes)


u Membres du rés eau de la blockchain

u Demandent l’ajout d’information dans la blockchain,

u Consultent la blockchain

u Ne participent pas à la construction de la blockchain.

u Mineurs (Miners)
u Forment un sous-ensemble des nœuds du rés eau

u Participent au processus de création des blocs de la blockchain

u Vér ifient la validité des nouvelles transactions

u Ajoutent les nouvelles transactions au registre des transactions après la création


Hanen IDOUDI des blocs qui les rassemblent
Fonctionnement général 6
1. Envoi de la proposition d’ajout d’information (transaction) dans la
Blockchain

2. Vérification de la validité de la transaction

3. Création du nouveau bloc en fonction de la nouvelle transaction


et du bloc précédent

4. Envoi du nouveau bloc sur tout le réseau de mineurs è La


Blockchain contient toutes les informations
u validées depuis sa créa tion
u regroupées dans des blocs
u classées par ordre chronologique
Hanen IDOUDI
Structure de la Blockchain (le registre
7
distribué)
u Une blockchain est une base de données englobant une chaîne
physique de blocs de longueur fixe comprenant 1 à N transactions
u Liste doublement chainée liées de blocs ordonnées

u Chaque transaction ajoutée à un nouveau bloc étant validée puis


insérée dans le bloc.
u Lorsque le bloc est terminé, il est ajouté à la fin de la chaîne de
blocs existante.
u Seulement deux opérations autorisées (contrairement aux CRUD
classiques) : ajouter un bloc à la fin et afficher une transaction à
Immuable

Hanen IDOUDI
Structure de la Blockchain (le registre
8
distribué)
u Une fois enregistrés, les blocs sont conç̧us pour résister à toute modification
u Les données d'un bloc ne peuvent pas être modifiées rétroactivement.
u Les nouvelles données sont ajoutées aux anciennes, c.-à-d. les données sont
uniquement écrites, jamais supprimées.

u Non seulement tout le monde a la même base de données (blockchain), mais tout le
monde a une copie de la blockchain à laquelle il est le seul à pouvoir accéder.
Bloc 41 Bloc 42 Bloc 43

H H H
(Bloc 40) (Bloc 41) (Bloc 42)
Transaction 30 Transaction 33
Transaction 31 Transaction 34 Transaction 37
Transaction 32 Transaction 35 Transaction 38
Transaction 36
H H H
Hanen IDOUDI
(Bloc 41) (Bloc 42) (Bloc 43)
Structure de la Blockchain (le registre
9
distribué) – Notion de Bloc
u Contient des transactions validées avec succès,
u Les blocs validés par les Mineurs sont chainés avec tous les autres
blocs précédemment crées et ce, depuis la création de la
Blockchain
u Genesis Block: le premier bloc

u Chaque bloc représente en moyenne 1 Mo mégaoctet et contient


des données de contrôle d'environ 200 octets, telles qu'un
horodatage, un lien vers un bloc précédent, d'autres champs
** https://www.blockchain.com/charts/avg- block-size

Hanen IDOUDI
Qu’est ceStructure
que c’estde la Blockchain (le registre
la Blockchain 10
distribué) – Notion de Bloc
Une uBlockchain est une base de
Entête d’un Bloc
données distribuée
u Version: qui
version utilisé e dugère une
protocole
u Tx_root: Merkle root=hash de toutes les
liste doublement chainée
transactions validé es deux à deuxliées de
blocs ordonnées
u Pre_hash: référence au bloc parent
(précédent)= hash (block précédent)
Chaque bloc représente en moyenne 1 Mo
u Time stamp
mégaoctet et contient des données de
u Nonce : numéro de séq uence
contrôle d'environ 200 octets, telles qu'un
horodatage, un lien vers un bloc précédent,
d'autres champs
https://www.blockchain.com/charts/avg-
block-size
Hanen IDOUDI

4
Structure de la Blockchain – Chainage des
11
Blocs par la fonction de Hachage
u Une fonction de hachage cryptographique est une fonction de
hachage unidirectionnelle qui mappe des données de taille
arbitraire à une chaîne de bits de taille fixe.
u La nature «unidirectionnelle» signifie qu'il est impossible en termes
de calcul de recréer les données d'entrée si on ne connaît que le
hachage de sortie.
u Le seul moyen de déterminer une entrée possible consiste à
effectuer une recherche par force brute, en vérifiant chaque
candidat pour une sortie correspondante;
u Etant donné que l'espace de recherche est pratiquement infini, il
est facile de comprendre l'impossibilité pratique de la tâche.

Hanen IDOUDI
Structure de la Blockchain – Chainage des
12
Blocs par la fonction de Hachage
u Intégrité des données à Garantit que le contenu d’une
communication ou d’un fichier n’a pas été modifié.
44 u Exemple MD5
Fonction de hachage = fonction de condensation:
u convertir une chaîn e de longueur quelconque en une chaîn e de taille
inférieure et gén éralement fixe appelée Empreinte (Digest), ou
Condensé ou Résumé (Hash) de la chaîn e initiale.
u Exemple :

Md5("Et l’unique cordeau des trompettes marines") =


8747e564eb53cb2f1dcb9aae0779c2aa

MD5("Et l’unique cordeau des trompettes marinEs") =


c802e1bd9b5f2b0d244bbc982f5082b3

Hanen IDOUDI

Hella Kaffel-Ben Ayed Blockchain 2019 27/11/2019


Structure de la Blockchain – Chainage des
13
Blocs par la fonction de Hachage
Propriétés des Fcts de Hachage
u A sens unique= Preimage-resistance:
Etant donné y, il est difficile de trouver x tel que h(x) = y (i.e., y =
“preimage" de x)
è il est difficile d’engendrer la chaîne initiale à partir de
l’empreinte.
u Second preimage-resistance:
Etant donné x, il est difficile de trouver x’ ≠ x tel que h(x) = h(x’)
è (i.e., un second preimage de h(x))
u Sans collision = Collision-resistance:
Il est difficile de trouver deux valeurs distinctes x et x’ tel que h(x) =
h(x’) (une collision)
è il est impossible de trouver deux messages ayant la même
empreinte.

Hanen IDOUDI
Structure de la Blockchain – Chainage des
14
Blocs par la fonction de Hachage

u La plupart des fonctions de hachage sont


construites par itération d’une fonction de compression
u M est décomposé en n blocs m1, m2, ..., mn,
u Une fonction de compression f est appliquée à chaque bloc, et au
résultat de la compression du bloc précédent.
u L’empreinte h(M) = résultat de la dernière compression.

Hanen IDOUDI
46 Principales
Structure fonctions
de la Blockchain de hachage
– Chainage des
15
Blocs par la fonction de Hachage
Différents Taille de Possibilité d’
Collision(s)
algorithmes l’empreinte Rapidité attaque de type Collision
trouvée(s)
de hash générée force brute

Exprimé en bits Exprimé en Nombres Nombre théorique


Mégabytes / Sec (à d’opérations pour d’opérations à
titre indicatif) retrouver l’input effectuer pour
d’un hash trouver une même
empreinte pour deux
données différentes

MD5 128 188 2128 264 Oui

SHA-1 160 121 2160 280 Oui

SHA2-256 256 139 2256 2128 Non

SHA2-512 512 154 2512 Non

SHA3-256 512 Non

Hanen IDOUDI

Hella Kaffel-Ben Ayed Blockchain 2019 27/11/2019


Structure de la Blockchain – Chainage des
16
Blocs par la fonction de Hachage

Vulnérabilité des fonctions de Hachage :


u Mallory peut:
1. Changer le message
2. Générer un résumé du nouveau message

à Les fonctions de hachage seules sont : Sensibles à l’attaque MIM


(Man In the Middle)

u Solution : double chaînage de la Blockchain et Arbre binaire de


Merkel

Hanen IDOUDI
Structure de la Blockchain – Merkel Tree 17

53 Structure et chaînage de blocs


u Un arbre de Merkle ou arbre de hachage binaire est une structure
de données utilisée pour résumer et vérifier d’une façon rapide et
efficace l’intégrité d’un large ensemble de données.
u Contenant l’empreinte numérique (Hash) de toutes les transactions
sousStructure
forme d'arborescence.
d’un bloc
u Chaque nœud est simplement un hachageLe Chaînage de blocs
cryptographique
d'une transaction.

Merkle tree

Hanen IDOUDI

Hella Kaffel-Ben Ayed Blockchain 2019 27/11/2019


Structure de la Blockchain – Merkel Tree 18

u Les arbres de Merkle permettent de vérifier rapidement si une donnée


existe dans un large ensemble de données et dans quel ordre.
u Elles sont efficaces car
u Elles permettent de compresser un ensemble large de données en une
information réduite permettant de retrouver uniquement la preuve
d’existence de ce qu’on cherche.
u Au niveau d’une Blockchain, elle auront donc comme avantages :
u D’alléger la partie cliente : un user a besoin uniquement de la Merkel Tree
pour vérifier l’existence d’une transaction et l’intégrité de la chaine de
blocs.
u Meilleure performance et meilleure rapidité (passage à l’échelle)

u Exemple : Permet le Simplified Payment Verification (SPV)

Hanen IDOUDI
Les contrats intelligents 19
66 Blockchain: Trois générations
La Blockchain 1.0 : La Blockchain 2.0 : La Blockchain 3.0 :
Transactions Smartcontracts Applications décentralisées

La Blockchain en tant que registre Héberge la logique métier, avec des Développement d’applications Web
assure le stockage, l’enregistrement Smartcontracts qui peuvent stocker dont le stockage et la puissance de
et la certification des transactions les règles et pénalités des accords et calcul sont décentralisés (Dapps).
effectuées (ex: cryptomonnaies). les exécuter automatiquement. Rapide, sans frais ni ‘miners’.

Mots clés : Mots clés : Mots clés :


Blocks, Nœuds, Mining, Proof of Work Protocol, Gestion de paiements, DAO DAG, Open Source, Data, Computing

+ Facilité d’implémentation car s’appuie sur + La notion de smart contacts peut couvrir + L’implémentation et l’utilisation de Dapps
des briques techniques maitrisés : risque un vaste panel d’usages peut être une réelle valeur ajoutée
sécurité plus faible
+ Ecosystème automatisé + Permet de faire d’avantage d’économie
+ Diversité des technologies - possibilité de des ressources digitales, plus de transactions
choisir le bon compromis sécurité/efficacité - Vulnérable à des attaques (PoS)
- Requière l’utilisation d’un token
- Peu de flexibilité et de créativité en termes - Rigidité des langages de développement électronique, utilisé comme récompense et
Hanen IDOUDI d’usages, grande consommation d’énergie de la logique, peu de documentation, généré par des algorithmes de proof of value
scalabilité

Hella Kaffel-Ben Ayed Blockchain 2019 27/11/2019


Les contrats intelligents 20

u Les SmartContracts sont des scripts, ou des codes, écrits et déployés dans la
blockchain, dans l’attente que certaines conditions soient vraies ou fausses,
afin de déclencher une action ou une transaction spécifique.
u Un contrat intelligent est une forme numérisée d'un contrat légal. Il consiste en
un ensemble de protocoles, sur lesquels les entités participantes doivent
s’accorder, ainsi que les conditions à l’origine de l’exécution de ces
protocoles.
u Permet d’étendre l’application de la Blockchain à tout processus métier :
exécution de processus, génération d’alertes, vérification de conditions
particulières préalables pour l’exécution de transactions etc.

u Introduits avec ETHEREUM, repris depuis par d’autres comme Hyperledger.


u Programmable : langage de script (Solidity pour Etherum, Javascript pour
Hyperledger etc).

Hanen IDOUDI
Les contrats intelligents 21

u Les contrats intelligents ont les propriétés suivantes:

1. Autonomie: les entités participantes consentent aux décisions : Le


besoin d'intermédiaire et le recours à eux sont éliminés.

2. Confiance: les informations essentielles sont présentes dans le


registre et ne peuvent donc pas être détruites ou perdues.

3. Sauvegarde: la présence de données sur plusieurs nœuds


participant au réseau rend les données sécurisées.

4. Économies: les contrats intelligents éliminent la nécessité d'un TTP


et permettent ainsi d'économiser de l'argent.

Hanen IDOUDI
TP 1 : Mise en place d’un réseau
22
blockchain sous Hyperledger

Hanen IDOUDI

Vous aimerez peut-être aussi