21/06/2021
Cybersecurity Insights
Les éléments qui composent la Blockchain | Partie 2
Pour mieux comprendre le fonctionnement de la Blockchain, découvrez les éléments qui la composent.

Décomposition des éléments

- Chaque acteur du réseau Peer-to-Peer possède un nœud
- Chaque nœud du réseau possède une copie de la Blockchain
- La Blockchain est composée d’une chaine de blocs
- Chaque bloc est composé par une liste de transactions
- Chaque transaction utilise un Token comme donnée

Décomposition du fonctionnement
Je cite quelques informations clés dans la compréhension du fonctionnement de la Blockchain.
BASE DE DONNEES
Une copie de la Blockchain est distribuée aux acteurs du réseau Peer2Peer.

La Blockchain est une suite de blocs. Chaque bloc connaît son père.

Chaque bloc est composé d’un Header et d’un Body.

- La Blockchain est distribuée aux acteurs du réseau P2P, donc chaque acteur possède une copie de la Blockchain
- La Blockchain est composée d’une chaine de blocs, chaque bloc connaît son père. Le maillage s’effectue grâce à la fonction mathématique de Hachage
- Le bloc est composé de deux parties. Un Header qui contient les paramètres du protocole et un Body qui est composé d’une liste de transactions

Un noeud Peer2Peer
Le premier élément qui compose la Blockchain est le nœud.
Un réseau Peer2Peer
Composé d’un nombre N de nœuds
Chaque nœud fonctionne en tant que Client
Chaque nœud fonctionne en tant que Serveur
Un nœud
Est une machine sur laquelle est installée une copie de la Blockchain
Si le propriétaire du nœud participe à la validation des blocs, il est appelé mineur
Le mineur est récompensé quand c’est son bloc qui est validé
- Un réseau P2P est composé de N nœuds
- Chaque nœud est à la fois client et serveur sur le réseau
- Le nœud est une machine sur laquelle est installée une copie de la Blockchain.
- Un nœud possède un propriétaire. Si ce propriétaire participe à la validation des transactions, on l’appelle le mineur.
- Le mineur est récompensé à chaque fois qu’il valide un bloc ajouté à la Blockchain.
- La récompense donnée au mineur est divisée par deux tous les quatre ans.
- Aujourd’hui sur la Blockchain Bitcoin, le mineur est récompensé par 6,25BTC

Un bloci
Le bloc est l’élément de base au bon fonctionnement d’une Blockchain car les données sont stockées sous forme de bloc.

- Les transactions sont validées par lot, ce lot se nomme bloc
- La taille du bloc est fixe
- Le bloc est composé de deux éléments, un Header et un Body
- Le Header permet le bon fonctionnement de la Blockchain. Il est composé par l’Arbre de Merkle, du Hash du bloc précédent, d’un timestamp, de la version du protocole et d’un Nonce (pour le Proof-Of-Work)
- Le Body est composé uniquement de Transactions. Cas particulier, la première transaction est en direction du mineur qui a validé le bloc

Une transaction
La transaction est la représentation de la donnée dans une Blockchain.

Possède un N d’inputs et d’outputs
N un entier naturel

Utilise un token comme unité

Possède l’adresse du destinataire

Utilise du gaz comme frais de fonctionnement sur la Blockchain
- Une transaction est composée de N inputs et de N Outputs. N est un entier naturel. Cela signifie que l’on ne peut pas utiliser une demi-transaction.
- Une transaction possède l’adresse du destinataire
- Une transaction utilise un Token comme unité
- Valider une transaction demande des frais de fonctionnement, ils sont nommés Gaz

Définir un token
Le Token est la valeur associée à la donnée. Vous pouvez comparer le Token à un type de données. Prenez pour exemple le INTEGER, c’est un type de données associé à un entier tout comme le Token peut être un type de données associé à une monnaie ou une œuvre d’art.

Nous pouvons définir différents types de Token à partir des attributs suivants :
- Il est transférable ou pas. C’est la capacité à pouvoir changer le propriétaire du Token. Exemple : la monnaie est transférable, un badge d’identité n’est pas transférable
- Il est Subdivisable ou entier. Le Token peut être divisé en Token de plus petite taille. Exemple : la monnaie est divisible, un vote est entier
- Il est Singleton. Il existe uniquement une instance de ce Token. Exemple : une œuvre d’art existe en un seul exemplaire
- Il est Mint-able. C’est la capacité à émettre de nouveaux Tokens. Exemple : il y a un apport de monnaie sur le réseau grâce au mineur
- Il est Role support. C’est la capacité à gérer des rôles pour contrôler. Exemple : la gestion des rôles sur une Blockchain
- Il est Burnable. C’est la capacité à supprimer un Token de la Blockchain. Exemple : un Baril d’essence disparait une fois consommé

Le cycle de vie d’une transaction

- Création – Joe effectue une transaction pour Jane
- Compilation – Plusieurs transactions sont regroupées dans un bloc
- Consensus – Compétition ou vote pour valider son bloc
- Validation – Le bloc est validé par la communauté
- Diffusion – Le bloc est diffusé à tous les nœuds
- Réalisation – Jane reçoit sa transaction & le propriétaire du bloc validé reçoit une récompense

Résoudre un conflit
Lorsque deux mineurs valident un bloc en même temps, nous avons deux versions de la Blockchain différentes. Dans ce cas le principe de la chaine la plus longue est appliqué.

- Le bloc 101 est validé au même moment par trois mineurs
- Afin de savoir quel bloc choisir, les autres mineurs mettent en place le principe de la chaine la plus longue

- Le premier bloc va être validé après que le bloc 101 utilise le bloc 101b
- Conclusion, le vrai bloc 101 est le bloc 101

Hamza ARFAOUI
Consultant