80
Bitcoin Comment ça marche et pourquoi c’est une révolution ? Stéphane Traumat http://about.me/straumat

Bitcoin : comment ça marche et pourquoi c’est une révolution ?

Embed Size (px)

Citation preview

BitcoinComment ça marche et pourquoi c’est une révolution ?Stéphane Traumathttp://about.me/straumat

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.

Les caractéristiques du bitcoin

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 !

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.

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.

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.

Prenons un cas concret

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.

Avant de poursuivre...

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.

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 !

Avant de commencer : le blockchain

Exemple de visualisation d’une transaction sur blockchain.info

Reprenons !

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.

Étape 1 : se créer un “compte”

É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.

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.

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 : 042c6b7e6da7633c8f226891cc7fa8e5ec84f8eacc792a46786efc869a408d29539a5e6f8de3f71c0014e8ea71691c7b41f45c083a074fef7ab5c321753ba2b3fe

La clé publique est un peu comme votre numéro de compte.

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.

En un schéma

Schéma O’Reilly

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.

Étape 2 : on achète des bitcoins

É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.

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.

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.

Étape 3 : on reçoit un paiement

É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.

Un client arrive

Pour payer un client aura juste besoin de lancer une application sur son téléphone et de photographier le QRCode.

Schéma

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...

Les composants du systèmes

Clé privée, clé publique et adresses

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.

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.

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.

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 ?”).

La cryptographie asymétrique

Source : http://www-igm.univ-mlv.fr/~dr/XPOSE2006/depail/fonctionnement.html

La cryptographie asymétrique

Source : http://www-igm.univ-mlv.fr/~dr/XPOSE2006/depail/fonctionnement.html

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.

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.

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”.

Les transactions

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.

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.

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.

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.

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.

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”.

Anatomie de transactions

Source : Mastering_Bitcoin (O’reilly)

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.

Le réseau d’ordinateurs

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.

Schéma d’un réseau P2P

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.

Le hachage

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.

Exemple de hachage (SHA-256)

● “Je m’appelle Stéphane Traumat” ⇒ 607af60dbf07e5c08d985e2c794624b8c05b77a5235c8071e0243baeb547906b

● “Je m’appelle Stéphane Traumat!”⇒ a7b5b4dbae0800a23a47f5abf7cb7bf12999cebfbfa3e8ac199ea96c93be4802

Les fonctions de hachage permettent de vérifier très rapidement si un contenu, quelque soit sa

taille, a été modifié.

A quoi cela sert il ?

Le blockchain

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).

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.

Le blockchain

Visualisation d’un bloc

Dernier détail

Si les comptes sont bien anonymes, les transactions, elles, sont publiques !

D’où le “pseudo anonymat”

Le minage

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).

Exemples de mineurs

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 ?

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 !

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é !

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.

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.

Récompense du mineur !

Les faiblesses

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.

Conclusion

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.

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…).

Questions ?Stéphane Traumathttp://about.me/straumat