Mon Cours Blockchain
Mon Cours Blockchain
1
Chapitre 1 : Introduction à la Blockchain
1. Définition de la Blockchain
La blockchain est une technologie de stockage et de transmission d'informations qui
repose sur une architecture decentralisee. C’est un registre distribue, immuable, et
transparent, partage par plusieurs participants (ou nœuds) dans un reseau.
Figure.1 : Blockchain
2
Les caracteristiques sont :
• Controle unique : Un seul serveur gere les donnees, les applications et la securite.
• Gestion simplifiee : Les mises a jour et la maintenance sont plus faciles a gerer, car
elles se font a un seul endroit.
Avantages :
• Facilite de gestion et de maintenance.
• Meilleure securite des donnees (si le serveur est bien protege).
Inconvénients :
• Risque de point de defaillance unique ; si le serveur central tombe en panne, tout
le reseau peut etre affecte.
• Peut devenir une goulotte si trop de clients tentent d’acceder aux ressources en
meme temps.
2. 2. Architecture Décentralisée
Dans une architecture decentralisee, le controle et les ressources sont repartis sur
plusieurs nœuds, sans qu’un point unique soit responsable de l’ensemble.
3
Inconvénients :
• Gestion plus complexe ; necessite des protocoles de coordination entre les nœuds.
• Potentiellement plus difficile a securiser en raison de la distribution des
ressources.
NB : Un reseau P2P est une forme de reseau decentralise ou chaque nœud peut se connecter
directement a un autre.
Un reseau decentralise n’est pas forcement P2P ; il peut etre structure avec des sous-groupes
de nœuds qui repartissent la charge et fonctionnent de façon autonome, mais pas
necessairement avec des connexions directes entre tous les nœuds.
4
2.3. Architecture Distribuée
L’architecture distribuee est un sous-ensemble de l’architecture decentralisee, ou les
composants du systeme sont repartis sur plusieurs machines, souvent
geographiquement eloignees, mais qui fonctionnent ensemble pour accomplir des
taches communes.
3. Structure de la Blockchain
Dans une blockchain, les informations sont regroupees dans des blocs (« blocks » en
anglais). Ces blocs ont une certaine capacite de stockage et lorsqu’ils sont remplis, ils sont
fermes, dates et relies au bloc precedemment rempli formant une chaine (« chain » en
anglais) qu’on appelle une blockchain (chaîne de blocs). Toutes les informations qui
arrivent apres ce bloc seront ajoutees et compilees dans un nouveau bloc qui sera, une fois
plein, ajoute lui aussi a la blockchain et ainsi de suite.
Le premier bloc d'une blockchain est appele le bloc Genesis, car il n'a pas de
predecesseur.
Sur une Blockchain, chaque bloc contient le hash du bloc precedent. Par consequent il est
impossible de changer un bloc sans changer toute la chaîne. La Blockchain fonctionne
donc comme un grand livre numerique immuable. Voici, un exemple de blockchain avec la
representation de trois blocs. Chaque bloc est lie au precedent et au suivant par le hash.
5
Figure.6 : Structure d’un bloc
Si un hacker tente de supprimer, d’ajouter ou modifier une transaction dans le Bloc 10,
alors le Hash du Bloc 10 sera modifie. Et comme le Hash du Bloc 10 fait partie du Bloc 11,
le Hash du Bloc 11 serait aussi amene a changer et ainsi de suite. Par consequent toute la
chaîne de blocs serait compromise et celle-ci deviendra donc invalide.
Chaque bloc contient :
• Données : Les informations ou transactions enregistrees (par exemple, une
transaction de cryptomonnaie).
• Hash : Une empreinte numerique unique qui identifie le bloc. Le hash est genere
en utilisant les donnees du bloc.
• Hash du bloc précédent : Pour lier chaque bloc a son predecesseur, creant ainsi
une chaîne securisee.
Nb : Le hachage est une fonction cryptographique qui transforme toute donnee en
une chaîne de chiffres de longueur fixe. Chaque entree de la fonction de hachage
produira une sortie differente, et le resultat est deterministe : si vous utilisez la meme
entree, la valeur de sortie sera toujours la meme.
L’une des caracteristiques les plus importantes des fonctions de hachage est que la
conversion est à sens unique : on ne peut pas inverser la fonction pour generer
l’entree originale.
6
Consulter le lien suivant pour voir que toute modification dans les donnees originales
peut resulter une modification totale pour le hache resultant.
https://blockchaindemo.org/
4. Pourquoi la Blockchain a-t-elle été inventée ?
Satoshi Nakamoto a invente la blockchain pour repondre a plusieurs problemes et surtout
dans les systemes financiers et des transactions numeriques.
Elle a ete creee pour :
• Eliminer les intermediaires dans les transactions (banques, notaires, poste, etc.).
• Ameliorer la securite, la transparence, et la fiabilite des systemes de gestion des
donnees.
• Permettre des transactions globales rapides et peu couteuses, notamment via les
cryptomonnaies comme le Bitcoin.
Une comparaison entre une transaction via la technologie blockchain et une transaction
classique via un point centrale comme la banque est donnee par le tableau.1.
7
Transparence Transparence totale (publique), Transparence limitee,
immutabilite. donnees internes.
Sécurité Plus securise via cryptographie et Securisee mais point de
consensus. defaillance unique
Coût Reduction des couts en supprimant les Couts eleves, surtout pour les
intermediaires. transactions internationales.
Fiabilité Resilients, difficiles a attaquer. Resilients, vulnerable aux
pannes centralisees.
Pour qu'une transaction soit ajoutee a la blockchain, elle doit etre validee par un
mecanisme de consensus, comme :
➢ Preuve de travail (Proof of Work - PoW) : Les nœuds ou appeles aussi Les mineurs
resolvent des problemes mathematiques complexes pour valider et ajouter un bloc. Le
8
premier mineur qui reussit a resoudre le probleme ; partage le nouveau bloc avec le
reseau et est recompense. Ce systeme est utilise par Bitcoin.
• Avantages : Tres securise.
• Inconvénients : Tres energivore et lent.
➢ Preuve d’enjeu (Proof of Stake - PoS) : Dans le systeme PoS (utilise par Ethereum
2.0), les validateurs sont choisis pour proposer des blocs en fonction de la quantite de
cryptomonnaie qu’ils "mettent en jeu".
Ce systeme est moins energivore que PoW mais reste securise en decourageant les
comportements malveillants par la perte des fonds en cas de triche.
5.2. Cryptographie
La blockchain utilise des algorithmes cryptographiques pour garantir la securite et
l'authenticite des transactions.
• Hachage : Algorithme qui prend une entree (comme les donnees d'une transaction) et
produit une sortie fixe (hash). Meme un petit changement dans les donnees d'origine
modifie completement le hash, rendant les transactions infalsifiables.
• Cryptographie asymétrique (clé publique/clé privée) :
o Chaque utilisateur possede une cle publique (partagee avec tout le monde) et une cle
privee (gardee secrete).
o Pour signer une transaction, l’utilisateur utilise sa cle privee, et tout le monde peut
verifier cette signature avec la cle publique correspondante. (Cette partie sera bien
détaillée dans le deuxième chapitre.)
9
Il existe differents types de nœuds :
• Nœud complet : Stocke toute la blockchain et verifie chaque transaction.
• Nœud léger : Ne stocke qu'une partie de la blockchain et s'appuie sur des nœuds
complets pour valider les transactions.
6. Types de Blockchains
Il existe essentiellement deux types de blockchains, selon leur niveau de permission et
d'acces.
6.1. Blockchain Publique
• Exemples : Bitcoin, Ethereum.
• Tout le monde peut rejoindre le reseau et participer a la validation des
transactions.
• Les donnees sont accessibles a tous.
• Ideale pour les applications ouvertes et transparentes.
6.2. Blockchain Privée
• Exemples : Hyperledger, Corda.
• Seule une entite ou un groupe specifique de participants peut valider les
transactions et acceder aux donnees. Restreinte a des utilisateurs autorises,
souvent utilisee pour les entreprises.
• Plus rapide et plus facile a gerer, mais moins decentralisee.
6. Applications de la Blockchain
Les applications de la blockchain sont comme suit :
6.1. Cryptomonnaies et Contrats Intelligents (Smart Contracts)
La blockchain est principalement connue pour son role dans les cryptomonnaies comme
Bitcoin et Ethereum. Elle permet de realiser des transactions financieres decentralisees et
transparentes, sans avoir besoin de passer par une banque.
6.1.1. Bitcoin : La Première Application
La premiere et la plus celebre application de la blockchain est Bitcoin. Bitcoin permet de
transferer de la valeur d’un utilisateur a un autre sans avoir besoin d’un intermediaire,
comme une banque. Bitcoin a ete conçu comme une alternative aux monnaies
traditionnelles, visant a permettre des paiements rapides, securises, et sans frontieres.
Il repose sur la technologie blockchain pour :
10
• Enregistrer les transactions de maniere transparente.
• Assurer la securite et l’immuabilite des transactions.
• Garantir la decentralisation du systeme monetaire.
➢ Création : Cree en 2009 par un individu ou un groupe anonyme sous le pseudonyme
Satoshi Nakamoto.
➢ Technologie : Bitcoin utilise un mecanisme de consensus appele preuve de travail
(Proof of Work, PoW), dans lequel des mineurs valident les transactions en resolvant
des enigmes mathematiques complexes.
➢ Caractéristiques :
▪ Nombre limité : Il y aura seulement 21 millions de bitcoins en circulation, ce
qui lui confere une rarete et, potentiellement, une valeur.
▪ Sécurité : plus securise grace a la puissance de calcul massive utilisee pour la
validation des blocs.
▪ Utilisation principale : Stock de valeur (souvent compare a l'or numerique),
moyen de paiement decentralise.
L'achat de bitcoin peut servir a plusieurs choses :
1. Investissement : Beaucoup de gens achetent des bitcoins comme un
investissement. Ils esperent que, comme le bitcoin est limite en quantite (21
millions maximum), sa valeur va augmenter avec le temps, un peu comme on peut
acheter de l’or ou des actions. Si la demande pour le bitcoin augmente, son prix
pourrait monter, permettant aux investisseurs de realiser un profit.
2. Transaction : Le bitcoin peut aussi etre utilise pour acheter des biens et des
services. Certaines entreprises acceptent le bitcoin comme moyen de paiement.
Cela permet de faire des transactions sans passer par une banque, surtout entre
differents pays, et parfois avec des frais de transaction plus faibles.
NB : Le prix actuel d'un bitcoin (BTC) est d'environ 63 625 euros le 03/11/2024. Ce
montant fluctue constamment en fonction des conditions du marche, de la demande
et de l'offre.
La valeur du bitcoin varie en temps réel, c'est-a-dire en continu, chaque seconde. Son
prix est determine par l'offre et la demande sur les plateformes d'echange de
cryptomonnaies. Cela signifie que les variations de prix peuvent se produire
instantanement en fonction des transactions effectuees par les acheteurs et vendeurs.
11
Figure.10 : Evolution de la valeur du Bitcoin chaque seconde (11 :43 le 04/11/2024).
Exemples de plateformes :
• Coinbase : Facile a utiliser pour les debutants, avec une interface intuitive.
coinbase.com/fr
• Binance : Propose des frais de transaction bas et des options avancees pour les
utilisateurs experimentes.
• Kraken : Connue pour sa securite et ses options de trading avancees.
12
• Jeux décentralisés et NFTs : Ethereum a egalement popularise les NFT (jetons non
fongibles), utilises dans les jeux decentralises pour posseder et echanger des objets
numeriques uniques.
• Technologie : Initialement base sur la preuve de travail comme Bitcoin, Ethereum
est passe en 2022 a un mecanisme de preuve d’enjeu (Proof of Stake, PoS), plus
econome en energie.
➢ Caractéristiques :
• Cryptomonnaie : Ether (ETH) est la monnaie d’Ethereum, utilisee pour payer les
transactions et executer des contrats intelligents sur le reseau.
• Flexibilité et Programmabilité : Contrairement a Bitcoin, Ethereum est conçu
pour etre programmable, permettant aux developpeurs de creer des applications
complexes.
• Utilisation principale : Developpement de contrats intelligents, d’applications
decentralisees dans divers domaines (finance, jeux, reseaux sociaux, etc.), finance
decentralisee.
Il existe plusieurs plateformes et outils qui utilisent la technologie Ethereum ou sont
construits sur sa blockchain
✓ Ethereum Mainnet
• La blockchain principale d'Ethereum ou toutes les transactions et les contrats
intelligents sont executes. https://etherscan.io/
✓ Ethereum Classic (ETC)
• Une version de la blockchain Ethereum qui a emerge apres le fork (division)
d'Ethereum en 2016. Ethereum Classic conserve la chaîne originale.
✓ Binance Smart Chain (BSC)
• Bien que ce ne soit pas Ethereum, BSC est compatible avec les contrats
intelligents Ethereum et permet aux developpeurs de creer des dApps. Elle est
souvent utilisee pour des transactions moins couteuses et plus rapides.
✓ Polygon (MATIC)
• Une solution de mise a l'echelle pour Ethereum qui permet des transactions
rapides et peu couteuses. Elle aide a reduire la congestion du reseau Ethereum
principal.
✓ Uniswap
13
• Un echange decentralise (DEX) construit sur Ethereum qui permet aux
utilisateurs d'echanger des tokens sans intermediaire, en utilisant des contrats
intelligents.
✓ Aave
• Une plateforme de pret et d'emprunt decentralisee qui permet aux utilisateurs de
preter ou d'emprunter des crypto-monnaies directement via des contrats
intelligents.
✓ OpenSea
• Le plus grand marche de NFTs (tokens non fongibles) sur la blockchain Ethereum,
permettant aux utilisateurs d'acheter, de vendre et d'echanger des œuvres d'art
numeriques et d'autres actifs numeriques.
✓ Chainlink
• Un reseau decentralise d'oracles qui permet aux contrats intelligents d'interagir
avec des donnees du monde reel.
✓ Infura
• Un service qui permet aux developpeurs d'acceder facilement a la blockchain
Ethereum sans avoir besoin de gerer leur propre nœud Ethereum.
✓ MetaMask
• Un portefeuille de crypto-monnaies et une extension de navigateur qui permet aux
utilisateurs de gerer leurs actifs Ethereum et d'interagir avec des dApps sur la
blockchain Ethereum.
14
Utilisation Paiements, stockage de Contrats intelligents et d’autres
valeur applications
Vitesse de transactions Relativement lente Plus rapide et optimise
15
7.2. Limites
• Consommation énergétique : Le modele Proof of Work est energivore.
• Complexité : Mettre en œuvre et utiliser une blockchain peut etre techniquement
complexe, en particulier pour les utilisateurs non techniques.
16
Chapitre 2 : Rôle de la Cryptographie dans la Sécurité
et l'Intégrité de la Blockchain
1. Introduction
Pour renforcer la securite des informations et des transactions, la blockchain a emerge
comme une technologie cle dans ce domaine. La blockchain est un registre decentralise et
immuable qui enregistre les transactions de maniere securisee et verifiable sans
necessiter une autorite centrale. Cela reduit le risque de fraude et assure la transparence,
car chaque transaction est validee par un reseau de participants (ou nœuds) avant d’etre
ajoutee au registre. Dans des domaines comme le commerce electronique, les transactions
bancaires, et meme la gestion de donnees sensibles, la blockchain permet non seulement
de garantir l’integrite des informations, mais aussi d’assurer une traçabilite complete.
Grace a son mecanisme de consensus et a l’usage de cryptographie avancee, la blockchain
rend les processus de signature et d'authentification electronique encore plus robustes,
permettant ainsi une securite accrue pour les utilisateurs et les entreprises. La
cryptographie dans la blockchain garantit la securite des transactions, protege la
confidentialite des utilisateurs et empeche la modification frauduleuse des donnees. Elle
repose sur des concepts cles comme les fonctions de hachage, la cryptographie
asymetrique, et les signatures numeriques pour assurer l'integrite et l'authenticite du
reseau decentralise.
2. La cryptographie
La cryptographie est l'ensemble des techniques et des methodes mathematiques utilisees
pour securiser des informations et des communications, en rendant les donnees
inaccessibles aux personnes non autorisees. Elle repose sur des principes d'encodage et
de chiffrement, permettant de transformer des donnees claires (texte en clair) en un
format illisible (texte chiffre), de maniere a proteger la confidentialite, l'integrite,
l'authenticite et la non-repudiation des informations.
Les objectifs principaux de la cryptographie sont les suivants :
• Confidentialité : s'assurer que seules les personnes autorisees peuvent acceder a
l'information.
• Intégrité : garantir que l'information n’a pas ete modifiee ou alteree entre
l'expediteur et le destinataire.
17
• Authentification : permettre de verifier l'identite des participants a une
communication ou d'assurer l'origine des donnees.
• Non-répudiation : empecher qu'une personne puisse nier avoir envoye ou reçu
un message.
Les techniques de cryptographie sont utilisees dans divers domaines comme la securite
des reseaux, les transactions bancaires, la protection des donnees personnelles, la
blockchain, et bien d'autres domaines ou la securite de l'information est essentielle.
3. Les algorithmes cryptographiques :
Les algorithmes cryptographiques se divisent principalement en trois categories :
algorithmes symetriques, algorithmes asymetriques, et fonctions de hachage.
Dans la cryptographie symetrique, la meme cle est utilisee pour chiffrer et dechiffrer les
donnees. Cette cle doit etre partagee en toute securite entre l’expediteur et le destinataire.
18
2. Chiffrement et Envoi du Message :
• Avantages :
• Inconvénients :
• Exemples courants :
• Exemples courants :
o ECC (Elliptic Curve Cryptography) : base sur les courbes elliptiques, il offre
un niveau de securite equivalent a RSA avec des cles plus courtes, ce qui le
rend plus rapide et plus efficace.
20
2. La cle publique est partagee librement, mais la cle privee est gardee secrete.
2. Envoi de la Clé Publique :
1. Le destinataire (par exemple, Bob) envoie sa clé publique a l'expediteur
(par exemple, Alice). Alice peut l’obtenir via un moyen public ou un
repertoire de cles.
3. Chiffrement du Message avec la Clé Publique :
1. L’expediteur (Alice) utilise la clé publique du destinataire (Bob) pour
chiffrer le message. Seule la cle privee de Bob pourra dechiffrer ce message.
2. Alice envoie le message chiffre a Bob.
4. Réception et Déchiffrement du Message :
1. Bob utilise sa clé privée pour dechiffrer le message.
2. Seule la cle privee correspondante peut dechiffrer le message, garantissant
que Bob est le seul a pouvoir lire le message envoye par Alice.
21
Le protocole de Nakamoto se fonde sur deux outils cryptographiques alors deja connus
et etudies : la signature electronique a cle publique fondee sur des algorithmes
asymetriques et les algorithmes de hashage. Tous deux sont des fonctions a sens unique,
c'est-a-dire qu'ils peuvent aisement etre calcules, mais impossibles a inverser. Ils ont
toutefois un fonctionnement et des usages bien distincts.
Chaque transaction a recours a la cryptographie asymétrique , proposee pour la
premiere fois par Diffie et Hellman en 1976, et aujourd'hui tres repandue pour securiser
les echanges d'informations car elle permet d'assurer l'origine des donnees tout en
preservant leur confidentialite. Elle fonctionne, pour chaque utilisateur, avec une paire de
clés, l'une privée et l'autre publique .
Cette paire de cles presente le double interet de chiffrer ou de signer un message. Dans le
cadre du Bitcoin, seule sa fonction de signature est utilisee.
Dans ce systeme, un utilisateur cree une suite aléatoire de chiffres, appelée clé privée .
A partir de celle-ci un algorithme permet de produire une seconde clé appelée clé
publique. Pour le bitcoin, il s'agit d'un algorithme de signature numerique a cle publique
dit a courbes elliptiques, appele ECDSA (pour Elliptic Curve Digital Signature Algorithm ).
Par la suite, cette cle privee permettra de signer un message. Les autres utilisateurs du
reseau qui connaissent la cle publique correspondante pourront alors verifier qu'il est
bien l'auteur de ce message.
22
Meme si elles sont liees de maniere unique, la clé publique ne permet pas de retrouver
la clé privée qui en est à l'origine. La cle publique peut donc etre diffusee largement.
Ainsi, lors d'une transaction sur le reseau, l'emetteur va utiliser la cle publique du
recepteur pour lui transferer un certain nombre de satoshis. Ces derniers representent
la plus petite fraction de bitcoin, un satoshi equivalent a 0,00000001 bitcoin.
Tous les membres du reseau pourront alors lire la transaction et verifier que l'emetteur
etait effectivement le dernier possesseur des satoshis envoyes. Seul le recepteur pourra
signer la transaction avec sa cle privee pour en prouver la possession.
Sans autre indice, on ne peut identifier le proprietaire d'une cle publique, mais si le lien
est fait, on peut alors retracer toutes les transactions qu'il a reçues et envoyees. Le bitcoin
est donc un systeme pseudonyme plus qu'anonyme.
La cle publique est diffusable et permet de recevoir des transactions, la cle privee est
quant a elle gardee secrete. Seule la cle privee permet d'utiliser les transactions reçues,
c'est pourquoi sa preservation est cruciale. En cas de vol ou de perte, il n'existe aucun
moyen de recuperer les bitcoins qui ont ete envoyes a la cle publique appariee. On estime
ainsi qu'entre un cinquieme et un tiers de l'ensemble des bitcoins ne sont plus utilisables.
Sans autre indice, on ne peut identifier le proprietaire d'une cle publique, mais des lors
que le lien est fait, on peut retracer toutes les transactions qu'il a reçues et envoyees.
Les blocs ainsi constitues de plusieurs transactions « signees » par cles publiques sont
ensuite « horodatés » ( timestamped ) par leur auteur. Cet aspect, appele horodatage, est
essentiel car il permet la datation relative des blocs ainsi constitues,
la blockchain formant a cet egard une sorte de chronologie dans laquelle les transactions
sont classees les unes apres les autres. L'acces a l'historique du registre etant totalement
ouvert, les auteurs de tel bloc peuvent se trouver a n'importe quel point tout autour du
globe. Plusieurs blocs pourraient donc etre constitues au meme moment, de sorte que la
meme transaction ou deux transactions incompatibles puissent se diffuser de pair a pair.
Le protocole invente par Nakamoto propose une solution pour limiter le risque qu'une
telle production simultanee de deux blocs se produise, et s'assurer qu'un bloc valide ait le
23
temps de se diffuser dans l'ensemble du reseau avant qu'un suivant ne soit cree. Pour la
comprendre, il est necessaire d'evoquer prealablement le fonctionnement des fonctions
de hachage.
• Exemples courants :
24
La structure d'une blockchain et le role des hashs
Le hash d'un ensemble de donnees peut ainsi etre compare a une empreinte digitale,
bien moins complexe que l'individu entier, mais l'identifiant de maniere precise et unique.
Une fonction de hachage est dite « à sens unique » : conçue de telle sorte que le hash
produit - a savoir une image ou empreinte de taille fixe creee a partir d'une donnee de
taille variable, fournie en entree - soit impossible a inverser. Alors qu'il est simple de
produire un hash a partir d'un ensemble de donnees, il est impossible de remonter a un
ensemble de donnees a partir d'un hash connu, du moins avec les puissances de calcul
disponibles aujourd'hui. Cette fonction est donc dite « a sens unique » car l'image d'une
donnee se calcule facilement mais le calcul inverse est impossible en pratique.
La conversion des bits en multiplets permet de reduire la longueur d'ecriture des lignes
de bits, elle est effectuee ainsi :
25
nouveau jusqu'a obtenir une courte chaîne d'un certain nombre de bits. La longueur de
ces hashs est de 256 bits dans le cas de la fonction Secure Hash Algorithm-256 ou SHA-256,
utilisee pour le bitcoin par exemple.
Dans une fonction de hachage telle que SHA-256, des portes logiques et d'autres
operations vont etre appliquees a l'ensemble de donnees de depart, qui aura ete
« decoupe » en morceaux de 256 bits. Elles se succedent suivant une organisation
complexe repetee une soixantaine de fois, telle qu'illustree par le schema suivant.
26
Dans le cas d'une chaîne de bloc, le hachage est effectue a partir du contenu du bloc, c'est-
a-dire le hash du bloc precedent, un certain nombre de transactions et un horodatage.
https://www.senat.fr/rap/r17-584/r17-584_mono.html
Mais le hash est aussi imprédictible, que ce soit entierement ou meme partiellement, ce
qui est alors considere comme une « collision partielle » (par exemple pour prevoir la
valeur d'un certain nombre de premiers bits). Il est impossible de prevoir quelle valeur
aura le hash d'un certain ensemble de donnees meme en ayant connaissance des hashs
d'ensembles de donnees extremement proches.
27
Pour illustrer cette caracteristique notable, on a realise un second hash du texte complet
de la Constitution en remplaçant simplement le mot « France » par « france » dans la
premiere phrase de l'article premier. Le hash obtenu est alors le suivant :
89b645c5e90fec8c6a5475329da6fa1d09f5c5d0880cf67c99af98190c1da57e
La simple rupture de casse d'une lettre, sur un texte comprenant plusieurs dizaines de
milliers de caracteres, produit un nouveau hash ne présentant aucune proximité avec
le précédent.
04b2ecefc9f29b1e97ff0bccbb65bcb55a24d81855b4f9159c36f0ae6815e9c3
Cette caracteristique des fonctions de hachage rend toute modification du contenu d'un
bloc immédiatement visible dans les blocs suivants, meme si cette modification est
minime. En effet, le hash d'un bloc modifie est necessairement tres different. Etant donne
que ce nouveau hash est integre au bloc suivant, son hash varie lui aussi. Comme l'indique
28
le graphique ci-apres, la modification d'une simple transaction au sein d'un bloc suffit a
changer les hashs de tous les blocs suivants.
La modification etant visible dans l'ensemble des blocs suivants, les blocs sont tous lies
entre eux cryptographiquement, ainsi que l'a formule Claire Balva, presidente de
Blockchain Partner, devant vos rapporteurs. En consequence, modifier le contenu d'un
bloc suppose de recalculer les hashs de tous les blocs qui le suivent.
Les hashs jouent un role crucial dans la securite, l'integrite et la structure des blocs dans
une blockchain. les roles principaux des hashs dans les blocs sont :
29
1. Garantir l’intégrité des blocs
• Chaque bloc contient un hash unique, genere a partir des donnees qu’il contient :
o Les transactions,
o L’horodatage,
• Si une donnee dans le bloc est modifiee (meme legerement), le hash du bloc change
completement, signalant une alteration.
• Chaque bloc contient le hash du bloc precedent. Cela cree une chaîne de blocs ou :
o Si un bloc est modifie, cela casse la chaîne car les hashs suivants ne
correspondent plus.
• Le hash est utilise pour prouver le travail effectue par les mineurs :
o Cela rend les blocs suivants invalides, car leurs Previous Hash ne
correspond plus.
30
o Tous les blocs apres celui-ci deviennent invalides, et il faudrait remanier la
chaîne entiere, ce qui est presque impossible dans une blockchain bien
securisee.
Etant donne qu'il demande une réduction notable de la taille de l'échantillon et qu'il
est imprédictible, il est pratiquement impossible de reconstituer un ensemble de
donnees a partir de son hash, ce qu'on appelle une attaque pré-image.
La difficulte des fonctions de hachage doit cependant progresser au meme rythme que
l'evolution des puissances de calcul informatique. Ainsi, la fonction Message digest
5 (MD5) conçue en 1991 n'a plus aujourd'hui qu'une valeur historique, des collisions de
ses « courts » hashs de 128 bits etant desormais trop simples a engendrer pour les
calculateurs informatiques actuels.
La fonction utilisee pour le bitcoin se trouve parmi les plus repandues : il s'agit de la
fonction SHA-256, vue plus haut, ainsi denommee car elle produit des hashs d'une taille
de 256 bits.
En plus de servir a lier les blocs entre eux , ces hashs sont au coeur de la solution
proposee par le protocole de Nakamoto pour permettre un consensus sur le nouveau bloc
a ajouter a la chaîne, a travers une methode appelee la « preuve de travail ». Cette methode
presente toutefois des limites et d'autres « methodes de consensus » sont donc
envisagees.
4. La signature numérique
La signature numerique avec un algorithme asymetrique repose sur l’utilisation d’un
couple de cles : une cle privee et une cle publique. Les avantages de la signature numerique
sont :
31
1. Generation des cles :
o Le signataire genere un couple de cles asymetriques : une cle privee et une
cle publique.
o La cle privee est gardee secrete et ne doit jamais etre partagee. Elle sera
utilisee pour creer la signature.
o La cle publique est partagee avec tous les destinataires potentiels, qui
l’utiliseront pour verifier la signature.
2. Creation de l'empreinte du message :
o Avant de signer le message, on commence par generer une empreinte
(hash) du message a l’aide d’une fonction de hachage (comme SHA-256).
o Cette empreinte est un condense unique qui represente le message. Elle
est beaucoup plus courte que le message original et rend le processus de
signature plus rapide.
3. Signature de l'empreinte :
o Le signataire utilise sa cle privee pour chiffrer l’empreinte du message. Ce
chiffrement produit la signature numerique.
o Cette signature est unique au message et a la cle privee du signataire. Elle
ne peut etre reproduite que si l’on possede cette cle privee.
4. Envoi du message et de la signature :
o Le signataire envoie le message original ainsi que la signature numerique
au destinataire.
Verification de la signature
1. Creation de l'empreinte du message reçu :
o Le destinataire reçoit le message et la signature.
o Il applique la meme fonction de hachage sur le message reçu pour obtenir
l’empreinte du message.
2. Dechiffrement de la signature :
o Le destinataire utilise la cle publique du signataire pour dechiffrer la
signature. Le resultat devrait etre l’empreinte qui a ete generee lors de la
signature.
3. Comparaison des empreintes :
o Le destinataire compare l’empreinte qu’il a calculee avec celle obtenue
apres dechiffrement de la signature.
o Si les deux empreintes sont identiques, la signature est valide, ce qui
signifie que :
32
▪ Le message n’a pas ete altere (integrite).
▪ Il provient bien du signataire, car seule la cle privee associee a la cle
publique pouvait generer cette signature (authenticite).
Dans Bitcoin, les signatures numeriques et leur verification jouent un role crucial pour
assurer l'integrite et la securite des transactions. Elles permettent de prouver qu'un
utilisateur a autorise une transaction sans reveler sa cle privee. Voici un resume du
processus :
• Clé privée : Elle est secrete et utilisee pour signer les transactions.
• Clé publique : Elle est derivee de la cle privee et utilisee pour verifier les
signatures. Elle est egalement utilisee pour generer l’adresse Bitcoin.
Lorsqu'un utilisateur veut envoyer des bitcoins, il cree une transaction et la signe avec sa
cle privee. Voici comment cela se deroule techniquement :
2.1. Création du message à signer :
33
o La transaction est transformee en un message unique via une fonction de
hachage cryptographique (SHA-256). Cela garantit que meme une petite
modification de la transaction change completement le hash.
3. Vérification de la signature
Lorsqu’un nœud du reseau Bitcoin reçoit une transaction, il verifie sa validite avant de la
propager. Cela se fait comme suit :
34
5. Un registre distribué mis à jour au sein d'un réseau pair à pair
5.1. Les noeuds du réseau et le consensus
5.1.1. La diffusion des blocs sur un réseau pair à pair
Chaque bloc est valide par certains utilisateurs baptises « mineurs » (en reference aux
chercheurs d'or), et sont transmis aux « noeuds » du reseau, c'est-a-dire aux detenteurs
du registre, ce registre etant la chaîne de blocs elle-meme. Cette derniere est actualisee en
permanence.
Dans les blockchains dites ouvertes ( permissionless ), comme celle du bitcoin, n'importe
quel utilisateur de l'internet peut ainsi devenir un noeud du reseau en telechargeant le
registre aupres d'un noeud existant. Chaque noeud est connecte a plusieurs autres,
appeles pairs , eux-memes ayant leurs propres pairs, ce qui forme un réseau pair à pair .
La notion de réseau pair à pair
35
Les nœuds du bitcoin sont très inégalement répartis dans le monde, avec pres du tiers
en Europe et du quart aux Etats-Unis.
Cette figure represente une carte de la distribution mondiale des nœuds Bitcoin actifs a
un instant donne, basee sur une capture prise le 2 juin 2018. Voici les elements principaux
de la figure :
1. Nombre total de nœuds : La figure indique qu'il y avait 10 021 nœuds Bitcoin
accessibles a cette date. Ces nœuds constituent l'infrastructure decentralisee du
reseau Bitcoin, participant a la validation des transactions et a la propagation des
blocs.
2. Répartition géographique :
36
des points (plusieurs nœuds dans une region) est plus elevee dans certaines
zones.
o Les Etats-Unis dominent avec 24,74 % des nœuds, suivis par l'Allemagne
(17,72 %) et la Chine (8,04 %).
Lorsqu'un noeud cree ou reçoit un nouveau bloc, il l'ajoute a sa copie du registre puis le
transmet a ses noeuds pairs. Quand ceux-ci le reçoivent, ils verifient que ce nouveau bloc
est valide, c'est-a-dire qu'ils veillent en particulier a ce que la somme des transactions soit
egale en entree et en sortie. Si le bloc est valide, ils l'integrent alors a leur registre et le
transmettent a leur tour a leurs pairs. A l'echelle planetaire, « il y a forcément une à vingt
secondes de latence pour que le bloc se diffuse dans tout le réseau », selon Bilal Chouli,
fondateur de Neurochain.
Diffusion d'un bloc dans le réseau
37
La validation des blocs permet donc de se prémunir du risque d'attaque malveillante.
Aucune autorite centrale ne s'en occupe, puisque les utilisateurs s'en chargent en
surveillant le systeme et en se controlant mutuellement. Cette securite, source de
confiance, est l'un des aspects essentiels de la blockchain. Le fait que des centaines de
copies du registre soient mises a jour simultanement et regulierement vise a rendre
les blockchains quasiment indestructibles.
5.1.2. Types de nœuds et leurs rôles :
1. Nœuds complets (Full Nodes)
Description :
• Stockent une copie complete de la blockchain (toutes les transactions et tous les
blocs depuis le bloc genesis).
• Participent activement a la verification et a la validation des transactions et des
blocs.
Roles :
• Validation des blocs et transactions :
o Verifient la validite des blocs proposes par les mineurs ou validateurs.
o Assurent que chaque transaction respecte les regles du protocole
(signature correcte, absence de double-depense, etc.).
• Securite et integrite du reseau :
o Maintiennent la blockchain en detectant et rejetant les blocs invalides.
• Distribution des donnees :
o Propagent les transactions et les blocs valides aux autres nœuds.
38
Avantages :
• Contribution directe a la securite et a la decentralisation.
• Indispensables pour la resilience du reseau.
Exemples :
• Bitcoin Core (pour Bitcoin).
• Geth (pour Ethereum).
2. Nœuds légers (Light Nodes)
Description :
• Ne stockent qu'une partie de la blockchain (ex. : les en-tetes des blocs, sans les
transactions completes).
• Dependent des nœuds complets pour verifier les transactions et recuperer des
informations.
Roles :
• Acces rapide aux donnees :
o Fournissent un moyen leger pour les utilisateurs d’interagir avec la
blockchain.
o Ideal pour les appareils aux ressources limitees (smartphones, tablettes).
• Participation indirecte a la validation :
o Verifient les transactions via des preuves fournies par les nœuds complets,
comme les Merkle Proofs.
Avantages :
• Moins gourmands en espace de stockage et en puissance de calcul.
• Conviennent aux utilisateurs qui souhaitent interagir avec la blockchain sans
heberger toutes les donnees.
3. Nœuds mineurs (Mining Nodes)
Description :
• Specifiques aux blockchains utilisant le Proof of Work (PoW).
• Utilisent leur puissance de calcul pour resoudre des puzzles cryptographiques et
proposer de nouveaux blocs.
Roles :
• Creation de nouveaux blocs :
o Regroupent les transactions valides et les integrent dans un nouveau bloc.
39
o Tentent de resoudre le puzzle pour valider le bloc.
• Securisation du reseau :
o Maintiennent la chaîne en la rendant difficile a modifier (grace au cout
eleve du minage).
Avantages :
• Essentiels dans les blockchains PoW.
• Reçoivent des recompenses en cryptomonnaie pour leur travail.
Exemples :
• Mineurs Bitcoin, Ethereum (avant PoS).
Source : OPECST
Cette figure illustre un cas de fork temporaire (bifurcation) dans une blockchain
decentralisee, ou deux blocs valides sont crees presque simultanement par des nœuds
differents. Voici l'explication etape par etape :
40
Étape 1 : Création de deux blocs valides
• Deux nœuds distincts (representes par des points bleus) du reseau blockchain ont
chacun mine un bloc valide (representes ici par un bloc orange et un bloc vert)
presque au meme moment.
• Ces deux blocs, bien qu’individuellement valides, sont en concurrence car ils
pretendent etre le prochain bloc a ajouter a la blockchain.
• Les deux blocs commencent alors a etre diffuses dans le reseau.
Étape 2 : Diffusion des deux versions du registre
• Au fur et a mesure que les blocs (orange et vert) se propagent a travers le reseau,
certains nœuds reçoivent d’abord le bloc orange, tandis que d’autres reçoivent
d’abord le bloc vert.
• Cela cree temporairement deux versions différentes de la blockchain, l’une
incluant le bloc orange et l’autre le bloc vert.
Les noeuds s'accordent sur le prochain bloc à ajouter à la chaîne, c'est pourquoi les
protocoles de blockchains prevoient une « méthode de consensus ». En pratique, dans
une blockchain publique telle que bitcoin, un mecanisme de designation du bloc valide est
utilise. Son auteur doit fournir la preuve de sa designation aux autres utilisateurs du
reseau.
La methode la plus simple de designation consisterait a tirer au sort ce validateur,
a intervalle de temps donné (suffisant pour qu'un bloc puisse se diffuser dans
l'ensemble du reseau). Cette solution bute en pratique sur deux obstacles :
- la possibilite de multiplier les fausses identités afin de fausser le tirage au sort au
profit d'une seule entite (phenomene d'attaques « Sybil » 20 ( * ) ) ;
- l'absence de temps universellement accepté, c'est-a-dire d'horloge ne pouvant pas
faire l'objet de manipulation malicieuse. Dans un systeme distribue pair a pair, cette
horloge devrait elle aussi etre « distribuee ».
Dans le cadre d'une blockchain ouverte a tous, une preuve de designation doit donc
presenter deux caracteristiques :
- empêcher ou rendre difficile la prise en main de la création des blocs par une seule
entité ;
- permettre une temporisation dans la création des blocs, afin que l'ensemble des
noeuds du reseau puissent mettre a jour leur registre.
41
Le protocole defini par Nakamoto etait le premier a proposer une solution relevant ces
deux defis, a savoir la preuve de travail (proof of work ou POW). Dans la mesure ou cette
methode de consensus pose des problemes de diverse nature, d'autres modes de preuves
sont donc envisages comme il sera vu plus loin.
5.2. Le Proof of Work (PoW) :
Le Proof of Work (PoW), ou preuve de travail, est l’un des mecanismes de consensus les
plus courants dans les blockchains, comme Bitcoin. Il est utilise pour garantir que tous les
participants du reseau (les nœuds) s’accordent sur l’etat actuel de la blockchain, sans
necessiter une autorite centrale.
1. Qu’est-ce que le PoW ?
Le Proof of Work est un mecanisme ou les participants, appeles mineurs, doivent
resoudre un probleme mathematique complexe (et couteux en termes de temps et de
ressources) pour valider un bloc de transactions et l’ajouter a la blockchain.
• Objectif principal :
o Assurer la securite et l’integrite du reseau en empechant des acteurs
malveillants d’ajouter des blocs frauduleux.
o Rendre la modification de blocs existants extremement difficile.
• Principe clé :
o Trouver une solution a un probleme mathematique difficile, mais facile a
verifier une fois resolu.
2. Comment fonctionne le PoW ?
1. Proposition du bloc :
• Un nouveau bloc contenant des transactions est propose pour etre ajoute a la
blockchain.
2. Ajout des données au bloc :
• Le bloc inclut un condensat (hash) du bloc precedent pour assurer la continuite de
la chaîne.
• Un nonce (nombre arbitraire) est utilise pour trouver un hash valide.
3. Combinaison des données et hachage :
• Le hash est calcule en combinant les donnees du bloc (transactions, hash du bloc
precedent, nonce, etc.) avec un algorithme cryptographique, tel que SHA-256.
4. Calcul du hash et vérification de la cible :
• Le hash produit est compare a une valeur cible (definie par la difficulte du reseau).
42
• Si le hash est inferieur a la valeur cible, le bloc est valide. Sinon, le processus
continue.
5. Incrémentation du nonce :
• Si la condition n'est pas remplie, le nonce est incremente, et un nouveau hash est
recalcule. Ce processus est repete jusqu'a ce qu'un hash valide soit trouve.
6. Preuve de travail atteinte :
Une fois que le hash valide est trouve (inferieur a la valeur cible), la preuve de
travail est completee.
• Si condition remplie (HASH < Valeur cible) :
o Le bloc est approuve.
o La preuve de travail est atteinte, prouvant que des ressources de calcul
ont ete utilisees pour valider le bloc.
o Le bloc valide est ajoute a la blockchain.
o Le mineur reçoit une récompense (souvent en cryptomonnaie, comme des
bitcoins nouvellement crees).
• Sinon :
o Le nonce est modifie.
o Le processus recommence jusqu'a ce qu'un hachage valide soit trouve.
8. Approbation et ajout du bloc :
• Le bloc est approuve et ajoute a la blockchain.
9. Récompense du mineur :
• Le mineur qui a valide le bloc reçoit une recompense (par exemple, de nouveaux
bitcoins ou des frais de transaction).
43
44
Notez bien :
Le nonce (abreviation de "number only used once", soit "nombre utilise une seule fois")
est une valeur arbitraire, generalement un entier, utilisee dans le cadre des mecanismes
de consensus des blockchains, comme la Proof of Work (PoW).
Son principal role est de permettre de recalculer le hash d’un bloc jusqu’a ce qu’il
remplisse les criteres necessaires pour etre valide (par exemple, etre inferieur a une
certaine valeur cible).
5.3. Qu’est-ce que le minage ?
Le minage est le processus realise par les mineurs pour :
• Valider les transactions : Les mineurs regroupent et verifient les transactions
dans un bloc.
• Créer de nouveaux blocs : Ils travaillent pour resoudre le probleme de PoW afin
de proposer un nouveau bloc a la blockchain.
• Sécuriser le réseau : Leur travail empeche les attaques, comme les doubles
depenses.
5.4. Récompenses des mineurs :
Les mineurs sont incites a participer car ils reçoivent des recompenses :
1. La récompense de bloc :
o Une quantite fixe de crypto-monnaie (par exemple, 6,25 BTC pour Bitcoin en 2024) est
attribuee au mineur qui resout le probleme en premier.
o Cette recompense diminue avec le temps (halving pour Bitcoin).
2. Les frais de transaction :
o Les utilisateurs paient des frais pour inclure leurs transactions dans un bloc. Ces frais sont
egalement donnes au mineur.
https://moneyradar.org/lexique/proof-of-work/
1. Wallet Porte-monnaie numérique
Un wallet dans le contexte de la blockchain est un porte-monnaie numérique. C'est un
outil qui permet a un utilisateur de gerer ses cryptomonnaies et ses actifs numériques
de maniere securisee. Il fonctionne comme un moyen de stocker, envoyer et recevoir ces
actifs sur un reseau blockchain.
6.1. Comment fonctionne un wallet ?
Un wallet contient deux elements principaux :
45
1. Clé privée :
o Une cle secrete connue uniquement par le proprietaire.
o Elle est utilisee pour signer les transactions et prouver que vous etes le
proprietaire des fonds.
o Si elle est perdue, vous perdez egalement l'acces a vos actifs.
2. Clé publique :
o Generee a partir de la cle privee.
o Elle agit comme une adresse que vous pouvez partager avec d'autres pour
recevoir des fonds.
Ces cles ne stockent pas reellement vos cryptomonnaies. Les cryptomonnaies restent sur
la blockchain, et le wallet agit comme une interface pour y acceder.
6.2. Types de wallets
Les types de wallets en blockchain varient en fonction de leur mode de fonctionnement,
de leur niveau de securite, et de leur accessibilite. Voici les principales categories :
1. Software Wallets (Wallets logiciels)
Ces wallets fonctionnent sur des appareils connectes, comme des ordinateurs ou des
smartphones.
a) Desktop Wallets
• Logiciels installes sur un ordinateur.
• Donnent un controle total a l’utilisateur.
• Exemple : Electrum, Bitcoin Core.
• Avantage : Controle local et securite si le PC est securise.
• Inconvénient : Vulnerable aux malwares si l’appareil est infecte.
b) Mobile Wallets
• Applications pour smartphones.
• Ideal pour les transactions rapides (par exemple, scanner un QR code).
• Exemple : Trust Wallet, Mycelium.
• Avantage : Pratique pour une utilisation quotidienne.
• Inconvénient : Moins securise si le telephone est vole ou compromis.
c) Web Wallets
• Accessibles via un navigateur web.
• Heberges par des tiers ou auto-heberges.
• Exemple : Metamask, Blockchain.com Wallet.
46
• Avantage : Acces rapide via n’importe quel appareil connecte.
• Inconvénient : Dependance envers un fournisseur tiers (risque de piratage).
2. Hardware Wallets (Wallets matériels)
Ces wallets sont des dispositifs physiques conçus pour stocker des cles privees de maniere
securisee, hors ligne.
• Exemple : Ledger Nano S, Trezor.
• Avantage : Tres securise contre les cyberattaques car deconnecte d’Internet.
• Inconvénient : Cout eleve et moins pratique pour des transactions frequentes.
6.3. Utilité d'un wallet
• Envoyer et recevoir des cryptomonnaies : vous pouvez transferer des actifs
numeriques a d'autres utilisateurs.
• Consulter son solde : voir combien vous possedez.
• Protéger vos fonds : avec des mecanismes de chiffrement et des mots de passe.
L'interface d'un portefeuille Bitcoin (ou "wallet") permet a l'utilisateur de gerer ses bitcoins,
d'effectuer des transactions et de suivre l'etat de son solde. Voici les principales fonctionnalites et
elements d'une interface typique de portefeuille Bitcoin :
1. Vue d'ensemble (Dashboard)
• Solde du portefeuille : Affiche le solde total en bitcoins ou dans une autre devise
(comme l'USD, EUR, etc.).
• Historique des transactions : Montre les transactions recentes, y compris les
paiements reçus et envoyes.
2. Envoi de Bitcoin (Envoyer des fonds)
• Adresse de réception : Un champ ou l'utilisateur peut entrer l'adresse Bitcoin du
destinataire.
47
• Montant : Champ pour specifier la quantite de Bitcoin a envoyer.
• Frais de transaction : Options pour definir les frais de transaction. Plus les frais
sont eleves, plus la transaction sera rapide.
• Confirmer : Une fois que les details sont verifies, l'utilisateur peut confirmer et
envoyer la transaction.
3. Réception de Bitcoin (Recevoir des fonds)
• Adresse de réception : L'adresse Bitcoin unique du portefeuille pour recevoir des
paiements. L'utilisateur peut copier cette adresse ou afficher un QR code pour
faciliter la reception.
• QR Code : Un code QR contenant l'adresse de reception, permettant aux autres de
scanner et d'envoyer des bitcoins facilement.
Lorsqu'une transaction Bitcoin est effectuee, elle suit plusieurs etapes avant d'etre
confirmee et ajoutee a la blockchain. Ces etapes garantissent la sécurité, la
transparence, et l’immutabilité des transactions Bitcoin grace a la cryptographie
et au mecanisme de consensus decentralise.
48
Les principales etapes detaillees d'une transaction Bitcoin securisee :
A. Création de la transaction
1. Initiation par l’utilisateur :
L’utilisateur (l’expediteur) utilise son portefeuille Bitcoin pour creer une transaction. Il
specifie :
- L’adresse de destinataire
- Le montant de Bitcoin a envoyer.
- Les frais de transaction (optionnels mais influencent la rapidite de validation).
2. Signature numérique :
La transaction est signee avec la clé privée de l’expediteur via un algorithme de signature
numerique (ECDSA). Cela garantit que l’expediteur est bien l’origine des fonds et empeche
toute modification ulterieure de la transaction.
B. Diffusion de la transaction
1. Propagation au réseau :
Une fois signee, la transaction est diffusee au reseau Bitcoin via des nœuds (ordinateurs
connectes au reseau).
2. Stockage temporaire :
Les nœuds reçoivent la transaction et l’ajoutent a leur memoire (appelee mempool) en
attendant qu’elle soit incluse dans un bloc.
49
NB : Plusieurs transactions sont regroupées dans un bloc
La transaction envoyee par A est ajoutee a un ensemble d'autres transactions en attente.
Ces transactions sont rassemblees dans un bloc par un mineur ou un validateur.
Détail technique :
- Un bloc contient plusieurs transactions pour etre validees ensemble.
- Chaque bloc est limite en taille (ex. : 1 Mo pour Bitcoin).
C. Vérification de la validité
1. Vérification de la signature :
Les nœuds verifient que la signature correspond bien a l’adresse publique de l’expediteur,
prouvant son authenticite.
2. Vérification du solde :
Les nœuds consultent la blockchain pour s’assurer que l’expediteur dispose des fonds
necessaires pour couvrir la transaction.
3. Respect des règles Bitcoin :
La transaction doit respecter les regles du protocole Bitcoin, telles que la taille maximale
des blocs ou les frais minimums requis.
D. Inclusion dans un bloc
1. Sélection par les mineurs :
Les mineurs recuperent les transactions valides dans le mempool pour les inclure dans un
bloc candidat.
2. Construction du bloc :
Le bloc inclut :
- Une liste de transactions valides.
- Le hash du bloc precedent pour maintenir la chaîne.
- Un champ nonce (utilise pour le mecanisme de Proof of Work).
- D’autres metadonnees (timestamp, version, etc.).
E. Validation du bloc (Consensus)
1. Proof of Work (PoW) :
Les mineurs doivent resoudre un probleme cryptographique complexe en trouvant un
hash du bloc inferieur a une certaine difficulte (un nombre avec un certain nombre de
zeros initiaux).
50
2. Ajout du bloc à la blockchain :
Une fois le probleme resolu, le mineur diffuse le bloc au reseau. Les autres nœuds verifient
la validite du bloc avant de l’ajouter a leur copie locale de la blockchain.
3. Récompense pour le mineur :
Le mineur reçoit une recompense et les frais associes aux transactions.
F. Confirmation de la transaction
1. Ajout à la blockchain :
Une transaction est confirmee lorsque le bloc qui la contient est ajoute a la blockchain.
2. Multiples confirmations :
Pour garantir une securite maximale, il est recommande d’attendre 6 confirmations
(c’est-a-dire l’ajout de 6 blocs apres celui contenant la transaction).
Cela reduit considerablement le risque d’une attaque (comme une reorganisation de la
chaîne).
G. Finalisation de la transaction
1. Validation finale :
Apres plusieurs confirmations, la transaction devient irreversible et consideree comme
definitive.
2. Utilisation des fonds reçus :
Le destinataire peut desormais utiliser les bitcoins reçus pour effectuer de nouvelles
transactions ou les conserver dans son portefeuille.
L’exemple suivant represente une transaction Bitcoin détaillée entre deux nœuds (A
et B) sous forme d'etapes organisees dans un processus clair.
51
Le Wallet de nœud A contient :
- Clé publique : vérifier la transaction et générer l’adresse bitcoin
- Adresse bitcoin (Une suite d’environ 34 Caractères contenant des chiffres et des lettres en minuscules ou majuscules
(par exemple : 13o7TCoNWbaqYp9g89w1gHrZ7GvvKftRsd,
- Clé privée : pour signer
- Solde disponible : 1 bitcoin
Création de la transaction
A initie une transaction vers le destinataire B. *
Signature numérique
- Le nœud A signé la transaction avec sa clé privée
- Un hashé unique est créé et signé (ECDSA)
Diffusion de la transaction
- Transaction propagée aux nœuds de réseau Bitcoin
Stockage temporaire :
Les nœuds reçoivent la transaction et l’ajoutent à leur
mémoire (appelée mempool) en attendant qu’elle soit incluse
dans un bloc.
52
Inclusion dans un bloc
1. Sélection par les mineurs :
Les mineurs récupèrent les transactions valides dans le mempool pour les inclure dans un bloc candidat.
2. Construction du bloc : Le bloc inclut :
- Une liste de transactions valides.
- Le hash du bloc précédent pour maintenir la chaîne.
- Un champ nonce (utilisé pour le mécanisme de Proof of Work).
- D’autres métadonnées (timestamp, version, etc.).
Confirmation et réception :
- B reçoit les 0.5 BTC dans son wallet.
- Pour garantir une sécurité maximale, la transaction doit obtenir 6 confirmations supplémentaires, ce qui signifie que 6
blocs successifs ont été ajoutés après le bloc contenant la transaction.
-
53