Cours Blockchain
Cours Blockchain
Cryptomonnaie
[Link]
1
Sommaire
Introduction Protocole Bitcoin
Blockchain Portefeuilles Bitcoin
Transactions Cryptomonnaies
Minage Blockchain & Entreprise
2
Introduction
Historique
Analogie
3
4
Bitcoin est une implémentation des propositions b-
money de Wei Dai et Bitgold de Nick Szabo
[Link]
5
Bitcoin Whitepaper
[Link]
6
Satoshi Nakamoto
Anonyme
18 août 2008 - Enregistrement du domaine [Link].
31 octobre 2008 - Publication du whitepaper.
3 janvier 2009 - Lancement du réseau Bitcoin.
23 avril 2011 - Satoshi se retire du projet et le laisse en main de la communauté.
7
2012 - Explosion des cryptomonnaies
8
Introduction
Historique
Analogie
9
Analogie
10
Échange direct entre personnes d’une pomme
physique
11
Échange direct entre personnes d’une pomme
numérique
Comment s’assurer que Bob n’a pas conserver une copie numérique de la pomme donnée à Alice ?
Comment s’assurer que Bob n’a pas donné une copie de la pomme à quelqu’un d’autre ?
Double-spending problem.
12
Inscription des transactions de pommes numériques
dans un livre de comptes
Une tierce personne (gestionnaire/greffier) est en charge d’inscrire toutes les transactions dans un
livre de comptes.
Que se passe-t-il si le greffier en charge du livre de compte triche, et rajoute des transactions
inexistantes au livre de comptes (John -> Bob) ?
13
Distribution du livre de comptes entre plusieurs
personnes
14
Pomme Numérique vs Bitcoin
Une pomme numérique est un bitcoin.
Le livre de comptes est la blockchain.
Les greffiers sont les mineurs.
La récompense de 25 pommes correspond à l’émission de nouveaux bitcoins.
Le système global est le protocole Bitcoin.
Avec ce système, une échange de pommes numériques fonctionne comme un échange de pommes
physiques.
Deux personnes peuvent s’échanger sans risque de fraude des pommes numériques directement sans
passer par un intermédiaire (susceptible d’être corrompu).
15
Sommaire
Introduction Protocole Bitcoin
Blockchain Portefeuilles Bitcoin
Transactions Cryptomonnaies
Minage Blockchain & Entreprise
16
Blockchain
Nature
Propriétés
Structure
17
Nature de la blockchain
Structure de données.
Base de données.
Registre comptable.
Livre de comptes.
La blockchain est une base de données qui contient un historique horodaté de toutes les transactions
réalisées.
18
Blockchain
Nature
Propriétés
Structure
19
Propriétés de la blockchain
Publique.
Décentralisée.
Inaltérable.
20
Publique - Blockchain Explorer
[Link]
21
Décentralisée
Tous les acteurs du réseau (noeuds) stockent et partagent une copie actualisée de la blockchain.
22
Inaltérable
Les transactions enregistrées ne peuvent pas être modifiées.
Seulement les mineurs peuvent y enregistrer de nouvelles transactions.
Le reste des mortels peut seulement lire et consulter les transactions.
23
Blockchain
Nature
Propriétés
Structure
24
Structure de la blockchain
Blockchain = Chaîne de blocs
25
Fonction de hachage
Une fonction de hachage est une opération cryptographique qui convertit une donnée de taille arbitraire
en une empreinte (hash) de taille fixe.
26
Propriétés de la fonction de hachage
Déterministe.
Non réversible.
Imprévisible.
Résistante aux collisions.
27
Déterministe
Une même entrée donne toujours une même empreinte de sortie.
28
Non réversible
Etant donné une empreinte de sortie, il est impossible de reconstruire le message d’entrée.
29
Imprévisible
Un petit changement dans le message d’entrée change complètement l'empreinte de sortie.
30
Résistante aux collisions
Une même empreinte ne peut pas correspondre à deux messages d’entrée distincts.
31
Bloc & Hachage
32
Tentative de fraude
33
Validité du livre de comptes
Que se passe-t-il si la page 40 d’un livre de compte est déchirée et remplacée par une nouvelle page 40
contenant d’autres transactions ?
34
Validité de la blockchain
Que se passe-t-il si on modifie les transactions d’un bloc ?
C’est pour cette raison que les blocs sont identifiés par leur empreinte (hash) et non pas par leur numéro
de bloc.
35
Audit de la blockchain
Publique: la validité de l’empreinte d’un bloc peut être calculée et vérifiée par n’importe qui.
Distribuée: l’empreinte d’un bloc peut être comparée avec celle d’une autre copie de la blockchain
résidant sur un autre ordinateur du réseau.
Inaltérable: toute modification du contenu (transaction) d’un bloc modifie son empreinte. La
blockchain est sécurisée cryptographiquement : la référence à l’empreinte du bloc précédent garantit
l'authenticité de l’historique des transactions.
Dès qu’une transaction est ajoutée à la blockchain, elle ne peut plus être modifiée ni éliminée.
On peut avoir une confiance totale dans la validité des transactions enregistrées dans la blockchain.
36
Algorithmes de hachage
MD5 (stockage et vérification de mots de passe).
SHA-256 (Secure Hash Algorithm 256):
Génère des empreintes de 256 bits = 32 bytes = 64 caractères en format hexadécimal (blockchain
bitcoin).
...
37
Sommaire
Introduction Protocole Bitcoin
Blockchain Portefeuilles Bitcoin
Transactions Cryptomonnaies
Minage Blockchain & Entreprise
38
Transactions
Merkle Tree
Clé privée & Clé publique
Adresse
Signature
UTXO
Anatomie
39
Merkle Tree
40
Transactions
Merkle Tree
Clé privée & Clé publique
Adresse
Signature
UTXO
Anatomie
41
Création d'une clé privée et d'une clé publique
Cryptographie asymétrique
42
Clé privée vs Clé publique
43
Propriétés des clés
Facile de générer une clé publique à partir d’une clé privée.
En pratique impossible de produire une clé privée à partir d’une clé publique.
Une clé publique est générée (dérivée) à partir d’une clé privée.
Une clé privée ne peut pas être reconstituée à partir d’une clé publique.
Une clé privée est l’empreinte SHA-256 d’un nombre aléatoire compris en et (~ ) (~
atomes dans l’Univers observable).
Les transactions en bitcoins sont des messages signés avec une clé privée.
Quiconque connaît votre clé privée peut voler vos fonds.
Les clés privées sont portables.
44
Sécurité mathématique d'une clé privée
Est-il possible de deviner la clé privée de quelque'un pour voler ses bitcoins ?
Expérience de pensée
Imaginons un super-ordinateur qui peut générer 1 milliard de clés privées par seconde (attaque en force
brute).
Pour découvrir toutes les clés privées possibles, un tel super-ordinateur prendra ~
années (l'Univers est né il y a environ années) !
45
Sécurité physique d'une clé privée
Les lois physiques de la thermodynamique ne permettent pas de construire un super-ordinateur
suffisamment puissant qui permettrait d’obtenir la clé privée à partir de sa clé publique…il n’y a pas assez
d’énergie dans notre système solaire pour construire une telle machine.
Les clés privées (bitcoins) sont sécurisés par les lois de l’Univers.
Peut-être qu’un futur ordinateur quantique sera capable un jour de reconstituer la clé privée à partir de la
clé publique ou de générer l'ensemble des clés privées en quelques secondes au moyen d'une attaque
en force brute...
46
Transactions
Merkle Tree
Clé privée & Clé publique
Adresse
Signature
UTXO
Anatomie
47
Adresse
Une adresse est un identifiant unique vers lequel on peut envoyer des bitcoins.
Une adresse peut être considérée comme l'équivalent d'un numéro de compte bancaire IBAN ou d’une
adresse email .
48
Génération d’une adresse
49
Propriétés d’une adresse
Une adresse est l’empreinte d’une clé publique (HASH160 = double hash SHA-256 + RIPEMD160).
Une adresse est une autre représentation (plus courte) de la clé publique.
Il existe (~ ) adresses Bitcoin possibles (~ grains de sable sur Terre).
Est-il possible que deux personnes génèrent la même adresse ? Ce n’est en théorie pas impossible,
mais en pratique la probabilité est quasi nulle.
Analogie
Clé publique / Adresse ⇔ Numéro de compte bancaire IBAN (public).
Clé privée ⇔ Mot de passe (secret).
50
51
Transactions
Merkle Tree
Clé privée & Clé publique
Adresse
Signature
UTXO
Anatomie
52
Clés & Signature
Une signature sert à démontrer que vous possédez la clé privée correspondant à une clé publique
(adresse).
Dans le contexte d’une transaction Bitcoin, la signature prouve que vous êtes le détenteur des bitcoins
que vous désirez envoyer et qu’ils proviennent d’une adresse en votre possession.
Une signature est générée au moyen d’ECDSA.
53
Transaction: Autorisation & Validation
54
Création et vérification d'une signature
C'est l'algorithme de cryptographie ECDSA qui se charge de réaliser la création et vérification des
signatures.
Création Signature
Une signature numérique est consitutée du hash des données de la transaction signé avec le clé privée en
employant ECDSA.
Vérification Signature
verification = digital signature + transaction data + public key
55
56
Pseudo-anonymat
Le principe de cryptographie asymétrique ECDSA intervient uniquement dans la création des paires
de clés privées et publiques ainsi que lors de la création et vérification de la signature d'une
transaction.
Le contenu des transactions en bitcoin n'est en lui-même pas occulté ni encrypté.
Les transactions font références à des montants et des adresses qui sont visibles dans la blockchain.
Une adresse bitcoin est anonyme, mais n’est pas privée.
Il existe certaines cryptomonnaies qui garantissent un anonymat total au moyen de techniques
d'encryptage des transactions.
57
Transactions et adresses sur la blockchain
Source
58
Transactions
Merkle Tree
Clé privée & Clé publique
Adresse
Signature
UTXO
Anatomie
59
[Link]
60
Transaction en cash
61
UTXO - Unspent Transaction Output
Dépôt de 0.9 BTC en 1 transaction. Dépôt de 0.9 BTC en 9 transactions.
1 UTXO 9 UTXO
62
UTXO - Cycle de vie
Les UTXOs sont les outputs (sorties) des transactions passées en bitcoin, qui peuvent alors être utilisées
comme inputs (entrées) dans les transactions futures en bitcoin.
63
Cash vs UTXOs - Similarités
Si Bob veut transférer $10 à Alice, il peut le faire en lui remettant un billet de $10:
Si Bob veut transférer 0.1 BTC à Alice, il peut le faire en créant une transaction:
Bob sélectionne un de ses UTXOs qu'il possède pour une valeur de 0.1 BTC (input).
Bob désigne Alice comme destinataire de la transaction de 0.1 BTC (output).
64
Cash vs UTXOs - Différences
Avec l'argent physique, le billet de $10 que Bob a pris (input) est le même objet physique que le billet de
$10 qu'il remet à Alice (output), et ce billet de $10 peut continuer à être dépensé et re-dépensé encore et
encore.
Par contre, l'UTXO de valeur 0.1 BTC que Bob a sélectionné (input) est complètement désactivé dès lors
qu'il est transféré à l'adresse d'Alice ! À sa place, un tout nouveau UTXO de valeur 0.1 BTC (output) est
créé et attribué à Alice.
En conséquence chaque UTXO peut être dépensé une seule fois (Spent Transaction Output).
65
Transaction & UTXO - Exemple
Transaction dans laquelle Bob transfère à Alice 1.75 BTC.
Bob paie 1.75 BTC à Alice et Bob reçoit en retour 0.049 BTC comme change. Les 0.001 BTC restant sont
les frais de transaction.
66
Transaction & UTXO - Résumé
Les UTXO présents dans la blockchain sont utilisés comme inputs pour construire de nouvelles
transactions. Un input est une référence à un UTXO d’une transaction précédente.
Un UTXO doit être consommé intégralement par un input lors d’une transaction (retour du change
possible). Les UTXOs ne peuvent pas être dèpensés partiellement.
Une fois dépensé dans une transaction, un UTXO ne peut plus être utilisé (Spent Transaction
Output), il est déshabilité.
Une transaction est valide uniquement si ses inputs proviennent d’un ou plusieurs UTXOs.
La somme des inputs doit impérativement être égale à la somme des outputs (plus les frais de
transaction destinés au mineur).
Ces règles sont une garantie qu’un utilisateur ne tente pas d’envoyer des bitcoins qui ont déjà été
dépensés ( double spending ).
Tout le travail d'assemblage d'une transaction et de vérification de la validité des inputs et des outputs
est automatisé par le logiciel de votre portefeuille Bitcoin.
67
Transaction & UTXO sur la blockchain
Source
68
Fonction d'une transaction
Une transaction prend des UTXOs en inputs et crée de nouveaux outputs sous forme d'UTXOs qui
pourront postérieurement être dépensé dans les inputs d'une nouvelle transaction.
69
Adresse & UTXO
La balance totale d’une adresse correspond à la somme des montants de chaque UTXO associé à cette
adresse.
70
Bitcoin & UTXO
Les UTXOs sont comme des "morceaux" de bitcoin.
Les UTXOs sont simplement des valeurs liées à des adresses sur la blockchain. Ainsi, si vous
"possédez des bitcoins", cela signifie que vous possédez les clés privées qui peuvent déverrouiller des
UTXOs spécifiques à partir d'adresses et les utiliser comme inputs dans des transactions.
Étant donné que les UTXOs sont inactivés dés qu'ils ont été dépensés, on peut considérer que tous les
bitcoins en circulation constituent l'ensemble des UTXOs qui sont "encore en vie". C'est ce qu'on
appelle l'UTXO set, qui est stocké dans l'ensemble des copies de la blockchain.
Les UTXOs sont le lieu de vie des bitcoins dans la blockchain.
Les UTXOs permettent d'utiliser les bitcoins comme une monnaie électronique sous forme cash.
71
Unités
72
Transactions
Merkle Tree
Clé privée & Clé publique
Adresse
Signature
UTXO
Anatomie
73
Anatomie d’une transaction
74
Transaction ID
Identifiant de transaction = Empreinte (Hash)
b6c889fd32f1dced3b0920cdbe4ddb7f17502996f05d36ddb622364659b5bb38
75
Transaction ID sur la blockchain
Source
76
Anatomie d’une transaction
77
Sommaire
Introduction Protocole Bitcoin
Blockchain Portefeuilles Bitcoin
Transactions Cryptomonnaies
Minage Blockchain & Entreprise
78
Minage
Noeuds
Preuve de Travail
Récompense
Difficulté
Block Time
Sécurité
79
Transactions & Noeuds
Toute transaction nouvellement crée par un portefeuille est diffusée vers les noeuds du réseau Bitcoin
pour validation.
La validation par les noeuds consiste à s'assurer que les transactions suivent correctement les règles
établies dans le protocole Bitcoin (signature, UTXO - double spending, etc...).
2 types de noeuds:
Full Nodes.
Mining Nodes (mineurs).
80
Full Nodes
Bookkeeper: maintiennent une copie locale actualisée de la blockchain.
Bootstrapping: fournissent une copie de la blockchain aux nouveaux noeuds qui se connectent au
réseau.
Validation: vérifient la validité des nouvelles transactions (signatures, UTXO - double spending, etc...)
et celle des nouveaux blocs (block hash), et rejette les transactions et blocs non valides.
Relais: relayent les nouvelles transactions et blocs vers et depuis d’autres noeuds.
Consensus: imposent que les mineurs suivent les règles du jeu (protocole).
Confidentialité: l'utilisation de son propre noeud connecté à son portefeuille garantit qu'une adresse
générée ou transaction envoyée par le portefeuille soit pseudo-anonyme.
81
Mining Nodes
Réalisent les mêmes tâches qu’un full node .
Créent les nouveaux blocs qui s'ajoutent à la blockchain (mineur ou hasher).
Permettent l’émission de nouveaux bitcoins.
Cette fonction du mineur qui consiste à créer de nouveaux blocs en y insérant les nouvelles transactions
s'appelle la Preuve de Travail.
82
Full Node vs Mining Node
Un full node est un client. Un mining node est un prestataire de services.
Le full node envoie les transactions de son Le mineur accepte les transactions provenant
propriétaire aux mining nodes (ses des full nodes (ses clients), les certifie en les
prestataires) et ratifie les résultats de ceux-ci. ajoutant à un nouveau bloc et se fait payer.
Fonction d'audit des transactions. Fonction de consolidation ( settlement ) des
Le rôle d'un full node est d'assurer la transactions.
décentralisation, résilience et Le rôle d'un mining node est d'assurer la
synchronisation du réseau (copie locale de la sécurité du réseau (création du hash des
blockchain et vérification locale des nouveaux blocs).
transactions et blocs). Acte rémunérateur.
Acte altruiste et volontaire.
83
84
Minage
Noeuds
Preuve de Travail
Récompense
Difficulté
Block Time
Sécurité
85
Preuve de Travail
Proof-of-Work (PoW)
Le rôle du mineur est de valider et empaqueter les nouvelles transactions au sein d’un nouveau bloc.
Pour ce faire, il génère une empreinte (hash) du nouveau bloc qui doit satisfaire certaines règles et
conditions (puzzle cryptographique).
Si l’empreinte générée du nouveau bloc satisfait les règles et conditions établies, il est ajouté à la
blockchain locale du mineur.
Le bloc est ensuite propagé vers les autres noeuds du réseau pour ratification et qui à leur tour
l'ajouteront à leur propre blockchain (consensus).
En récompense du travail réalisé, le mineur qui a créé le nouveau bloc est rémunéré en bitcoins
(nouvelle émission monétaire réalisée par le protocole).
86
Emprunte d'un bloc (Hash)
87
Puzzle cryptographique
Les mineurs sont mis en compétition pour calculer l’empreinte du nouveau bloc.
L’empreinte du nouveau bloc doit être plus petite ou égale à une valeur cible (target) pour que le bloc
soit considéré comme valide et puisse être ajouté à la blockchain.
88
Nonce (Magic number)
Number used only Once
89
Solution du puzzle cryptographique
Fondamentalement le processus de minage (preuve de travail) consiste à trouver un nombre
aléatoire, le nonce .
Le premier mineur qui résout le puzzle cryptographique en générant une empreinte du bloc plus petite
ou égale à la valeur cible devient le gagnant du concours.
Le mineur vainqueur peut ajouter le nouveau bloc à sa blockchain et le soumettre au réseau afin qu’il
soit ratifié et ajouté à la blockchain de chaque noeud (full node + les autres mining nodes).
La même compétition entre mineurs se répète pour la création du prochain bloc…
90
Vérification du puzzle cryptographique
On peut imaginer que le réseau Bitcoin fonctionne en assemblant plusieurs pièces d'un puzzle. Les
mineurs seraient les personnes qui feraient le travail pour assembler le puzzle, et les noeuds (full nodes)
regarderaient le puzzle terminé et vérifieraient qu'ils ont été assemblés correctement.
Bien que la solution du puzzle cryptographique (le hash du nouveau bloc) soit difficile à trouver (preuve
de travail) par les mineurs, une fois découverte la solution (le hash du nouveau bloc) est facilement
vérifiable par tous les noeuds (full nodes) du réseau.
91
Minage
Noeuds
Preuve de Travail
Récompense
Difficulté
Block Time
Sécurité
92
Récompense de bloc
Le mineur qui génère un nouveau bloc est récompensé actuellement avec 3.125 nouveaux bitcoins
(block reward) => Nouvelle émission monétaire toutes les 10 minutes.
On dit qu’il a miné des bitcoins.
Le mineur collecte également les commissions associées aux transactions incluse dans le bloc
(transaction fees).
93
Transaction Coinbase
La transaction coinbase est la première transaction que le mineur ajoute à son bloc.
Elle sert à rémunérer en bitcoins (3.125 BTC actuellement) le mineur pour la travail (calcul du hash)
réalisé pour la création du bloc.
Elle a pour objectif d’envoyer à l’adresse du mineur les nouveaux bitcoins minés qui sont
automatiquement émis par le protocole.
C’est une transaction spéciale qui ne contient pas d’input (ne consomme pas d’UTXO).
94
Commissions (Fees)
Une transaction peut comporter (facultatif) un paiement additionnel sous forme de commission
(transaction fee).
Généralement les portefeuilles calculent automatiquement les commissions en fonction du nombre
d’inputs et d’outputs utilisés dans la transaction.
Les commissions font partie de la récompense distribuée par le protocole au mineur gagnant qui a
créé le nouveau bloc.
Chaque mineur qui travaille à résoudre l’empreinte d’un bloc a l’option de choisir les transactions en
attente de validation à inclure dans son bloc.
Lors de la création du bloc, un mineur est donc incité à privilégier les transactions incluant des
commissions élevées (taille max d’un bloc: 1MB -> 4MB).
95
Halving
La récompense de minage est divisée par deux (halving) tous les 210’000 blocs (~ 4 ans).
Le protocole Bitcoin définit une émission totale maximum de 21 millions de bitcoins qui sera atteinte
aux alentours de l'année 2140.
Depuis le lancement du réseau Bitcoin jusqu'à aujourd'hui, environ 19,8 millions de bitcoins ont été
distribués aux mineurs. C'est la masse monétaire actuelle de tous les bitcoins qui sont en circulation (~
94% des 21 millions de bitcoins).
Une quantité indéterminée de ces bitcoins en circulation est perdue à tout jamais (perte de la clé
privée).
Une fois les 21 millions de bitcoins entièrement minés et distribués, les mineurs seront récompensés
uniquement par les commissions (transaction fees) !
96
Halving vs Récompense
97
Minage
Noeuds
Preuve de Travail
Récompense
Difficulté
Block Time
Sécurité
98
Difficulté
En soumettant des blocs valides, les mineurs participent à la sécurisation du réseau.
Afin d’éviter que des mineurs malhonnêtes s’empare du réseau à moindre frais et soumettent des
blocs non valides, le minage doit comporter un coût financier pour le mineur.
Le minage doit être une opération coûteuse en ressources informatiques, calcul et énergie électrique
pour inciter les mineurs à agir honnêtement.
La difficulté de minage est une mesure qui indique le niveau de difficulté de travail requis (preuve de
travail) pour trouver une empreinte plus petite que la valeur cible (target).
99
Ajustement de la difficulté
Si la difficulté augmente, le target est diminué
=> plus difficile de trouver le hash d’un bloc.
Si la difficulté diminue, le target est augmenté
=> plus facile de trouver le hash d’un bloc.
le target est recalculé tous les 2016 blocs (~ 2
semaines) par tous les noeuds du réseau.
La notion de difficulté assure que les blocs de
transactions sont ajoutés à la blockchain à
intervalles réguliers (en moyenne chaque 10
minutes), même si de nouveaux mineurs
rejoignent ou se retirent du réseau.
L’objectif est de maintenir une création
statistiquement constante de nouveaux
bitcoins (en moyenne chaque 10 minutes)
indépendamment de la quantité de puissance
de calcul délivrée par les mineurs.
100
Difficulté vs Taux de Hachage (Hashrate)
Les mineurs testent des millions d’empreintes (hash) par seconde avec des nonce différents pour trouver
la bonne empreinte satisfaisant le target .
Hashrate du réseau Bitcoin = Nombre de hash calculé par seconde par l’ensemble des mineurs
Plus il y a de mineurs.
Plus il y a de puissance de calcul à disposition.
Plus le hashrate augmente.
Plus la difficulté va s'ajuster vers le haut et le target diminuer.
Plus il est difficile pour un mineur individuel de trouver une nouvelle empreinte d’un bloc satisfaisant
la condition du target (plus petite que la valeur cible).
101
Evolution du hashrate
[Link]
Processeur d’un ordinateur conventionnel, hardware généraliste. Peu performant en terme de hashrate et
consommation énergétique.
GPU
103
ASIC
104
Ferme de minage
105
Minage
Noeuds
Preuve de Travail
Récompense
Difficulté
Block Time
Sécurité
106
Block Time
On appelle block time le temps moyen écoulé entre la création de deux blocs successifs.
C'est in fine le temps moyen que passe un mineur pour trouver un nonce permettant de générer une
empreinte valide d'un nouveau bloc.
L’ajustement de la difficulté en fonction du hashrate garantit qu’un nouveau bloc est créé par un
mineur en moyenne chaque 10 minutes.
107
Pourquoi un block time de 10 minutes ?
Compromis qui vise à réduire et limiter:
L'idée est de ne pas innonder en permanence le réseau avec des nouveaux blocs.
108
Confirmation des transactions
Lorsqu'une transaction est inculse dans un nouveau bloc, on dit qu'elle confirmée.
109
110
Mempool
Les nouvelles transactions soumises au réseau qui ont été validées par les noeuds ( full nodes et mining
nodes ) mais pas encore confirmées (pas encore incluse dans un bloc) s’accumulent dans le mempool
(memory pool) des noeuds en attendant d’être ajoutée à un nouveau bloc par un mineur.
111
Mempool & Commissions
[Link]
112
113
Minage
Noeuds
Preuve de Travail
Récompense
Difficulté
Block Time
Sécurité
114
Irréversibilité des transactions
Toute transaction est finale
Une fois la transaction ajoutée au nouveau bloc et donc confirmée, elle est presque irréversible.
2 cas de figure dans lesquels une transaction confirmée dans un bloc peut changer d'état et redevenir
non-confirmée:
1. Bloc Orphelin.
2. Attaque à 51%.
115
Bloc Orphelin
2 mineurs trouvent un bloc N+2 avec un hash valide en même temps et le soumettent au réseau.
Un des deux blocs candidats est diffusé et accepté par les noeuds du réseau plus rapidement que
l’autre.
Les mineurs commencent à travailler à la création du bloc suivant N+3.
La chaîne la plus longue est considérée par le réseau comme étant valide et le bloc orphelin est
abandonné.
116
Bloc Orphelin & Transaction
Un noeud du réseau (utilisateur) peut voir temporairement une transaction incluse dans un bloc
comme acceptée (1 confirmation).
Et quelques minutes plus tard se rallier à la blockchain la plus longue et ne plus voir cette transaction
comme confirmée car pas encore incluse dans le bloc de la chaîne la plus longue (0 confirmation).
Rappel: les mineurs sont libres de choisir les transactions à ajouter à leur bloc parmi celles en attente
dans le mempool tout en respectant la taille maximale du bloc à 2 MB.
117
Attaque à 51 %
Un mineur possèdant plus de 50% du hashrate
du réseau a une probabilité plus élevée de
miner les nouveaux blocs.
Il peut potentiellement manipuler la création
des nouveaux blocs à son avantage et réaliser
un double spending (dépenser deux fois les
mêmes UTXOs).
La quantité de hashrate requise pour effectuer
une telle attaque est telle qu'elle rend cette
attaque extrêmement onéreuse et
improbable.
118
Chaîne la plus longue
Il est recommandé d’attendre 6 confirmations (~ 1 heure = 6 blocs x 10 minutes) pour considérer une
transaction comme irréversible.
Garantit que la transaction est enregistrée sur la chaîne la plus longue (celle qui cumule le plus de
hashrate) et n'est pas incluse dans un bloc orphelin d'une chaîne plus courte.
Garantit la non-réalisation pratique d’une attaque à 51% par un mineur malhonnête.
119
Mineurs & Sécurité
Les mineurs perçoivent un avantage financier (récompense du bloc) pour agir honnêtement.
Le coût économique de brûler de l’énergie (électricité) est la preuve que les mineurs ont attestés par
leur travail le contenu du bloc. La Preuve de Travail est une preuve d’avoir consommé de l’énergie.
Le degré d’inaltérabilité de la blockchain est directement proportionnel à la quantité d’énergie
(hashrate) que les mineurs consomment.
Non-viabilité financière en terme de coût énergétique de créer des blocs non-valides qui seront
automatiquement rejetés et ignorés par le reste des noeuds du réseaux (full nodes).
Incitation pour les mineurs à agir honnêtement (créer des blocs avec une empreinte valide) plutôt
que de tricher et être puni par le réseau.
En soumettant au réseau (full nodes) pour vérification et ratification des blocs valides à ajouter à la
blockchain, les mineurs participent à la sécurisation du réseau.
120
Entête d'un bloc
121
Full Nodes & Vérification
Les full nodes vérifient que:
122
Modèle sécuritaire Trustless
Bitcoin n’a pas de leader, pas de CEO, pas d’employé, pas de quartier général, pas de centre
d’opération, pas de gouvernement, pas de propriété intellectuelle,...qui sont toutes des vulnérabilités
potentielles...Bitcoin n'a pas de régulateur, mais il a des règles !
Bitcoin possède un modèle sécuritaire automatisé qui ne demande pas d’intervention d'une autorité
centralisée externe.
La force du protocole Bitcoin est le faible degré de confiance qu’on a besoin de mettre dans les
autres acteurs du réseau.
Le protocole Bitcoin est qualifié de trustless parce que tout y est vérifiable par soi-même, on n'a plus
besoin de déposer sa confiance dans un tiers.
Un consensus s'établit entre la majorité des noeuds du réseau sur la version valide de la blockchain.
En éliminant les vulnérabilités externes, Bitcoin a pour objectif d’être inarrêtable, incontrôlable,
incorruptible, indestructible et invulnérable.
124
Protocole Bitcoin
Logiciel
Réseau
Problème du Général Byzantin
Fork
Consensus
Caractéristiques
125
Protocole Bitcoin
Un protocole est un ensemble de règles qui gouverne comment un système opère.
126
Logiciel Libre & Open Source
Le protocole Bitcoin est codé dans un logiciel libre et open source dont il existe différentes
implémentations (codé dans divers langages de programmation).
L'implémentation de référence est BitcoinCore qui est l'évolution du logiciel original proposé par Satoshi
Nakamoto.
[Link]
127
Bitcoin vs bitcoin
Bitcoin est le protocole.
bitcoin est l’unité monétaire.
128
Protocole Bitcoin
Logiciel
Réseau
Problème du Général Byzantin
Fork
Consensus
Caractéristiques
129
Réseau P2P décentralisé
130
Différents acteurs du réseau
131
Protocole Bitcoin
Logiciel
Réseau
Problème du Général Byzantin
Fork
Consensus
Caractéristiques
132
Problème du Général Byzantin - Origine
Expérience de pensée qui décrit un vieux problème informatique (1960).
Comment se coordonner dans un système informatique distribué dans lequel on ne peut pas faire
confiance aux participants ?
133
Problème du Général Byzantin - Description
Une armée entoure une ville ennemie.
Son général dispose de différents camps de
base qui doivent communiquer entre eux via
des messagers pour se mettre d’accord sur
l’heure et la stratégie de l’attaque
(consensus).
On sait qu’il y a un nombre inconnu de traîtres
parmi les messagers qui peuvent modifier le
message échangé et donc faire échouer
l’attaque.
134
Problème du Général Byzantin - Bitcoin
Comment un groupe d'ordinateurs (noeuds) dans le réseau Bitcoin peut-il se mettre d'accord sur l'état
actuel de la blockchain (historique des transactions) quand un ou plusieurs de ces ordinateurs peut être
malicieux ?
135
Problème du Général Byzantin - Analogie
Les camps de base représentent les
ordinateurs (noeuds) du réseau distribué.
Les messagers représentent les paquets de
données transmis entre les noeuds.
les messages correspondent aux informations
(transactions, blocs) incluses dans ces paquets
de données.
136
Problème du Général Byzantin - Solution
Preuve de Travail
137
Protocole Bitcoin
Logiciel
Réseau
Problème du Général Byzantin
Fork
Consensus
Caractéristiques
138
Fork - Analogie
Une grande salle remplie de 5000 personnes qui jouent au loto.
Bob et Alice sont assis dans des côtés opposés de la salle.
Un numéro est tiré au hasard, et Bob et Alice sont les deux gagnants pour ce numéro en même
temps.
Dans le brouhaha, Bob se manifeste et la moitié de la salle entend Bob.
Alice se manifeste également et l'autre moitié de la salle entend Alice.
Qui est le gagnant ? Alice ou Bob ?
Pour les personnes assises du côté de Bob c'est Bob le gagnant.
Pour les personnes assises du côté d'Alice, c'est Alice la gagnante.
Il y a une divergeance sur la perspective de la réalité.
139
Fork - Blockchain
Un fork est une divergeance sur la perspective de l'état de la blockchain.
140
Soft fork - Analogie
Un soft fork a lieu lorsqu'un changement dans le protocole Bitcoin propose aux noeuds des régles plus
strictes .
141
Soft fork - Blockchain
Méthode d’actualisation du logiciel Bitcoin retrocompatible avec les blocs de la blockchain créés
avant le fork .
La nouvelle version du protocole est compatible avec l’ancienne version du protocole.
Les nouveaux blocs créés par les mineurs ayant adopté le fork sont considérés comme valides par les
noeuds qui sont restés sur l'ancienne version du logiciel.
Chaque noeud utilisant l'ancienne version du logiciel peut continuer à réaliser sa tâche de validation
correctement, même si d'autres noeuds adoptent les changements.
Les nouvelles règles peuvent être déployées sans avoir le consentement explicite des noeuds
adhérant aux anciennes régles. Ils continueront à ajouter à leur blockchain les blocs créés selon les
nouvelles règles.
Les changements de règle dans le logiciel peuvent être déployés en douceur et progressivement.
142
Soft fork - Exemple
Segwit upgrade mis en oeuvre le 27 juillet 2017 et activé le 23 août 2017.
Permet d'inclure un plus grand nombre de transactions dans un seul bloc de 1Mb à 4Mb en
déportant certaines données du bloc dans une nouvelle portion ( segregated witness ) invisible aux
noeuds adhérant aux anciennes règles.
Crée un nouveau type d'adresses Bech32: Bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq.
143
Hard fork - Analogie
Un hard fork a lieu lorsqu'un changement dans le protocole Bitcoin propose aux noeuds des régles plus
larges .
Imaginez un restaurant végétarien qui décide d'élargir son offre en proposant des steaks.
Plus de plats sont proposés dans le menu -> les règles deviennent plus larges .
Les restaurant ne peut plus se faire valoir d'être végétarien.
Les clients végétariens ne peuvent plus manger tout ce qui est proposé sur la menu.
Les steaks ne sont pas compatible avec le végétarianisme.
144
Hard fork - Blockchain
Méthode d’actualisation du logiciel Bitcoin non retrocompatible avec les blocs de la blockchain créés
avant le fork .
La nouvelle version du protocole n’est pas compatibles avec l’ancienne version.
Un bloc invalide selon les anciennes règles peut devenir valide avec les nouvelles règles.
Pour adhérer aux nouveaux changements et accepter les nouveaux blocs, un noeud doit donner son
accord explicite en installant la nouvelle version du logiciel.
Le résultat d'un hard fork peut mener à deux cas de figure:
1. Hard fork non-contentieux.
2. Hard fork contentieux.
145
Hard fork non-contentieux
Le consensus est obtenu.
146
Hard fork contentieux
Le consensus est perdu: division en deux chaînes de blocs.
147
Hard fork - Exemple
Hard fork de Bitcoin Cash (BCH) mis en oeuvre le 1er août 2017.
148
Hard fork contentieux - Bitcoin Cash (BCH)
149
Hard fork & Cryptomonnaies
Un hard fork contentieux peut amener à faire coexister plusieurs versions différentes d’une même
cryptomonnaie originale !
Ces différentes versions sont en réalité des nouvelles cryptomonnaies totalement distinctes les unes
des autres, chacune possédant sa propre blockchain.
150
Protocole Bitcoin
Logiciel
Réseau
Problème du Général Byzantin
Fork
Consensus
Caractéristiques
151
Consensus sur la blockchain
En installant une version spécifique du logiciel Bitcoin, un noeud donne son accord pour se conformer
aux règles du protocole définies dans cette version du logiciel.
Tous les noeuds utilisant la même version du logiciel adhèrent strictement aux mêmes règles. Ils
adhèrent à un consensus.
Un fork est un changement introduit dans le protocole qui modifie les règles du jeu et peut ainsi
potentiellement modifier le consensus.
Afin de conserver une copie identique de la blockchain, les noeuds du réseau (mining nodes + full
nodes) doivent se mettre d’accord sur un ordre valide des nouveaux blocs à enregistrer dans leur
propre copie de la blockchain.
Un consensus majoritaire autour de la version officielle de la blockchain doit être établi entre les
différents noeuds du réseau.
152
Mécanisme de consensus
Seuls les mineurs peuvent proposer des nouveaux blocs à ajouter à la blockchain.
Ceux-ci doivent s'acquitter d’un paiement (investissement en matériel ASIC et frais d'électricité) lors
du processus de Preuve de Travail pour acquérir ce droit de proposer de nouveaux blocs.
Tous les noeuds (mining nodes + full nodes) ont le choix d’accepter ou de refuser le prochain bloc
transmis sur le réseau (vote individuel).
Le nouveau bloc est accepté par un scrutin à la majorité (mining nodes + full nodes).
Chaque scrutin dure 10 minutes.
Une rémunération encourage les mineurs à continuer à payer un droit pour proposer des nouveaux
blocs destinés aux scrutins suivants.
153
Byzantine Fault Tolerant Consensus
En s’alignant majoritairement sur la validité du prochain bloc proposé par les mineurs, ce mécanisme
permet à quiconque (noeuds) d’échanger des bitcoins en toute confiance sur un médium décentralisé dans
un environnement potentiellement hostile constitué d’acteurs qui ne sont pas fiables.
154
Nakamoto Consensus
Le consensus de Nakamoto fait référence à la règle d'or que tous les noeuds du réseau bitcoin suivent
lorsqu'ils décident de l'état réel de la blockchain:
Si deux mineurs minent des blocs différents et produisent ainsi des chaînes de blocs distinctes, la chaîne la
plus longue sera choisie par celui qui décide de miner le prochain bloc pour ne pas travailler pour rien sur
un bloc d'une chaîne qui risque d'être abandonnée.
En raison de la nature aléatoire du hachage, une chaîne plus longue émergera toujours, ce qui créera un
consensus. Tous les noeuds du réseau convergeront alors vers une même copie de la blockchain ce qui
rend pratiquement impossible le double spending .
155
Théorie des jeux - Équilibre de Nash
Dans la théorie mathématique des jeux, un équilibre de Nash est une situation dans laquelle le résultat
optimal est obtenu lorsque les joueurs ne sont pas incités à s'écarter de leur stratégie initiale.
L'obtention d'un consensus sur l'état de la blockchain est un équilibre de Nash qui assure qu'il est plus
profitable de sécuriser le réseau Bitcoin plutôt que de l'attaquer.
156
Protocole Bitcoin
Logiciel
Réseau
Problème du Général Byzantin
Fork
Consensus
Caractéristiques
157
Technologies
Le génie de Bitcoin ne réside pas dans les technologies que le protocole utilise, mais plutôt dans la
manière qu’elles fonctionnent ensemble:
158
Protocole interdisciplinaire
Le protocole Bitcoin est difficile à appréhender car
il se trouve au croisement de:
La cryptographie.
Les réseaux informatiques et de transmission
de données.
La théorie des jeux.
La théorie économique et monétaire.
159
Protocole multifacette
Utilisateur: Bitcoin est à la fois un réseau de paiement pair à pair et une monnaie électronique.
Comptable: Bitcoin est grâce à sa blockchain un registre transactionnel horodaté public et
décentralisé.
Informaticien: Bitcoin est un protocole auto-sécurisé qui s'appuie sur un système de confiance
distribué.
Mathématicien: Bitcoin est un modèle de consensus basé sur un équilibre de Nash.
Financier: Bitcoin est un système de transfert de valeur.
160
Fat Protocol
Inaltérabilité des données by process . Inaltérabilité des données by design .
161
Équation Bitcoin
Cette équation représente l'agenda d'émission des bitcoins.
Le résultat de cette équation donne le nombre total de tous les bitcoins émis = 20'999'999,97690000
(~21 millions) BTC.
162
Connaissance & Expertise
163
164
165
166
Sommaire
Introduction Protocole Bitcoin
Blockchain Portefeuilles Bitcoin
Transactions Cryptomonnaies
Minage Blockchain & Entreprise
167
Portefeuilles Bitcoin
Fonctions d’un portefeuille
Portefeuille logiciel
Portefeuille web
Portefeuille mobile
Portefeuille hardware
Portefeuille papier
Sécurité d’un portefeuille
168
Fonctions d’un portefeuille
Recevoir et envoyer des bitcoins.
Générer des adresses pour recevoir des
bitcoins -> générer des paires de clés
privée/publique (ECDSA).
Créer, signer et soumettre au réseau des
transactions bitcoins.
Stocker des paires de clés privées/publiques.
169
Portefeuille - Porte-clés numérique
170
Portefeuilles Bitcoin
Fonctions d’un portefeuille
Portefeuille logiciel
Portefeuille web
Portefeuille mobile
Portefeuille hardware
Portefeuille papier
Sécurité d’un portefeuille
171
Portefeuille logiciel - Software wallet
2 types de portefeuille logiciel:
172
Full Wallet
Portefeuille logiciel qui s'installe dans l'ordinateur.
Dispose d'un noeud local connecté au réseau (vérification locale des blocs et transactions).
Télécharge localement la blockchain (en 2025 ~ 700GB). Le téléchargement peut prendre plusieurs
jours.
Stockage local des clés privées (chiffré) sur le disque dur de l’ordinateur.
173
Full Wallet - Bitcoin Core
[Link]
[Link]
174
Light Wallet
Portefeuille logiciel qui s'installe dans l'ordinateur.
Simplified Payment Verification Wallet (SPV Wallet).
Se connecte à un noeud distant.
Pas besoin de télécharger la blockchain.
Stockage local des clés privées (chiffré) sur le disque dur de l’ordinateur.
175
Light Wallet - Electrum
[Link]
[Link]
176
Portefeuilles Bitcoin
Fonctions d’un portefeuille
Portefeuille logiciel
Portefeuille web
Portefeuille mobile
Portefeuille hardware
Portefeuille papier
Sécurité d’un portefeuille
177
Portefeuille web - Web wallet
Portefeuille en ligne.
Se connecte à un noeud distant sur le serveur.
Pas besoin de télécharger la blockchain.
Stockage des clés privées sur le serveur.
178
Portefeuille web - Coinbase
[Link]
179
Portefeuilles Bitcoin
Fonctions d’un portefeuille
Portefeuille logiciel
Portefeuille web
Portefeuille mobile
Portefeuille hardware
Portefeuille papier
Sécurité d’un portefeuille
180
Portefeuille mobile
App pour Android & iPhone.
Se connecte à un noeud distant.
Pas besoin de télécharger la blockchain.
Mécanismes de sauvegarde & restauration des clés.
181
Portefeuilles Bitcoin
Fonctions d’un portefeuille
Portefeuille logiciel
Portefeuille web
Portefeuille mobile
Portefeuille hardware
Portefeuille papier
Sécurité d’un portefeuille
182
Portefeuille hardware
Appareil électronique read-only avec port USB.
Stockage chiffré et offline des clés privées.
Signature offline des transactions.
Requière une connexion avec un portefeuille logiciel pour envoyer des transactions préalablement
signées.
183
Portefeuilles Bitcoin
Fonctions d’un portefeuille
Portefeuille logiciel
Portefeuille web
Portefeuille mobile
Portefeuille hardware
Portefeuille papier
Sécurité d’un portefeuille
184
Portefeuille papier
Page HTML et librairies Javascript à télécharger dans son ordinateur.
Générateur local de clé privée et clé publique.
La clé privée et clé publique imprimées sur papier.
Stockage offline des clés privées.
185
Portefeuille papier - bitaddress
Attention:
Le code source du générateur HTML de clés peut être malicieux et voler vos bitcoins !
[Link]
186
Portefeuilles Bitcoin
Fonctions d’un portefeuille
Portefeuille logiciel
Portefeuille web
Portefeuille mobile
Portefeuille hardware
Portefeuille papier
Sécurité d’un portefeuille
187
Sécurité d’un portefeuille
Portefeuille custodial vs non-custodial .
Portefeuille HD.
Phrase mnémonique.
Chiffrement du portefeuille.
Sauvegarde du portefeuille.
188
Portefeuille custodial vs non-custodial
189
Portefeuille custodial
PRO - Facilité de gestion: pas d’installation de logiciel portefeuille et pas de sauvegarde locale des
clés privées.
PRO - Interface graphique conviviale: facilité et rapidité d’usage.
PRO - Récupération du compte: option de récupération du mot de passe en cas d'oubli, assurance de
ne pas perdre l'accès à ses fonds.
CON - Contrôle limité: clés privées en possession du fournisseur de service et stockées sur ses
serveurs (portefeuille en ligne, plate-forme d’échange, processeur de paiement, tierce partie...).
CON - Sécurité dépendante: service centralisé similaire à celui d’une banque (Trustless -> Single
Point of Failure ). Risque de brèche de sécurité, hacking, bloquage ( freeze ) et vol des clés (vol des
bitcoins).
CON - Procédure KYC/AML: invasif et non confidentiel.
190
Portefeuille custodial
"Not your keys, not your bitcoins."
"Not your node, not your rules."
191
Portefeuille non-custodial
PRO - Souvraineté financière: l'utilisateur est en possession de ses clés et contrôle donc l'accès à ses
bitcoins. Be your own Bank .
PRO - Réduction des risques: non dépendant d'un services tiers pour la gestion des fonds, ce qui
réduit le risque de pertes financières liées à l'insolvabilité d'une entreprise ou à une gestion
inadéquate.
PRO - Confidentialité: intéraction directe avec la blockchain.
CON - Responsabilité individuelle: réaliser une sauvegarde du portefeuille (des clés privées).
CON - Absence d'options de récupération: perte des clés privées -> perte de l’accès aux bitcoins.
CON - Interface graphique complexe: L'interface des portefeuilles non-custodials peut être moins
conviviale et peut requérir un certain niveau de compréhension des aspects techniques de Bitcoin.
192
Portefeuille HD - Objectif
Faciliter la sauvegarde et restauration des portefeuilles non-custodials .
Hierarchical Deterministic
Hiérarchie: une donnée unique maîtresse ( seed ) permet de générer une liste "infinie" de paire de clés
privée/publique organisées hiérarchiquement (arbre).
Déterministe: processus de restauration instantané du portefeuille et de toutes ses clés et adresses
au moyen d’une seule information ( seed ).
193
Portefeuille HD - Seed
194
Portefeuille HD - Avantage
Le seed est un nombre aléatoire de 256 bits. Il existe donc seeds possibles (=
et on estime qu'il existe environ ~ atomes dans l’Univers observable). La probabilité d'une
collision (que le même seed soit généré deux fois) est quasi nulle.
La sauvegarde du seed est nécessaire une seule fois, plus besoin de sauvegarder les différentes clés
privées de chaque adresse individuellement via une sauvegarde périodique du portefeuille.
Pour chaque transaction reçue, une nouvelle adresse de paiement est générée automatiquement.
1 adresse par transaction offre plus de confidentialité.
Restauration instantanée du portefeuille sur une autre machine au moyen du seed .
195
Phrase mnémonique
Représentation encodée du seed sous forme
d’une liste de 12 ou 24 mots (BIP39).
La sauvegarde de la phrase mnémonique ( seed
phrase ) au lieu du seed sous forme de nombre
est plus pratique.
La phrase mnémonique est suffisante pour
pouvoir restaurer l’intégralité des clés privées
et adresses d’un portefeuille.
Exemple de phrase mnémonique de 12 mots:
witch collapse practice feed shame open despair
creek road again ice least
196
Phrase secrète - Passphrase
Un mot ou une phrase facultative de votre
choix qu'on peut ajouter à la phrase
mnémonique (13ème mot ou 25ème mot).
Couche de sécurité additionnelle: si quelqu'un
accède à la phrase mnémonique, il ne pourra
pas accéder aux fonds sans connaître
également la phrase secrète.
Les phrases secrètes permettent d'utiliser
différents portefeuilles avec une seule phrase
mnémonique. Chaque phrase secrète unique
mène à un portefeuille différent.
197
Sauvegarde du portefeuille HD
Support de sauvegarde offline
Sauvegarde de la phrase mnémonique correspondant au seed du portefeuille sur un support offline.
Sauvegarde de la phrase secrète du portefeuille sur un support offline.
Attention !
En cas de perte de la phrase secrète, vous perdrez définitivement l'accès à vos fonds, même si vous
disposez de votre phrase mnémonique.
198
Sommaire
Introduction Protocole Bitcoin
Blockchain Portefeuilles Bitcoin
Transactions Cryptomonnaies
Minage Blockchain & Entreprise
199
Cryptomonnaies
Généralités
Altcoins de 1ère génération
Forkcoins
Altcoins de 2ème génération
Tokens
200
Cryptomonnaies - Généralités
Il existe des milliers de cryptomonnaies. Nombreuses sont les cryptomonnaies qui ont été créées à des
fins spéculatives...la plupart sont sans intérêt...
[Link]
201
Cryptomonnaies
Généralités
Altcoins de 1ère génération
Forkcoins
Altcoins de 2ème génération
Tokens
202
Altcoins de 1ère génération
Clones du code source de Bitcoin
203
Altcoins de 1ère génération
Paramétrage
Algorithme de la fonction de hachage du PoW (SHA-256, Scrypt, Blake...).
Block Time (10 minutes, 2.5 minutes, secondes...).
Emission totale (21 millions, 84 millions, 150 milliards...).
Récompense initiale de bloc (50 BTC).
Halving (210’000 blocs, 840’000 blocs,...).
204
Altcoins de 1ère génération
Litecoin
Né le 7 octobre 2011.
Fork du code source de Bitcoin.
Consensus: Preuve de Tavail.
Algorithme de la fonction de hachage: Scrypt
(utilisation intensive de la mémoire: carte
graphique GPU).
Block Time: 2.5 minutes.
Emission totale: 84 millions de LTC.
Récompense initiale de bloc: 50 LTC.
Halving: 840’000 blocs. [Link]
205
Altcoins de 1ère génération
Dogecoin
Né en décembre 2013.
Fork du code source de Litecoin.
Consensus: Preuve de Tavail.
Algorithme de la fonction de hachage: Scrypt.
Block Time: 1 minute.
Emission totale: ∞.
Récompense initiale de bloc: Aléatoire Min 0 -
Max 1'000'000 DOGE (à partir de 2015 fixe de
10'000 DOGE).
Halving: 100'000 blocs (à partir de 2015 [Link]
aucun halving).
206
Cryptomonnaies
Généralités
Altcoins de 1ère génération
Forkcoins
Altcoins de 2ème génération
Tokens
207
Forkcoins
Un hard fork contentieux de la blockchain peut amener à faire coexister plusieurs versions différentes
d’une même cryptomonnaie originale !
Ces différentes versions sont en réalité des nouvelles cryptomonnaies totalement distinctes les unes
des autres, chacune possédant sa propre blockchain.
Un forkcoin est une nouvelle cryptomonnaie issue d'un hard fork contentieux.
208
Forkcoins de Bitcoin
209
Fork Code Source vs Fork Blockchain
210
Cryptomonnaies
Généralités
Altcoins de 1ère génération
Forkcoins
Altcoins de 2ème génération
Tokens
211
Altcoins de 2ème génération
Nouveau code source avec de nouvelles fonctionnalités.
Confidentialité.
Types de Consensus.
Turing-Complet.
212
Confidentialité
Privacy Coins
Les privacy coins utilisent différentes techniques cryptographiques pour anonymiser et occulter les
adresses et les montants des transactions enregistrées dans la blockchain.
213
Altcoins de 2ème génération
Nouveau code source avec de nouvelles fonctionnalités.
Confidentialité.
Types de Consensus.
Turing-Complet.
214
Types de Consensus
Preuve de Travail (Proof-of-Work - PoW).
Preuve de Participation - Preuve d'Enjeu (Proof-of-Stake - PoS).
Délégation de la Preuve de Participation (Delegated Proof-of-Stake - DPoS).
Preuve de Capacité (Proof-of-Capacity - PoC).
...
215
Preuve de Travail (Proof of Work)
Pour sécuriser le réseau, un mineur investit dans des équipements informatiques puissants et met à
disposition du temps de travail (calcul des hashes ).
216
Preuve de Participation (Proof of Stake)
Pour sécuriser le réseau, un participant ( staker ) investit une quantité de cryptomonnaie dans le
système pour acquérir le droit de créer ( minter, forger ) des blocs.
Le participant ( staker ) doit prouver la possession d'une certaine quantité de cryptomonnaie (sa
"participation" dans la blockchain) pour prétendre pouvoir:
1. Minter et ajouter des blocs à la chaîne de blocs et ainsi être récompensé par les frais de
transaction.
2. Voter sur des choix de gouvernance concernant les décisions et développements furturs de la
cryptomonnaie.
Afin que les producteurs de blocs aient un intérêt dans le réseau, on va établir un consensus sur la
validité des blocs au moyen de la possession de cryptomonnaie plutôt que par le travail accumulé.
217
Preuve de Participation - Mécanisme
Les participants ( stakers ) mettent en jeu (en dépôt) dans le système une quantité de cryptomonnaie
en leur possession.
La quantité de cryptomonnaie est bloquée dans la blockchain au moyen d’une transaction spéciale.
Un participant (producteur de bloc) est choisi automatiquement par un algorithme en fonction de sa
participation sur le réseau pour minter le prochain bloc.
Si le bloc proposé par le participant est valide et accepté par le réseau, il reçoit en récompense les
frais de transaction.
Si le participant triche et que son bloc est rejeté par le réseau, il est pénalisé et perd la quantité qu’il
a mise en jeu.
Le participant peut à tout moment ne plus participer et débloquer sa mise en jeu (son dépôt) au moyen
d’une transaction spéciale.
Analogie: compte épargne de dépôt qui rapporte des intérêts.
218
Preuve de Participation - Caractéristiques
En général pas de nouvelle émission de cryptomonnaie au moyen d’une récompense de bloc ( pas de
block reward ).
Récompense des participants uniquement sur les frais des transactions.
A sa création, l’intégralité de la cryptomonnaie est émise en une seule fois ( pre-mining ).
Le pre-mining favorise les développeurs du projet et early adopters de la cryptomonnaie qui s'en
réserve au départ un grande partie -> centralisation de la participation.
Certaines cryptomonnaies mixent les consensus:
Preuve de Travail: validation des blocs avec récompense de bloc.
Preuve de Participation: uniquement pour le vote sur les décisions de gouvernance.
219
Preuve de Participation - Pour & Contre
PRO: Peu énergivore.
PRO: Droit de vote sur les décisions de gouvernance.
CON: Favorise les plus riches -> centralisation.
CON: Le montant investit doit être placé dans un portefeuille connecté à Internet ( hot wallet ) ->
risque de se faire hacker.
CON: La production d’un nouveau block PoS n’a pas de coût en soi, elle ne requière pas de faire appel à
des resources externes (énergie) engendreant un coût mesurable. Une attaque pour modifier un bloc
sur une blockchain PoS n'a donc pas de coût externe, il suffit juste de posséder une quantité suffisante
de cryptomonnaie pour réaliser une telle attaque (vulnérabilité nothing at stake ). Un petit groupe de
validateurs peut donc contrôler le réseau et ses règles.
220
Preuve de Travail vs Preuve de Participation
221
Délégation de la Preuve de Participation
(Delegated Proof of Stake)
Le détenteur de cryptomonnaie délègue son droit de valider des blocs et son droit de vote à un noeud
validateur.
222
Preuve de Participation - Exemples
Ethereum 2.0 (ETH) Cardano (ADA) Solana (SOL)
223
Altcoins de 2ème génération
Nouveau code source avec de nouvelles fonctionnalités.
Confidentialité.
Types de Consensus.
Turing-Complet.
224
Turing-incomplet Turing-complet
Un système est dit Turing-incomplet s’il est Un système est dit Turing-complet s’il dispose
limité à résoudre un seul problème ou calcul. des opérations nécessaires pour résoudre tous
Bitcoin est Turing-incomplet. les problèmes de calcul informatique qui
peuvent se poser.
Un ordinateur standard est Turing-complet.
La plupart des langages de programmation
sont Turing-complet.
Ethereum, Cardano, Solana, Tron, Tezos,
Avalanche sont Turing-complets.
225
Bitcoin - Turing-incomplet Ethereum - Turing-complet
Bitcoin intègre Script un langage de Ethereum intègre Solidity un langage de
programmation primaire qui dispose d’un jeu programmation avancé.
limité d’opérations. Solidity permet de créer tout type
Script permet principalement de débloquer les d’applications (pas limité à un simple système
inputs d’une transaction et de les assigner aux de paiement).
outputs du destinataire. Les applications Ethereum sont déployées sur
Script est un langage restreint centré tous les noeuds du réseau Ethereum.
uniquement sur l’exécution de transactions de DApps - Decentralized Applications / DeFi -
type monétaire (système de paiement). Decentralized Finance (sans autorité centrale).
Cette limitation est un choix volontaire de Les DApps sont construites au moyen de
Satoshi Nakamoto pour des raisons sécuritaires contrats intelligents ( smart contracts ) codés
(anti-spam - boucle infinie). avec le langage Solidity.
226
Contrat intelligent - Origine
Nick Szabo - Ingénieur Cryptographe.
En 1994 il publie ses premiers travaux sur la
notion de contrat intelligent ( smart contract ).
227
Contrat intelligent - Analogie
Un contrat est un accord en deux ou plusieurs parties qui les lie à quelque chose qui va se passer dans le
futur.
Distributeur Automatique
228
Contrat intelligent - Caractéristiques
Un contrat intelligent n’a rien d’intelligent (buzzword) !
Un "petit" programme informatique (algorithme) qui s’exécute si certaines conditions sont réunies.
Il est stocké dans la blockchain et donc répliqué sur tous les noeuds du réseau.
Il peut donc être appelé et exécuté par n’importe quel noeud du réseau.
L'interaction avec un contrat intelligent est payante et se réalise au moyen d’une transaction.
Le résultat de l’exécution conduit à une actualisation de la blockchain.
229
Contrat intelligent - Transactions
Deux types de transactions:
230
Contrat intelligent - Exemple 1
Contrat intelligent appliqué à la vente d’une maison payable en ether (ETH) avec émission d'un certificat
de propriété numérique.
231
Contrat intelligent - Exemple 2
Contrat:
Alice et Bob font un pari de 20.- sur le résultat d'un événement sportif.
Chacun bloque dans un contrat intelligent soumis à la blockchain le montant de 20.- au moyen
d'une transaction.
Événement:
Le contrat vérifie le résultat de l'événement sportif via une source externe (oracle).
Exécution:
Le contrat transfère les 20.- du perdant au gagnant ainsi que sa mise initiale au moyen d'une
transaction.
Règlement final ( Settlement ):
Une fois cette transaction insérée dans un nouveau bloc, le règlement de l'exécution du contrat
intelligent peut être considéré comme finalisé.
232
Contrat intelligent - Oracle
Un oracle est le service en charge de donner au contrat intelligent des réponses sur le monde
physique (fournisseur de données du monde réel). Il détermine ce que le contrat intelligent voit du
monde réel.
Il doit exister un lien définitif entre le monde numérique et le monde physique (e.g. vérification d'un
résultat sportif).
Le problème de l’oracle: c'est un tiers de confiance centralisé -> single point of failure .
Pour qu’un contrat intelligent puisse s’affranchir d’un oracle et être considéré 100% trustless , les
conditions du contrat doivent être des informations vérifiables par les noeuds et natives à la
blockchain concernée, sans aucune intervention extérieure (e.g. transaction de cryptomonnaie).
Exemple de service d'oracle: [Link]
233
Contrat intelligent - Bitcoin
Le langage Script utilisé dans Bitcoin est Turing-incomplet -> une capacité limitée de création de
contrats intelligents.
Une transaction Bitcoin est une forme de contrat intelligent.
Conditions: fonds suffisant, signature correcte, etc...
Exécution: paiement (exécution de la transaction).
Transaction standard, transaction multi-signature, transaction avec locktime ...
Les conditions du contrat transactionnel sont natives à la blockchain et au protocole Bitcoin (UTXO
non-consommé, signature valide,...). Pas besoin d'oracle !
234
Code Serveur vs Contrat intelligent
235
Contrat intelligent - Résumé
PRO Distribué: tous les noeuds du réseau disposent d’une copie du contrat.
PRO Trustless: sa correcte exécution est vérifiée par tous les noeuds du réseau.
PRO Transparent: le code du contrat est public et peut être audité.
PRO Fiabilité: pas d’interruption de service.
PRO Inaltérable: le code est l’autorité ultime des clauses du contrat ( Code is Law ).
CON Bugs: Sujet à des potentiels bugs difficile à corriger étant donné la nature inaltérable du contrat
intelligent.
CON Peu efficient: la seule manière pour les noeuds de vérifier l’exécution correcte d’un contrat
ajouté à nouveau bloc et d’exécuter eux-même le contrat et comparer la réponse avec celle fournie
dans le bloc minté .
CON Dépendance aux données du monde réel: faire appel à des oracles -> single point of failure .
236
Contrat intelligent - Objectif idéal
Faire respecter les conditions d’un contrat (accord, algorithme) et l’exécuter de façon automatique,
impartiale et sécurisée tout en éliminant les intermédiaires.
Les contrat intelligents font sens pour des transactions basées sur des règles immuables. Il n’y pas
d’espace pour l'ambiguïté et l'interprétation.
"Code is Law"
237
Smart Contract
238
DApps - Decentralized Applications
Une DApp s’appuie sur un ou plusieurs contrats intelligents pour fournir son service applicatif.
Les contrats intelligents implémentent la logique et fonctionnalité d’une DApp.
Les contrats intelligents rendent possible le déploiement d’applications décentralisées via la
blockchain.
239
DApps - Exemple
Plate-forme décentralisée de distribution de musique - Dotify ️
Service permettant aux musiciens d’uploader et vendre leur musique directement et sans intermédiaire.
Un musicien uploade un fichier mp3 sur le serveur du service et se registre auprès du contrat
intelligent:
Le contrat intelligent registre l’empreinte (hash) du mp3, enregistre le prix par téléchargement et
l’adresse (clé publique) du musicien pour lui envoyer les paiements.
Un utilisateur achète la musique:
L’utilisateur envoie un montant en cryptomonnaie (e.g. ETH) à l’adresse du contrat intelligent qui
lui donne la permission de télécharger le morceau depuis le serveur.
Paiement au musicien:
Le contrat intelligent réalise le paiement à l’adresse du musicien.
240
DApps - Exemple
Architecture du service
241
DApps - Exemple
Déploiement du contrat intelligent
242
DApps - Exemple
Upload de la musique
243
DApps - Exemple
Paiement et téléchargement de la musique
244
DApps - Exemple
Single Point of Failure du serveur du site
245
DApps - Une fausse bonne idée ?
Du moment qu'un service gère des biens ou objets hors blockchain, un single point of failure existe
et le service devient vulnérable aux attaques.
Répliquer l’empreinte d’un fichier mp3 sur la blockchain de milliers de noeuds est-il vraiment
nécessaire ?
La valeur d’une application réside-t-elle dans son usage ou dans l’inaltérabilité des règles et des
données ?
246
DApps - Explorer
[Link]
247
Cryptomonnaies
Généralités
Altcoins de 1ère génération
Forkcoins
Altcoins de 2ème génération
Tokens
248
Tokens (Jetons)
Représentation numérique de quelque chose qui a de la valeur.
L’émission d’une variété de tokens se fait au moyen d’un smart contract.
L’utilisation d’une variété de tokens est limitée à un service ou application spécifique (DApp).
La sécurisation des tokens s’appuie sur le mécanisme de consensus d’une blockchain sous-jacente et
de sa cryptomonnaie native.
249
Classes de tokens
Utility Tokens. Tokens Fongibles.
Security Tokens. Tokens Non-Fongibles (NFT).
250
Utility Tokens (Appcoins)
Nature: jeton numérique qui représente le droit d'accéder à un service ou d’utiliser une fonctionnalité
dans une DApp.
Analogie: jetons utilisés dans un casino ou dans un parc d’attraction.
Objectif: introduire des mécanismes et incitations économiques au sein d’une application (DApp).
Exemples: monnaie virtuelle dans un jeu, débloquer des fonctionnalités, récompenses, achat d’objets
virtuels...
Fonction: outil d'interaction avec un service/fonctionnalité.
Emission: ICO ( Initial Coin Offering ) - offre d'achat des jetons pour financer un projet avec une
promesse d’un futur succès de la Dapp -> pas de régulation -> énormément d'arnaques.
Valeur: dérive de l’utilité du jeton.
Usage: DApps, jeux, cartes fidélité,...
251
Utility Tokens - Exemples
Enjin (ENJ) Augur (REP) 0x (ZRX)
252
Security Tokens
Nature: jeton numérique qui représente les droits que quelqu’un possède sur un bien.
Exemples: actions d’une société, obligations, bien immobilier, lingot d’or, baril de pétrole, pierre
précieuse, dette, crédit, royalties, collection d’art, véhicule, etc…
Tout bien matériel ou immatériel qui possède une valeur intrinsèque.
Objectif: faciliter et sécuriser grâce à la blockchain l’échange et transfert de propriété d’un bien de
valeur.
Fonction: investissement ( Digital Asset ).
Emission: STO (Security Token Offering) - soumis à régulation.
Valeur: dérive directement de la valeur du bien en contrepartie qu’il représente.
Usage: Finance - Programmable Ownership .
253
Security Tokens - Exemples
Plate-formes permettant d'investir et échanger des actifs réels tokenisés .
254
Tokens Fongibles
Nature: tous les tokens émis d’une même variété ont la même valeur.
Exemple: Stablecoins, tokens alignés sur le prix du USD, EUR...le peg est maintenu au moyen d'un
algorithme et en théorie d'une réserve de garantie en contrepartie.
255
Tokens Non-Fongibles (NFT)
Nature: les tokens émis d’une même variété n’ont pas tous la même valeur.
Analogie: collection de cartes Pokemon ou Panini.
Valeur: dérive directement de la rareté de l’objet en contrepartie qu’il représente.
Exemple: Collections numériques à édition limitée, art numérique, portion de terrain dans un
metavers, musique...
Propriété: un NFT représente un certificat digital sous forme de reçu numérique d’autenticité qui
atteste qui est le propriétaire de l’objet tokenisé .
256
Tokens Non-Fongibles (NFT) - Exemples de collections
CryptoKitties Bored Ape Yacht Club CryptoPunks
257
Tokens Non-Fongibles (NFT) - Plate-formes d'échange
258
Tokens Non-Fongibles (NFT) - Une fausse bonne idée ?
Stockage du média centralisé
Le NFT contient un pointeur (empreinte/hash) vers le media lui-même hébergé dans un serveur centralisé
-> Single Point of Failure .
259
Bitcoin ≠ Crypto
260
Sommaire
Introduction Protocole Bitcoin
Blockchain Portefeuilles Bitcoin
Transactions Cryptomonnaies
Minage Blockchain & Entreprise
261
Blockchain & Entreprise
Monnaie
Mise à l'échelle
Timechain
Applications business
262
Fonctions d’une monnaie
1. Réserve de valeur: conservation de sa valeur dans le temps sans souffrir de grosses fluctuations
(faible volatilité).
2. Moyen d’échange: possibilité de réaliser des transactions pour acheter et vendre des biens et
services.
3. Unité de compte: capacité de mesurer la valeur des biens et services et d'y mettre un prix avec une
reconnaissance à large échelle.
263
Propriétés d’une monnaie
1. Rareté: La rareté, ou l'offre limitée, est une propriété essentielle d'une monnaie saine. Si la monnaie
est trop abondante, elle perd de sa valeur au fil du temps.
2. Durabilité: elle doit être durable pour pouvoir circuler et être utilisé à plusieurs reprises sans risque
d'usure et de détérioration et donc de dépréciation de sa valeur.
3. Acceptabilité (Vérifiabilité): elle doit être facile à reconnaître et difficile à contrefaire afin d'être
acceptée comme moyen d'échange pour payer des biens et des services dans un espace économique
donné.
4. Portabilité: elle doit être facile à transporter, physiquement ou numériquement, afin de pouvoir être
transféré dans le cadre d'échanges commerciaux.
5. Divisibilité: elle doit pouvoir être divisé en parties plus petites.
6. Fongibilité: les pièces de monnaie et billets devraient être totalement interchangeable. La valeur
indiquée sur la face fait foi, que la pièce soit neuve, vieille, brillante ou oxydée.
264
265
Propriétés additionnelles d’une monnaie
Depuis l'apparition de la monnaie numérique, trois propriétés monétaires supplémentaires peuvent
être envisagées.
1. Historique établi: l'effet Lindy suggère que l'espérance de vie future d'une chose non périssable (une
monnaie, une technologie ou une idée) est proportionnelle à son âge actuel. Plus une chose a survécu
longtemps et est restée pertinente, plus la probabilité qu'elle continue à survivre augmente. Sa
longévité indique une résistance au changement, à l'obsolescence ou à la compétition.
2. Résistance à la censure: c'est une garantie que personne ne peut se voir confisquer son argent ou être
empêché de son utilisation.
3. Programmable: permet de spécifier informatiquement un comportement automatisé d'un paiement
monétaire selon certaines conditions établies.
266
Monnaie fiduciaire vs Or vs Bitcoin
Fonctions/Propriétés Monnaies fiduciaires (EUR, USD) Or Bitcoin
Réserve de valeur (dévaluation et inflation) (hodl)
Rareté (planche à billet) (~ 170 millions Kg) (max. 21 millions)
Durabilité (résistance aux attaques)
Moyen d’échange (économie circulaire)
Acceptabilité (contrefaçon) (analyse chimique)
Portabilité (lourd) (clé privée / seed)
Unité de compte (bitcoin)
Divisibilité (industriel) (1 BTC = 100'000'000 sat)
Fongibilité (blockchain analytics)
Historique établi (pas assez de recul) (pas assez de recul)
Résistance à la censure (IOU)
Programmable
267
268
CBDC (Central Bank Digital Currency) vs Bitcoin
269
Bitcoin - Or numérique
Electronic Cash -> Rareté -> HODL -> Réserve de valeur -> Digital Gold
270
271
272
Blockchain & Entreprise
Monnaie
Mise à l'échelle
Timechain
Applications business
273
Bitcoin - Limitations
Consommation énergétique: l’électricité est le carburant qui alimente la sécurité de Bitcoin.
Centralisation du minage: risque d’attaque à 51%.
Taille de la blockchain Bitcoin (année 2025): ~ 700 GB.
Temps de confirmation d’une transaction pour les marchands: block time de 10 minutes.
Distribution de richesse (max. 21 millions BTC): dans les mains d’un nombre réduit d’ early adopters .
Difficulté d’utilisation: sécurisation d’un portefeuille.
Capacité du réseau (TPS): Bitcoin max. 7 tx/s - Ethereum ~ 15 -> 25 tx/s - Solana ~ 5'000 -> 50'000
tx/s - Paypal ~ 193 tx/s - VISA ~ 1'700 -> 24'000 tx/s.
274
Bitcoin - Consommation énergétique
Pour obtenir le meilleur rendement, les mineurs s'installent dans des zones proches des sources
d'énergie bon marché produite en surplus et qui serait de toute manière gaspillée sans demande.
Le problème n'est pas la quantité d'énergie utilisée par les mineurs, mais la quantité d'énergie
carbonée. Les mineurs consomment en grande partie des énergies renouvelables (géothermique ou
hydroélectrique).
Les 4,6 milliards de streams de "Despacito" ont consommé autant d'électricité que la consommation
annuelle combinée du Tchad, de la Guinée-Bissau, de la Somalie, de la Sierra Leone et de la République
centrafricaine (Source).
275
Scalability Trilemma
276
Scalability Trilemma - Solutions
Mise à l’échelle horizontale: augmenter la taille des blocs au détriment de la décentralisation et de la
sécurité - Bitcoin Cash (8 MB).
Mise à l’échelle verticale: Bitcoin Layer 2 - Lightning Network.
Mise à l’échelle en parallèle: Sidechain au détriment de la décentralisation et de la sécurité - Liquid
Network.
Sacrifier la décentralisation: Blockchain privée.
277
Mise à l’échelle verticale
Bitcoin Layer 2 - Lightning Network ️
Layer 2 Layer 1
278
279
Lightning Network - Portefeuilles
[Link] [Link]
280
Mise à l’échelle en parallèle
Sidechain - Liquid Network (L-BTC)
Le Liquid Network est une sidechain de la
blockchain Bitcoin, créé par la société
Blockstream.
Constituée d'une fédération de validateurs
indépendants (semi-centralisé).
Propose une conversion 1-1 entre BTC et L-
BTC ( two-way peg ).
Permet d'exécuter des transactions
confidentielles, de réaliser des émissions
d'actifs financiers numériques ( digital assets ),
d'échanger des tokens, stablecoins, NFT avec
une consolidation ( settlement ) en 2 minutes (2
blocs, 1 bloc par minute).
281
Blockchain privée
Blockchain publique Blockchain privée
Permissionless . Permissioned .
Analogie: Internet. Analogie: Intranet.
Exemples: Exemples:
Bitcoin. Blockchain d'entrerpise: blockchain
Ethereum. interne à une seule entreprise.
Cryptomonnaies. Blockchain fédérée: blockchain industrielle
partagée entre un consortium de plusieurs
entreprises.
Slogan: "Blockchain not Bitcoin" .
282
Blockchain publique vs Blockchain privée
Blockchain publique Blockchain privée
Ouverte à la participation: lecture, écriture et Fermée: lecture, écriture et audit seulement
audit en libre accès ( permissionless ). sous autorisation pour une ou plusieurs entités
Pseudo-anonyme. ( permissioned ).
Token natif (cryptomonnaie): actif échangé vit Identité établie des acteurs.
on-chain. Pas de token natif: actif échangé vit off-chain
Mineurs/Minters avec récompense (PoW/PoS). ( single point of failure ).
Lente et montée en charge difficile. Validateurs sans récompense.
Décentralisée. Efficace et montée en charge possible.
Sécurité élevée. Partiellement centralisée.
Sécurité affaiblie.
283
Base de données partagée vs Blockchain privée
284
Base de données vs Blockchain privée - Comparatif
Base de données Blockchain privée
Centralisation Totale Partielle
Optimisée et garantie par des Technologie récente, développement coûteux, encore
Mise en service
dizaines d’années d’expérience expérimental
Restauration, sauvegarde et Données inaltérables, requiert un consensus de tous les noeuds
Bug
rollback rapide (validateurs) pour un rollback
Acteur Révocation instantanée de Consensus de tous les validateurs pour révoquer un acteur
malhonnête l’accès de l’acteur malhonnête malhonnête
Écriture, validation et stockage Écriture, validation et stockage exécutés par tous les noeuds de
Enregistrement
exécutés une seule fois la blockchain
Doit être réalisé par tous les noeuds pour conserver le
Actualisation Actualisation rapide et
consensus sur les règles de validation à appliquer, ou doit être
logicielle centralisée
rétrocompatible
Facile et rapide à mettre en
Mise à l’échelle Délicate, le nombre de noeuds est un frein
place
285
Blockchain privée - Une fausse bonne idée ?
Félicitations ! Vous avez créés une base de données partagée inefficiente ️
Une blockchain privée est plus coûteuse qu’une base de données en terme de mise en service,
maintenance, actualisation, mise à l’échelle...
Le point fort d’une blockchain privée est sa nature "partiellement" décentralisée qui minimise le
risque de single point of failure .
Si les règles de validation et actualisations de software changent fréquemment, le choix d’une base
de donnée sera plus adaptée qu’une blockchain privée.
L’inaltérabilité et la résistance au changement est un atout de stabilité pour une monnaie, c’est pour
cette raison qu’une blockchain est un outil bien adapté aux cryptomonnaies, mais pas nécessairement
à d'autres usages.
286
Blockchain privée - Usage
Questions à se poser...
Besu et Quorum sont basés sur la blockchain Ethereum adaptée à un usage privé.
Mécanismes de consensus: Raft (Fabric), Proof of Authority (PoA - Besu), Istanbul Byzantine Fault
Tolerance (IBFT - Quorum).
288
Blockchain & Entreprise
Monnaie
Mise à l'échelle
Timechain
Applications business
289
Timechain
Le terme blockchain n’a jamais été employé par Satoshi Nakamoto, il est apparu plus tard…Satoshi
Nakamoto a préféré employer le terme timechain.
290
Timechain - Enregistrement d’information
Selon les blockchains, il existe la possibilité
d’introduire dans une transaction un texte/image
arbitraire de taille réduite (NFT) ou de créer des
tokens fongibles (stablecoin/DeFi) qui seront
enregistrés et visibles dans la blockchain lorsque
la transaction sera incluse dans un bloc.
291
Timechain - Vérité vs Validité vs Existence
Mythe: les informations contenues dans la blockchain sont vraies.
Dans une blockchain la notion de "vérité" signifie que la majorité des noeuds du réseau sont arrivé à
un consensus sur l’ordre et la validité des blocs de transactions.
La majorité des noeuds se sont mis d’accord sur une même "vérité" chronologique transactionnelle.
Enregistrer une information dans la blockchain ne veut pas dire que cette information soit comme par
magie automatiquement vraie ou correcte.
Enregistrer une information dans la blockchain établit un point dans le temps à partir duquel on peut
établir avec certitude que cette information a existé (timechain).
292
Timechain - Analogie
Le tampon daté par la poste appliqué sur le timbre d’une enveloppe qui garantit que ce qui a été mis dans
l’enveloppe l’a été avant la date du tampon.
Une timechain est une base de données publique et distribuée qui permet à n’importe qui de constater
que "quelque chose" a eu lieu à un moment donné. Une timechain est un journal horodaté ( timestamping
log ).
293
Timechain - Preuve d'Existence
Proof of Existence (PoE)
294
Timechain - Certification
Prouver qu’un document a existé à une date donnée sans révéler ni rendre public son contenu.
Certifier que celui qui a publié le document a été en possession de ce document sans révéler ses
informations personnelles.
Ne garantit pas que le propriétaire du document en est l’auteur original.
Garantir l’intégrité du contenu du document.
L’ancrage de l'empreinte d'un document permet de prouver publiquement que vous possédez une certaine
information sans en révéler son contenu ni votre identité.
295
Timechain - Services de notariat
Notary Services
[Link] [Link]
296
Timechain - Provably Fair
1. Un opérateur de jeux de hasard en ligne (casino) peut prouver que le résultat d’un jeu a été produit
selon une procédure aléatoire honnête et loyale.
2. Un joueur peut vérifier que le tirage d’un jeu n’a pas été manipulé.
1. Tirage au sort.
2. Vérification de l'empreinte du serveur.
3. Vérification du résultat du tirage au sort.
297
Timechain - Provably Fair
Tirage au sort
299
Timechain - Provably Fair
Exemples de jeux en ligne provably fair
300
Timechain - Audit
Dans une timechain un fournisseur et consommateur de données ont la preuve qu’une donnée a existé à
un temps t et qu’elle n’a pas été altérée.
301
Blockchain & Entreprise
Monnaie
Mise à l'échelle
Timechain
Applications business
302
Applications business
Cas d’utilisations types:
303
Applications business
Registre de propriété
Usage: enregistrer et prouver la possession d’un bien de valeur ( asset ), et vérifier le transfert de
propriété d’un bien.
Bien: jeton numérique (digital token).
1. Jeton numérique natif constitue le bien (bitcoin, cryptomonnaie).
2. Jeton numérique représente un droit de propriété sur un bien externe (titre financier, bien
immobilier,...).
Consensus: le réseau valide, accepte et enregistre dans la blockchain la transaction de changement de
propriété.
304
Applications business
Registre d’activité
Usage: enregistrer une preuve horodatée inaltérable de l'existence d’une donnée.
Donnée: tout type d’information sous forme d’empreinte (un document, une image, un événement, un
contrat signé entre parties...).
Consensus: le réseau valide, accepte et enregistre dans la blockchain l’empreinte de la donnée au
moyen d'une transaction.
Dans le cas d’un contrat légal entre parties, une transaction multi-signatures avec l’empreinte ( hash ) du
contrat est signée cryptographiquement (clé privée) par chacune des parties à des fins de non-
répudiation (ne peut être remis en cause par l'une des parties).
305
Applications business - Exemples
Echange de titres financiers (actions, obligations…).
Registre cadastral et foncier.
Echange d’objets virtuels dans les jeux vidéos.
Traçabilité chaîne logistique (transparence et authentification: provenance, transporteur,
distributeur, revendeur) - Industrie alimentaire, automobile, pharmaceutique, luxe...
Protection et transfert de copyright (photo, musique...).
Emission et transfert de certificats (diplôme d’étude, de formation professionnelle, certificat
d’origine...).
Emission et transfert de contrats d’assurance.
Enregistrement de documents légaux.
Programme de fidélisation.
Commerce de production d’énergie (panneaux solaires) ou de certifcats carbone.
Micro-paiements entre objets connectés (IoT).
Paiement automatique par des véhicules autonomes (parking, péage, assurance, recharge, lavage...).
306
Applications business - Quel futur ?
Attention à ne pas vouloir intégrer à tout prix la technologie blockchain à des modèles
d’entreprises et économiques existants.
️ De nouveaux services et une nouvelle industrie vont émerger et se construire autour de la
blockchain.
307
Un protocole de transfert de valeur
308
Blockchain
Probablement la base de données la plus lente
du monde...
309