- Les caractéristiques du bitcoin.
- Prenons un cas concret.
- Les composants du systèmes.
- Clé privée, clé publique et adresses.
- Les transactions.
- Le réseau d’ordinateurs.
- Le hashage.
- Le blockchain.
- Le minage.
- Les faiblesses.
-Conclusion.
2. Agenda
● Les caractéristiques du bitcoin.
● Prenons un cas concret.
● Les composants du systèmes.
○ Clé privée, clé publique et adresses.
○ Les transactions.
○ Le réseau d’ordinateurs.
○ Le hashage.
○ Le blockchain.
○ Le minage.
● Les faiblesses.
● Conclusion.
4. Une citation
Milton Friedman disait en 1999 : “Une chose
qui manque est un système de paiement
sécurisé qui permettra de transférer des fonds
d’une personne A à une personne B sans qu’ils
se connaissent. De la même façon que je vous
tends un billet de 20$.”
Bitcoin = porte monnaie avec
système de téléportation !
5. Les promesses du bitcoin
● Première devise monétaire électronique décentralisée.
● Transactions quasi instantanées de personnes à
personnes.
● Aucun ou peu de frais.
● Pas de notions de pays, de conditions préalables ou de
limites arbitraires.
● Votre “compte” ne peut être bloqué ou confisqué.
● Anonymat.
6. L’arrivée de l’email
Avec la Poste.
● La poste doit vous connaître
ainsi que le destinataire et vous
devez suivre les processus
établis.
● Frais “importants” et variables en
fonction de la destination.
● Le transport du courrier peut
prendre un temps variable en
fonction de la destination.
● Tous les individus ne sont pas
accessibles via ce système.
Avec l’email.
● Le destinataire a juste besoin d’
avoir une adresse email.
● Le coût d’envoi d’un email est
proche de zéro.
● L’envoi et la réception sont quasi
instantanés.
● Toute personne ayant un accès
à internet peut recevoir un email.
7. L’arrivée du bitcoin
Avec le système bancaire.
● Il faut que vous soyez enregistré
auprès d’une banque qui va vous
octroyer votre “adresse” (IBAN),
souvent contre un abonnement
annuel.
● Vous devez utiliser le système
bancaire et ses normes.
Il peut y avoir des frais en fonction
des banques et en fonction des pays
où vous envoyez de l’argent.
Un virement peut aussi prendre un
temps très variable, surtout si vous le
faites vers l’étranger.
● La moitié de la population mondiale
n'a pas accès à un compte bancaire.
Avec le bitcoin.
● Vous pouvez vous même créer un
“compte” pour recevoir/envoyer des
bitcoins sans avoir besoin de faire
appel à une autorité centrale et sans
conditions préalables.
● Vous pouvez envoyer
instantanément des bitcoins à n’
importe qui, peu importe où il se
trouve et pour un coût proche de
zéro.
● Toute personne ayant un accès à
internet peut se créer un “compte”,
ça ne coûte rien, c’est instantané et
vous n’avez pas à vous enregistrer
auprès de qui que ce soit.
9. Prenons un scénario
L’entreprise BitcoinDistrib décide de créer
des distributeurs de boissons qui acceptent
le bitcoin.
Nous allons voir :
● Comment elle se crée un “compte” bitcoin.
● Comment elle achète ses premiers bitcoins.
● Comment elle reçoit son premier paiement.
11. Avant de commencer : le réseau
bitcoin
Le réseau Bitcoin est un réseau de machines
en peer to peer (P2P), ce qui signifie que
toutes les machines qui y participent ne sont
pas plus spéciales les unes que les autres.
12. Avant de commencer : le blockchain
Le réseau Bitcoin maintient un fichier qui est
un registre global de toutes les transactions :
Le blockchain.
Ce fichier permet à tout le monde de savoir qui
a combien de bitcoins mais le “qui” n’est pas
relié à une personne physique ou morale !
13. Avant de commencer : le blockchain
Exemple de visualisation d’une transaction sur blockchain.info
15. Prenons un scénario
L’entreprise BitcoinDistrib décide de créer
des distributeurs de boissons qui acceptent
le bitcoin.
Nous allons voir :
● Comment elle se crée un “compte” bitcoin.
● Comment elle achète ses premiers bitcoins.
● Comment elle reçoit son premier paiement.
17. Étape 1 : Se créer un “compte”.
Bitcoin utilise le principe de signature
électronique pour s’assurer que seul le
propriétaire des bitcoins peut les dépenser.
18. La clé privée
La clé privée est un nombre choisi au hasard
qui vous permet de signer des transactions sur
les bitcoins qui vous appartiennent.
Exemple :
91149ee24f1ee9a6f42c3dd64c2287781c8c57a6e8e929c80976e586d5322a3d
La clé privée est un peu comme votre signature
sur un chèque.
19. La clé publique
La clé publique est calculée à partir de la clé
privée précédente et elle permet de générer
des adresses bitcoin.
Exemple :
042c6b7e6da7633c8f226891cc7fa8e5ec84f8eacc792a46786efc869a408d29539a5e6f8d
e3f71c0014e8ea71691c7b41f45c083a074fef7ab5c321753ba2b3fe
La clé publique est un peu comme votre
numéro de compte.
20. Les adresses bitcoin.
Les adresses bitcoin sont des adresses
générées qui correspondent à votre clé
publique. C’est à ces adresses que l’on peut
vous envoyer des bitcoins et vous pouvez en
créer autant que vous voulez.
Exemple : 13mtgVARiB1HiRyCHnKTi6rEwyje5TYKBW
Les adresses correspondent au champs “à l’
ordre de” sur les chèques ou une adresse
email.
22. Fini !
La première étape est terminée, quatre points
importants :
● On a tout ce qu’il faut pour commencer à
recevoir et envoyer des bitcoins.
● Tout ceci est géré de manière automatique
par les logiciels du marché.
● Tout ce que l’on vient de faire peut être fait
offline.
● Si vous perdez la clé privée, vous ne
pourrez pas retrouver vos bitcoins.
24. Étape 2 : on achète des bitcoins
Il existe deux façons d’obtenir des bitcoins :
● En fabriquer.
● En obtenir auprès d’un tiers qui en possède.
25. Achat de bitcoins.
Pour en acheter, BitcoinDistrib va s’adresser
à quelqu’un qui en possède et lui donner son
adresse bitcoin : 13mtgVARiB1HiRyCHnKTi6rEwyje5TYKBW
Il existe plein de vendeurs :
● Coinbase (plateforme en ligne).
● La maison du bitcoin (accueil physique).
● Des connaissances.
● Ou pour notre exemple : BTSeller.
26. Comment ça va se concrétiser ?
● BTSeller, avec le logiciel de son choix, va créer une transaction avec le montant à
transférer et votre adresse bitcoin comme destinataire.
● Afin de prouver qu’elle possède bien les bitcoins, BTSeller va utiliser sa clé privée pour
signer la transaction.
● BTSeller va ensuite transmettre cette transaction à l’un des noeuds du réseau bitcoin.
● Ce noeud va vérifier que la signature de la transaction est conforme.
● Ce noeud va vérifier auprès du registre global des transactions (blockchain) que le
montant transféré est bien inférieur ou égal au montant dont BTSeller dispose.
● Ce noeud va ensuite propager la transaction à trois autres noeuds (qui feront les mêmes
vérifications) et ainsi de suite jusqu’à ce que tout le réseau soit au courant.
● BitcoinDistrib pourra, avec le logiciel de son choix, vérifier que le bitcoin a bien été
transféré à son adresse (cela prendra à peine quelques secondes).
● Les machines faisant du minage vont se charger d’inscrire cette transaction dans le
blockchain.
28. Étape 3 : recevoir son premier
paiement.
Pour son distributeur de boisson d’Angoulême,
il va créer une adresse bitcoin spécifique.
Cette adresse, il va ensuite l’encoder avec le
montant à régler dans un QRCode qu’il va
coller sur la machine.
29. Un client arrive
Pour payer un client aura juste besoin de
lancer une application sur son téléphone et de
photographier le QRCode.
31. Quatre choses importantes
● Contrairement aux cartes bancaires, ni le vendeur, ni l’
acheteur n’ont besoin de fournir des informations
confidentielles.
● Les machines du vendeur et de l’acheteur n’ont pas
besoin de communiquer directement.
● La transaction ne peut être “interceptée” car modifier la
transaction détruirait la signature.
● Tout ce que nous avons vu peut être fait en quelques
minutes...
34. La cryptographie asymétrique
Bitcoin utilise la cryptographie asymétrique
(ou cryptographie à clé publique) pour créer
une paire de clés (l’une publique et l’autre
privée) qui va permettre l’accès aux Bitcoins.
Même principe que la signature électronique
pour les documents PDF.
35. La cryptographie asymétrique
Le principe :
● La clé publique permet de coder un
message.
● La clé privée permet de décoder ce même
message.
36. La cryptographie asymétrique
Cas concret.
● La société Scub a généré il y a des années sa paire de
clé privée/publique.
● Elle a diffusé sa clé publique partout pour que tout le
monde puisse communiquer avec elle.
● John, qui souhaite envoyer un document à Scub, est
sollicité par trois entités qui prétendent être Scub.
37. La cryptographie asymétrique
La solution.
● John utilise la clé publique pour encrypter un texte
quelconque comme “bonjour, ça va ?”.
● John envoie le message codé “45Zdiejfneipk!de” aux
trois entités se présentant comme Scub.
● Seule Scub, qui possède la clé privée, pourra
décoder le message envoyé par John et lui dire quel
était le message originel envoyé (“bonjour, ça va ?”).
40. La cryptographie asymétrique
On peut aussi utiliser le système à l’inverse
pour signer numériquement :
● On utilise la clé privée pour signer le
contenu d’une transaction.
● Tous les utilisateurs qui possèdent la clé
publique pourront vérifier que le message a
bien été envoyé par la bonne personne.
41. Résumé du fonctionnement
● La clé privée vous permet d’encoder des
transactions.
● La clé publique, générée à partir de la clé
privée, vous permet de générer l‘adresse
bitcoin.
● L’adresse bitcoin permet à n’importe qui de
vous envoyer des bitcoins en mettant l’
adresse comme destinataire de la
transaction.
42. Dernier point
Quand vous générez votre clé publique et votre
clé privée, vous n’existez pas pour le réseau
Bitcoin.
Vous possédez seulement une adresse Bitcoin
valide qui pourrait être utilisée pour accéder à
des transactions existantes.
Il n’y a donc pas de notion de “compte”.
44. Les transactions représentent les transferts de
Bitcoins entre les participants du système.
On peut faire l’analogie avec un chèque.
Les transactions / Définition.
45. Cycle de vie d’une transaction
● La transaction est créée localement.
● Elle est signée par l’auteur.
● Elle est transmise au réseau.
● Elle est validée et distribuée à tous les
noeuds.
● Elle est enfin ajoutée au registre global des
transactions.
46. Contenu (simplifié) d’une transaction :
● L’adresse bitcoin du destinataire.
● Le nombre de bitcoin.
● A partir de quelles transactions précédentes
sont pris les bitcoins à envoyer.
Le tout est signé avec la clé privée !
Les transactions / Création.
47. Les transactions / L’envoi au réseau.
Contrairement à un paiement par carte de
crédit, une transaction bitcoin ne contient
aucune information sensible.
On peut donc l’envoyer sans risque à n’importe
quel nœud Bitcoin.
48. Les transactions / La propagation.
Une fois que votre transaction est arrivée sur
un nœud, celui-ci se chargera, si elle est valide,
de la propager à l’ensemble du réseau Bitcoin.
L’ensemble du réseau est décentralisé, chaque
nœud recevant une nouvelle transaction va la
propager à 3 ou 4 des nœuds qu’il connaît, qui
eux même vont le transmettre à 3 ou 4 autres
nœuds qu’ils connaissent.
49. Les transactions / blockchain.
Les transactions vont être groupées dans des
“blocks” qui vont être insérés dans le
blockchain.
Pour qu’un block soit inséré dans le blockchain
et soit considéré comme “officiel”, les mineurs
vont, avec le contenu du block, essayer de
résoudre un problème cryptographique très
complexe ce qui le rendra “infalsifiable”.
51. Une monnaie programmable
Dernière chose, la plupart des transactions sont
débloquées grâce à une clé privée mais Bitcoin permet
aussi de spécifier des règles complexes pour accéder à
une transaction.
Par exemple, pour accéder aux bitcoins d’une transaction,
on pourrait demander que deux clés privées soient utilisées
pour le déverrouillage au lieu d’une : celle de la
comptabilité et du directeur financier.
C’est pour cela qu’on dit que Bitcoin est une monnaie
programmable.
53. Le réseau d’ordinateurs
Le réseau Bitcoin est un réseau de machines
en peer to peer (P2P), comme napster à l’
époque ou bittorrent aujourd’hui, ce qui signifie
que toutes les machines qui y participent (y
compris la votre) ne sont pas plus spéciales les
unes que les autres.
Il n’y a donc pas de serveur central, pas d’
autorité et pas de hiérarchie. Ce qui rend le
réseau virtuellement indestructible.
55. Le réseau d’ordinateurs
Chaque noeud peut avoir différents services :
● Le routage : ce service permet la validation et la
propagation des transactions / blocs ainsi que la
découverte et la communication avec d’autres nœuds.
● La base de données des transactions : ce service
consiste à contenir une copie complète et à jour du
blockchain et ainsi d’être en mesure de vérifier la
validité de toute transaction de manière autonome.
● La capacité de minage pour les nœuds qui sont en
compétition pour créer des blocs valides à ajouter dans
le blockchain.
● Le porte monnaie qui permet éventuellement de gérer
les clés du nœud.
57. Le hachage
Un algorithme de hachage prend n’importe
quelle donnée de “n’importe quelle taille” en
entrée et produit une chaîne de caractère
“unique” qui fera toujours la même taille et qui
sera une sorte d’empreinte de vos données d’
entrées.
Si un seul caractère de votre texte est changé,
le hachage va complètement changer.
61. Le blockchain
Le blockchain est le registre global de toutes
les transactions qui ont eu lieu depuis la
création de Bitcoin.
On peut se le représenter comme un fichier
dans lequel s’empile, les uns sur les autres,
des groupes de transactions validées (appelés
blocs).
62. Le blockchain
Chaque bloc de transactions est identifié par un
hash calculé qui représente son contenu.
Chaque bloc sert de fondation au bloc suivant
car il référence dans son entête le hash de son
père.
Si vous changer le contenu d’un ancien bloc, il
vous faudrait recalculer tous les blocs qui se
trouvent au dessus de lui.
67. Le minage
Le minage (mining) est le processus qui
sécurise le système et rend le blockchain
infalsifiable.
En contrepartie de ce travail, les mineurs qui
sécurisent le système se voient octroyer de la
monnaie crée pour l’occasion (en plus des frais
inclus dans chaque transaction).
69. Le minage
La problématique à traiter est la suivante :
Comment mettre d’accord un réseau d’inconnus sur une
vérité universelle en sachant que, dans un réseau d’
inconnus, on ne peut faire confiance à personne ?
70. Le minage : vue d’ensemble
● Chaque noeud du réseau qui fait du minage stocke les
transactions qui sont arrivées depuis l’ajout du dernier
block au blockchain.
● Dès qu’un block est validé et ajouté (environ toutes les
10 minutes), chaque noeud de minage va essayer de
créer un nouveau bloc avec les transactions en attente
et ce bloc, pour être accepté par les autres, devra
contenir la solution à un problème complexe.
● Le premier noeud qui réussit à résoudre le problème va
envoyer son block aux autres et va remporter les 25
bitcoins plus les frais de transactions !
71. Le minage : création d’un bloc
En fait, chaque noeud de minage va essayer
de construire un bloc avec le contenu des
transactions plus une variable appelée
“Nonce”.
La règle du jeu pour les tous les mineurs est simple :
● Vous n’avez le droit de faire varier que la valeur de la
variable “Nonce”.
● Sur le contenu du bloc, vous utilisez la fonction de
hachage SHA-256.
● Le premier qui a trouvé la valeur de “Nonce” pour
laquelle le hachage commence par 00000 a gagné !
72. Le minage : création d’un bloc
Ce qui va se passer est au final assez simple :
● Notre nœud de minage va mettre la valeur “1” dans le
champs “nonce”, puis va concaténer tous les champs
de l’entête et calculer la valeur sha256 de l’ensemble de
cette chaîne.
● Si le résultat ne commence pas par cinq “0”, il va mettre
la valeur “2” dans le champ “Nonce”, concaténer tous
les champs, calculer la valeur sha-256 et vérifier si le
résultat commence par cinq “0”
● Ainsi de suite jusqu’à ce que quelqu’un dans le réseau
bitcoin y arrive.
73. Le minage : création d’un bloc
C’est donc une compétition mondiale entre des milliers de
machines qui effectuent des calculs “complexes” afin de
trouver une valeur particulière à partir des données du
nouveau bloc à valider.
Lorsqu’un nœud a trouvé la valeur de nonce qui convient
pour en faire un bloc valide, il transmet le bloc aux autres
membres du réseau qui vont le vérifier et le transmettre aux
autres et ainsi de suite jusqu’à ce que tout le réseau le
reçoive et l’ajoute au blockchain.
76. Les faiblesses
● Bitcoin n'est pas l'incarnation de l'autorité d'un État,
d'une banque ou d'une entreprise. Sa valeur est donc
très liée à la valeur perçue par ses utilisateurs.
● Monnaie déflationniste car limitée à 21 millions de
bitcoins.
● Aucun système de recours (perte, vol…).
● Représente un attrait fort pour les activités illégales bien
que cela soit assez faux.
78. En conclusion - Séparer monnaie et
technologie.
Il faut voir deux choses distinctes dans bitcoin : l'aspect
"monnaie" et l'aspect "technologique".
La technologie blockchain apporte pour la première fois
une solution à un problème que l’humanité a toujours
résolu par l’administration.
Pour la première fois, on peut transférer un titre de
propriété digital à un autre utilisateur de manière simple,
sécurisé, connu de tous et non répudiable.
79. En conclusion - Séparer monnaie et
technologie.
Nous pourrions voir l’avènement de systèmes
qui gèrent des transactions (humain / humain,
humain / machine ou machine / machine) et qui
pourront remplacer certaines structures
humaines existantes (banques, notaires,
cadastres…).