Blockchain Part1

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 77

Introduction à la Blockchain

XX/XX/2021

WWW.K2LIS.COM
Avant de commencer : quelques rappels et principes ...
• Un canal teams dédié au cours a été crée
• M’envoyer un message sur teams si vous rencontrez des problèmes techniques pour rejoindre le cours

• Les sessions de formation seront déposées sur Moodle


• Une fois le cours terminé le support est disponible et téléchargeable sur Moodle

• Déroulé classique du cours à distance


• 15 premières de cours : Accueil des étudiants, vérification que les problèmes techniques sont résolus pour tous.
• 15 à 25 minutes après le début du cours : demander aux étudiants d’écrire « présent (e)» dans le tchat
• 20 à 30 minutes après le début du cours : rappel des règles de la prise de parole
• PAUSES : on fera des pauses régulières de 5 à 10 min toutes les heures environ (en fonction de l’avancement)

• Rappel des règles de la prise de parole


• Micro toujours en mute, ne doit être activé que lorsqu’il y a une question / sollicitation
• Utiliser le tchat pour demander la parole ou poser directement vos questions

2
Avant de commencer : sondage expérience Blockchain

1. Avez-vous déjà des connaissances / suivi des formations / tutos autour de la technologie
Blockchain ?

2. Avez-vous déjà développé avec une technologie Blockchain ?

3. Avez-vous déjà miné du bitcoin ?

3
Icebreaker “Dessine moi ta Blockchain”
• Par groupes de 4 => 10 minutes pour lister les mots qui vous viennent à l’esprit pour définir/caractériser une
blockchain

•https://padlet.com/YnovBlockchain/8twjds67ld
s0

4
Icebreaker “Dessine moi ta Blockchain” - résultats

5
Vos attentes pour cette formation ?

• Par groupes de 4 => 5 minutes pour lister 3 attentes puis on consolide

6
Vos attentes pour cette formation ?
Avoir le niveau minimum
Qu’est ce que c’est ? requis(compétences) pour le CV et pour
poursuivre tout seul ensuite

Comment ca fonctionne Découvrir les différents


Avoir des notions de minage
dans le détail ? types de Blockchain

Applications concrètes de la
Blockchain (en entreprise
Comprendre Bitcoin
inclus, autre que la crypto
etc.)

Mise en pratique Dangers et failles de la


(développer) Blockchain

7
Les objectifs et bénéfices de la formation
1. Comprendre les fondements de cette technologie
2. Mesurer les apports et les limites de cette technologie
3. Apprendre à concevoir et implémenter une application Blockchain
4. Être sensibilisé aux enjeux et problématiques de sécurité
5. Comprendre les enjeux industriels et économiques de la Blockchain
6. Mesurer les apports et les limites de la Blockchain par rapport à un
cas d'usage

https://www.linkedin.com/pulse/skills-companies-need-most-2020and-how-learn-them-lazzaroni-pa 8
te/
Le programme de la formation

1 - Genesis et fondamentaux Blockchain

2 - Ethereum, Smart Contracts et dApp,


Initiation au développement Blockchain

3 – Un peu de sécurité et d’architecture…

4 - Finance décentralisée et cryptomonnaies

5 - Les blockchains d’entreprise : de la


théorie à la pratique

6 - A vous de jouer !
9
Le programme de la formation

1 - Genesis et fondamentaux Blockchain 17/0


4
2 - Ethereum, Smart Contracts et dApp,
Initiation au développement Blockchain
24/0
4 30/0
3 – Un peu de sécurité et d’architecture… 4

06/0
5 4 - Finance décentralisée et cryptomonnaies

07/0
5 - Les blockchains d’entreprise : de la 14/0 5
théorie à la pratique 5
15/0
5
6 - A vous de jouer !
28/05, 29/05,04/06, 10
Les évaluations : au nombre de 3 !

1 - Genesis et fondamentaux Blockchain

2 - Ethereum, Smart Contracts et dApp,


Initiation au développement Blockchain

3 – Un peu de sécurité et d’architecture… Projet d’idéation

4 - Finance décentralisée et cryptomonnaies

5 - Les blockchains d’entreprise : de la


théorie à la pratique QC
M

6 - A vous de jouer !
Projet de développement 11
1 - Genesis et fondamentaux Blockchain

12
Une histoire de confiance…
Dans un contexte de crise
économique (2007-2009)
• La crise des subprimes frappe
l'économie mondiale, le nombre de
chômeurs a augmenté de 8 millions
entre 2008 et 2009 aux Etats-Unis
• La dette nationale américaine passe de
66% à 103% du PIB entre 2008 et 2012

• Scandales → Les banques et les sociétés de financement sont


financiers et tenues responsables de cette crise
→ Les États empruntent de l'argent pour renflouer les
monétaires banques, qui sont au bord de la faillite
→ L'austérité frappe les populations d'Etats endettés à
des taux d'intérêt de plus en plus élevés

• …Perte de
confiance 13
Depuis les années 90, de nombreux chercheurs ont tenté de créer une
monnaie électronique décentralisée pour se passer de tiers de confiance

Monnaie fiduciaire Monnaie électronique Monnaie électronique


centralisée décentralisée
Je confirme,
Tiens Alice possède
Bob,
voici 10$
Banque
r s de10$ sur son
compte. Je les
Bob,

Tie iance
voici Bob
transfère à
Alice Bob Bob.
10$

o n f Alice
Je
t’envoie
c
10$

Alice Bob Charlie,


voici Charlie
=10$ 10$

=10$
=10$

Double dépense = acte frauduleux dans lequel le même jeton numérique est
dépensé plus d'une fois (duplication / falsification) 14
2008 : une date clé

Un certain Mr Nakamoto évoque le Bitcoin pour la 1ère fois

« A purely peer-to-peer version of electronic cash would allow


online payments to be sent directly from one party to another
without going through a financial institution »
Satoshi Nakamoto (2008) parlant du Bitcoin

Ouvrage de
référence :

15
Depuis tout s’est rapidement enchaîné
ÉMERGENCE PREMIÈRES PERCEES DU BITCOIN + PREMIÈRES RÉGLEMENTATIONS
DU CONCEPT COMPRÉHENSION ET ACCULTURATION ET PROJETS

2020 : un
2. écosystème en
pleine
ébullition
Juillet 2017 2018
2015 L’AMF soutient Crise des ICOs
2009 Mars 2020
Évolution du concept la Blockchain
Lancement de Coinhouse, premier
de Blockchain
Bitcoin, la première courtier Bitcoin «
avec Ethereum et
application du labellisé » par l’AMF
l’introduction des
concept de
« smart contracts »
Blockchain
Août 2017
(Publication du logiciel en
open-source)
Le marché total des
cryptomonnaies
pèse 100 milliards de
dollars

2014
2013 Bitcoin 2.0 : début
2008 Des premiers de l’exploration
Bitcoin établissements des usages des
Whitepapper acceptent le paiement Blockchains en dehors
en Bitcoin de la crypto-monnaie

16
Ok mais la Blockchain qu’est ce que c’est … ?

La Blockchain est une technologie décentralisée de validation et


d’historisation de transactions, transparente, sécurisée, et
fonctionnant sans organe de contrôle central.

Blockchain = Value Exchange


TCP/IP = Communication Protocol
Internet of Protocol
Internet of
Information value
1st use case : e-mail 1st use case : Bitcoin

17
Quelles différences avec une base de données centralisée ?

Systèmes Pair à Pair


(P2P: Peer to Peer)

• Ne repose pas sur une


entité centralisée
• Tous les nœuds jouent le
même rôle en termes de
stockage + traitement

18
Quelles différences avec une base de données centralisée ?
Base de données
Base de données
décentralisée
centralisée
(cas de la Blockchain)
Architecture: ✔ Échange de données : ……. ✔ Échange de données : …….
• Echange ✔ Stockage distribué : O / N ✔ Stockage distribué : O / N
• Stockage

✔ Écriture : O / N ✔ Écriture : O / N
Opérations ✔ Lecture : O / N ✔ Lecture : O / N
sur les
✔ Modification : O / N ✔ Modification : O / N
données
✔ Suppression : O / N ✔ Suppression : O / N

Intégrité et
✔ ? ✔ ?
transparence
sur les données

19
Quelles différences avec une base de données centralisée ?
Base de données
Base de données
décentralisée
centralisée
(cas de la Blockchain)
Architecture: ✔ Échange de données : Client - Serveur ✔ Échange de données : P2P
• Echange ✔ Stockage : distribution possible ✔ Stockage : distribué avec réplication
• Stockage (maitre/esclave ou multi-maitre) complète
sur chaque noeud
✔ Écriture ✔ Écriture
Opérations ✔ Lecture ✔ Lecture
sur les
✔ Modification ✔ Modification
données
✔ Suppression ✔ Suppression

✔ Un acteur malicieux peut modifier ✔ Intégrité préservée


Intégrité et
transparence
la base de données ✔ Transparence des données
sur les données ✔ Seul l’administrateur décide de qui
peut accéder ou non aux données

Faire confiance aux mathématiques plutôt qu'aux serveurs


centralisés ! 20
La recette pour concocter une bonne Blockchain
Nœuds
Réseau Pair à Pair (P2P)
Synchronisé

Consensus

Blocs

Ouvert à tous
21
Qu’est ce qu’un consensus ?

Accord général, positif et unanime permettant de prendre une décision


ou d’agir ensemble sans vote préalable ou délibération particulière

Dans un réseau Blockchain sans entité centrale, ce sont les « nœuds »


du réseau qui se chargent de valider les transactions et déterminer leur
ordre en appliquant un protocole de consensus.

Il permet de garantir qu’un nombre suffisant de « nœuds » s’assurent


de l’ordre et la validité d’une requête avant de l’ajouter à la chaine de
blocs. Donc de se mettre d’accord sur l’état du registre.

22
Les principales caractéristiques d’une Blockchain

Décentralisée / Distribuée Consensus (écriture)


(transmission + stockage) La majorité des participants dans le réseau
doivent se mettent d’accord sur l’état du
Les informations sont transmises, stockées et registre sans l'utilisation d'une autorité centrale
accessibles par n’importe quel nœud du
réseau

Immutabilité (modification/suppression) Transparence (lecture)

Une fois qu’une donnée est ajoutée, elle ne L’historique complet des transactions est
peut pas être modifiée ou supprimée consultable par tous les participants et il est
assuré par des techniques d’horodatage, ce
qui permet la traçabilité et l’audit des
transactions
Problème de la double
dépense
© 23
23
Algorithme ou fonction de hash, qu’est ce que c’est ?
Rapide

Une donnée Algorithme FC32 TO39 FJ99 FUZ9 JFJE


quelconque de hash ITVH FLK9 ?WQà

(presque) Impossible

• Une fonction de hachage cryptographique est une fonction de hachage qui, à une donnée de taille arbitraire, associe
une image de taille fixe. et dont une propriété essentielle est qu'elle est pratiquement impossible à inverser, c'est-à-dire
que si l'image se calcule très rapidement, le calcul inverse pour retrouver une donnée d’entrée se révèle impossible sur
le plan pratique. Pour cette raison, on dit d'une telle fonction qu'elle est à sens unique.

• Toute la sécurité d’une fonction de hachage repose donc dans sa capacité à générer des empreintes uniques pour un
message donné, et qui ne peuvent être déchiffrées.

24
Quelques caractéristiques des algorithmes de Hash
Différents Longueur de Taille de Possibilité d’
Collision(s)
algorithmes l’empreinte l’empreinte Rapidité attaque de type Collision
trouvée(s)
de hash générée générée force brute

Exprimé en Nombres Nombre théorique


Exprimé en Exprimé en bits d’opérations pour d’opérations à
Mégabytes / Sec (à
caractère retrouver l’input effectuer pour
titre indicatif)
d’un hash trouver une même
empreinte pour
deux données
différentes
MD5 32 128 188 2128 2 64
Oui

SHA-1 40 160 121 2160 280 Oui

SHA2-256 64 256 139 2256 2128 Non

SHA2-512 128 512 154 2512 Non

SHA3-256 512 Non

25
Cryptographie asymétrique, signature et transactions ?
• Cryptographie asymétrique = chiffrement asymétrique = chiffrement à clés
publiques

• Dans un cryptosystème asymétrique les clés existent par paires : une clé
publique et une clé privée
✔ Un message chiffré avec une clé ne peut être déchiffré qu’avec l’autre clé de la même
paire

• Les transactions Blockchain reposent sur la cryptographie asymétrique


:
✔ Chaque utilisateur dispose d’une paire de clé : Clé privée & clé publique
✔ L’intégrité des données transmises ainsi que l’authentification de l’origine de la
transaction sont assurée en chiffrant le hachage des données envoyées

26
Cryptographie asymétrique, signature et transactions ?
Signature Vérification

Empreint
Fonction de e
185F8DB32271FE25F561
hachage A6FC938B2E264306EC3
0
Chiffreme Donnée Signatur
nt en s e
1010101010101010010
Donnée utilisant la Déchiffreme
s clé privée nt en
du utilisant la
Foncti
signataire clé publique
on de
Signatur hacha du
e ge signataire
+ 1010101010101010010
185F8DB32271FE25F561 185F8DB32271FE25F561
A6FC938B2E264306EC3
0 = A6FC938B2E264306EC3
0

Empreint Empreint
Données
e e
signées 27
Cryptographie asymétrique, signature et transactions ?
• Pour qu’une transaction soit considérée comme valide par les autres nœuds du
réseau, le nœud A doit signer numériquement le contenu de la transaction, en
utilisant sa clef privée :
Hachage Signature
Transaction
Contenu Contenu clé privée Signature Clé
d’une # d’une
numérique publique
transaction transaction

Contenu d’une transaction

• De plus, le nœud A inclus dans la transaction sa clef publique complète. Ainsi,


l’ensemble des nœuds du réseau peut vérifier que la transaction est bien effectuée à la
demande du nœud A, qui est le seul à posséder la clef privée ayant servie à signer le
contenu de la transaction.

28
Zoom sur la notion d’arbre de Merkle
Merkle root (Tx1,Tx2,Tx3,Tx4)

Hash

Concaténation

Hash(Hash(Tx1), Hash(Hash(Tx3),
Hash(Tx2)) Hash(Tx4))

Hash Hash

Concaténation Concaténation

Hash(Tx1) Hash(Tx2) Hash(Tx3) Hash(Tx4)

Hash Hash Hash Hash

Tx1 Tx2 Tx3 Tx4

29
Une donnée enregistrée dans la blockchain est quasi
impossible à modifier, pourquoi ?

https://www.youtube.com/watch?v=SSo_EIw
HSd4 30
31
Une structure en forme de blocs …

Contenu d’une transaction Formation d’un bloc

Une transaction contient : ⁄ Cette transaction est ajoutée à d’autres


⁄ Adresse de l’expéditeur transactions pour former un bloc
⁄ Adresse du destinataire ⁄ On y inscrit le hash du bloc précédent
⁄ Montant de la transaction ⁄ Et on calcule le hash de ce bloc
⁄ Timestamp
La transaction est ensuite envoyée au réseau
Blockchain

Ces vidéos sont la propriété de « Reuters graphics » et proviennent de :


http://graphics.reuters.com/TECHNOLOGY-BLOCKCHAIN/010070P11GN/index.html
32
Une structure en forme de blocs …

33
Une structure en forme de blocs …

34
Envoi et vérification d’une transaction…

Envoi d’une transaction


1
Les participants envoient des propositions d’ajout d’information sur le réseau afin de les
entériner.
Vérification de la transaction
2
Des membres du réseau, appelés mineurs, vérifient la validité des propositions d’ajout
d’une nouvelle information. En pratique, cela revient pour chacune des transactions à :

2.1 2.2
Vérifier que la transaction a bien été créée par Vérifier que le contenu de la transaction est
l’émetteur de la transaction (=vérification du valide.
processus de signature numérique) : Dans les blockchains de cryptomonnaie,
Avec la clef publique présente dans la cela revient à vérifier que l’émetteur
transaction, le mineur M est en mesure de possède suffisamment de monnaie pour
déterminer si la transaction est bien à couvrir cette transaction.
l’initiative de l’émetteur.

35
…puis minage…

Minage d’un nouveau bloc


3
Une fois plusieurs informations proposées validées, chaque mineur travaille à forger un bloc les
contenant, et se rattachant au dernier bloc valide de sa blockchain. Le premier à réussir gagne
une récompense.
3.1 : création de la partie fixe du
bloc

• Hash du header du bloc précédent


• Timestamp
• Difficulté (nb représentant la difficulté de
minage du bloc)
En-tête fixe • Le Merkle root des transactions (garantit le
lien entre les transactions et le header du
Transactions bloc)

36
…puis minage…

Minage d’un nouveau bloc


3
Une fois plusieurs informations proposées validées, chaque mineur travaille à forger un bloc les
contenant, et se rattachant au dernier bloc valide de sa blockchain. Le premier à réussir gagne
une récompense.
3.2 : création de la partie
variable
Afin de finaliser la création du boc, le mineur
doit désormais trouver une valeur valide
pour la part variable du bloc qui doit
répondre aux conditions fixées par En-tête
l’algorithme de consensus : variable
- Proof Of Work (PoW) : Nonce En-tête fixe
- Proof Of Stake (PoS) : timestamp/calcul Transactions
par unité de temps

37
La proof of Work, un algorithme éprouvé

38
…et enfin chainage
Envoi d’une transaction
1 Les participants envoient des propositions d’ajout
d’information sur le réseau afin de les entériner.

Vérification de la transaction
2 Des membres du réseau, appelés mineurs, vérifient la
validité des propositions d’ajout d’une nouvelle
information
Minage d’un nouveau bloc
Une fois plusieurs informations proposées validées,
3 chaque mineur travaille à forger un bloc les contenant,
et se rattachant au dernier bloc valide de sa blockchain.
Le premier à réussir gagne une récompense.

Propagation / Diffusion du nouveau bloc Chaque bloc est relié au précédent bloc par son hash
Le nouveau bloc est transmis à tous les membres du
4 formant une chaîne d’où le nom de Blockchain
réseau. D’autres mineurs peuvent alors vérifier
facilement que ce bloc est bien valide (transactions +
partie variable), et l’intégrer à leur blockchain.
Après validation, chaque mineur interrompt sa tentative de
minage sur le block N-1, met à jour sa version de la blockchain
avec le nouveau bloc N, et tente de miner le prochain bloc N+1
39
La structure en chaîne de bloc entraine une sécurité
extrêmement forte

La chaîne qui est la plus longue est


considérée par les nœuds comme la chaîne
valide

Modification d’une transaction

• La modification d’un hash oblige à recalculer


tous les hashs des blocs suivants
• Comme la chaîne continue à grandir, il faut
pouvoir calculer suffisamment vite les hashs
pour pouvoir rattraper la chaîne principale et
ainsi avoir la chaîne la plus longue

Ces vidéos sont la propriété de « Reuters graphics » et proviennent de :


http://graphics.reuters.com/TECHNOLOGY-BLOCKCHAIN/010070P11GN/index.html
40
La structure en chaîne de bloc entraine une sécurité
extrêmement forte

41
Retour sur les notions de Proof of Work et Proof of Stake

Proof of Work (Preuve de travail ou PoW)


✔ Processus de résolution d’un défi informatique effectué par les mineurs
(mining)
Problème informatique ayant une difficulté d (d est variable et évolue en fonction de la
puissance de calcul du système) pour valider un block.
✔ La Proof of Work est utilisé par la Blockchain de Bitcoin

Proof of Stake (Preuve d’enjeu ou de possession ou


PoS)
✔ Processus de de résolution d’un défi informatique imposé par la POS
(minting)
Se base sur la probabilité qu’un nœud parvienne à ajouter le prochain block de
transactions à la Blockchain est proportionnel à la quantité de monnaie qu’il possède

42
Différents protocoles de consensus existent…

Proof of Work Proof of Stake Ethereum - Casper (FFG)


La seule méthode de Basé sur la Proof of La Blockchain Ethereum
consensus qui ait fait Stake, la grande va migrer vers Casper, un
ses preuves à grande alternative connue à algorithme hybride
échelle. PoW. PoW/PoS.

Hedera -
PBFT (Hyperledger Fabric) IOTA - Tangle
Hashgraph
Le projet phare de Une structure Hashgraph vient à
blockchain privée à disruptive par rapport peine d’être révélé et
vocation business, à la Blockchain, et des ses performances
porté par IBM et un perspectives vis-à-vis théoriques laissent
consortium de grandes de l’IoT dont il faut présager d’énormes
entreprises. rester à l’écoute. perspectives d’avenir. 43
Zoom sur la 1ère application…

44
Le compte Bitcoin

Compte Bitcoin

Clé publique : Adresse du compte :


⁄ dérive de la clé privée via ⁄ hash de la clé publique
Sens unique le protocole ECDSA Sens unique ⁄ est lié à un ensemble de
(Elliptic Curve Digital Signature bitcoins
Algorithm)
⁄ utilisé pour envoyer des
⁄ permet de calculer
bitcoins à quelqu’un
l’adresse du compte
⁄ souvent confondu avec
l’adresse

45
Nœuds et utilisateurs du réseau Bitcoin
• Utilisateur/nœuds normaux
• Demandent l’ajout d’information dans la
blockchain
• Consultent la blockchain
• Ne participent pas à sa construction

• Mineurs (Miners)
• Forment un sous-ensemble des nœuds du
réseau
• Participent au processus de création des blocs
de la blockchain
• Vérifient la validité des nouvelles transaction et
les ajoutent au registre des transactions

Dans une Blockchain publique n’importe qui


peut devenir un nœud utilisateur ou mineur
46
Un langage de programmation « non turing complet » ?
Exemple d’opérations avec Script :
OP_NO OP_AD OP_EQUA
• Bitcoin possède un langage P
4 2 2
D L

de programmation Avant exécution du script, la pile


permettant d’automatiser est vide
OP_AD OP_EQUA
des transactions sous 4 2 2
D L

certaines contraintes :
L’interpréteur rencontre une
Script 4
constante, celle-ci est placée
✔ Langage minimaliste, basé
en haut de la pile
2
sur les piles […] 2

✔ Langage non
4

Turing-complet (n’accepte OP_AD


D
OP_EQUA
L
pas les boucles)
4 L’opérateur OP_ADD va dépiler 2
valeurs, les additionner et empiler
4 le résultat (2+2=4)
OP_EQUA
L

L’opérateur OP_EQUAL dépile 2


valeurs, les compare et empile le 1
résultat ((4=4)=TRUE) 47
Par groupes de 4,
faites un schéma de
L’envoi d’une transaction Bitcoin process sur une slide
• Par groupes de 4 => 10 minutes pour décrire le workflow d’envoi d’une
transaction de 10 BTC depuis le compte d’Alice (0x123) au compte de Bob
(0x456)

48
L’envoi d’une transaction Bitcoin

1 Alice possède la clé privée associée à l’adresse 0x123

Alice signe une transaction avec sa clé privée pour envoyer 1 BTC à
2 l’adresse de Bob 0x456

Les mineurs vérifient la signature d’Alice et regardent dans la Blockchain si


3
l’adresse 0x123 a bien 1 BTC

4 Puis les mineurs ajoutent cette transaction dans le prochain bloc

5 Le compte de Bob possède maintenant 1 BTC en plus

49
Illustration du paiement avec bitcoin

Cédric décide d’accepter Bitcoin comme moyen de paiement

Tous les 2 possèdent des portefeuilles --Wallet-- Bitcoin sur leurs PC ou


Smartphones
Félix Cédric
Un portemonnaie Bitcoin est une sorte de compte bancaire en ligne qui
vous permettra de gérer vos actifs et de faire des transactions de crypto
monnaies.
La clé privée sert de signature pour confirmer un ordre de transaction sur le
réseau et la clé publique sert quand à elle a vérifier si la signature est
correcte. La combinaison de ces deux clés est ce qui permet d’effectuer des
transactions sur le réseau.
Votre clé publique représente votre adresse sur
la Blockchain et c’est celle-ci que vous aller
partager pour recevoir des coins lors de vos
transactions.

50
Création et Signature de la transaction

Félix Cédric

Send 0,9 bitcoin

Le client Bitcoin de Félix signe sa demande de


transaction avec sa clé privée de l’adresse depuis
laquelle il transfère ses bitcoins

51
Création et Signature de la transaction
Tout le monde sur le réseau peut à présent utiliser la clé publique pour vérifier
que la demande de transaction provient bien du propriétaire légitime du
compte…

Horodatage
Avec son serveur d’horodatage, le
Hash de chaque bloc est horodaté et
publié…

Double dépenses

Chaque horodatage contient l’horodatage


précédent, ce qui constitue une chaine de
blocs horodatés, d’où le terme de
Blockchain… 52
Transmission, validation et ajout à la Blockchain
Broadcast de la Les mineurs vérifient la validité
transaction de la transaction et travaillent
à forger un bloc contenant les
dernières transactions validées
dont celle-ci

Le réseau accepte le nouveau bloc et


tous les membres l’ajoutent à leur Preuve de
copie locale de la blockchain. travail
Le mineur est rémunéré pour son
travail

Le nouveau bloc est transmis


à tous les membres du
réseau pour vérification de la
validité du travail de forge 53
TP : exploration dans la Blockchain Bitcoin
• La transparence de la Blockchain permet de l’explorer à travers ce qu’on appelle des
« explorers » et voir ainsi l’ensemble des transactions réalisées et celles en cours d’exécution sur
le réseau en temps-réels. 2 exemples :
• https://www.blockchain.com/explorer
• https://blockexplorer.com

• Questions :
1. Numéro du dernier bloc ?
2. Hash du bloc 999 ?
3. Numéro du bloc 000000000000000000232f2b8cd1b98cddef685365fd55076267aecd3ce054e3 ?
4. Solde et historique du compte: 1Hz96kJKF2HLPGY15JWLB5m9qGNxvt8tHJ ?
5. Montant de la transaction 6157b44d1b2192306c8f2d42764f9e5807897b3f471987eb014b372b44aad5e0 ?
6. Adresse ou transaction: 12WNKo7KQNDHynMhxgPCVW8ouSrLxsBdc2 ?

https://textup.fr/383894I
54
Numéro du dernier bloc ?

1 494

2 10 583

3 626402

4 Autre

55
Hash du bloc 999 ?

1 000000000000000000103a3b0eee235e3293fc87e69eaa2327b08f6c77761
a01

2 000000003b2cfccabec62b1f874ee8e8e3c481a7e78d5188d7777fbbb948f1a0

3 0000000008e647742775a230787d66fdf92c46a48c896bfbc85cdc8acc67e8
7d

4 Autre

56
Numéro du bloc ?

1 532 461

2 532 460

3 532 458

4 Autre

57
Solde et historique du compte ?

1 ~ 200
BTC

2 ~ 66 BTC

3 ~ 38 BTC

4 Autre

58
Montant de la transaction ?

1 ~ 0,001 BTC

2 ~ 0,8 BTC

3 ~ 120
BTC

4 Autre

59
Adresse ou transaction ?

1 Transaction

2 Adresse

3 Réponse
D
4 Autre

60
Questions bonus
• Quand vous explorez la liste des transactions de différents blocs,
que remarquez-vous de commun ?

61
Questions bonus
• Quand vous explorez la liste des transactions de différents blocs,
que remarquez-vous de commun ?
• Bitcoin nouvellement générés pour récompenser le mineur qui a crée ce
bloc

62
Quizz Bitcoin – 4 questions
• Le Bitcoin peut prendre la forme de pièce de monnaie. Vrai ou
faux ?

• Quand votre compte en banque affiche que vous avez "1000€",


qu'est-ce que cela signifie ?

• La seule invention du Bitcoin est la blockchain. Vrai ou faux ?

• Pourquoi doit-on attendre qu'une transaction soit confirmée


par le réseau lorsqu'on reçoit des Bitcoins ?

63
https://create.kahoot.it/share/bitcoin-mini-quizz/a7f
Quizz Bitcoin – 4 questions 054bb-b84f-471b-91ff-4b8dc3114d5d

• Le Bitcoin peut prendre la forme de pièce de monnaie. Vrai ou faux ?


• Faux : Le Bitcoin est une monnaie électronique. On ne peut pas le "toucher" sous la forme de pièces et de
billets, mais ça n'empêche pas de pouvoir en posséder.
• Quand votre compte en banque affiche que vous avez "1000€", qu'est-ce que cela signifie
?
• 1000€ sous la forme de pièces et de billets sont réservés pour vous dans un coffre-fort
• 1000€ sous la forme d'or sont réservés pour vous dans un coffre-fort
• La banque doit vous donner 1000€ sous la forme de pièces et de billets si vous les demandez
• La seule invention du Bitcoin est la blockchain. Vrai ou faux ?
• Faux : Le Bitcoin apporte plusieurs innovations (pas seulement la blockchain). Pour n'en citer qu'une, le
système de preuve de travail qui permet d'éviter la double dépense !
• Pourquoi doit-on attendre qu'une transaction soit confirmée par le réseau lorsqu'on reçoit
des Bitcoins ?
• On risque de recevoir de l'argent du mauvais expéditeur
• On risque de révéler l'identité de l'expéditeur si un mineur tiers observe la transaction
• On n'est pas sûr que l'argent n'est pas en train d'être dépensé deux fois

64
Rémunération des mineurs
• Les BTC entrent en circulation grâce au processus de minage. Toutes les 10
min un nouveau bloc de transactions est ajouté à la blockchain et le mineur
ayant réussi à miner le bloc est récompensé en bitcoins nouvellement créés en
échange du travail qu’il a fournit pour sécuriser le réseau.
• Cette émission est divisée par deux tous les 210 000 blocs de transactions, soit
tous les quatre ans environ :

https://www.zonebourse.com/BITCOIN-UNITED-STATES-D-
45553945/actualite/Le-monde-du-bitcoin-se-prepare-au-phen
omene-du-halving-30554910/

https://www.binance.vision/fr/halvi
ng

65
Rémunération des mineurs
• 50 bitcoins ont été générés toutes les 10 minutes environ pendant les quatre premières années (soit
10,5 millions de bitcoins de 2009 à 2012), puis cette valeur est passée à 25 BTC le 28 novembre 2012
(soit 5,25 millions de bitcoins de 2012 à 2016), à 12,5 BTC le 9 juillet 2016 (soit 2,625 millions de
bitcoins de 2016 à 2020) et à 6,25 BTC le 11 mai 2020.

66
Graphique décrivant le
montant de Bitcoin en
circulation en fonction du
temps, indiquant clairement
une tendance
logarithmique.

67
Les limites des Blockchain 1.0…

68
Quelles limites pour les Blockchain dites « 1.0 » ?

69
Quelles limites pour les Blockchain dites « 1.0 » ?

Risques de centralisation et attaque dite


Sécurité du réseau
Attaque 51% « des 51% » !

>50%

🡪 Double dépense, suppression de blocs


etc…

Note : les 3 principaux pools de minage chinois


représentent aujourd’hui 50,0% de la puissance de 70
Simulez un scénario d’attaque 51 %

71
Zoom sur l’attaque des 51 %
• Un attaquant souhaite réécrire la Blockchain afin d’annuler certaines transactions
présentes dans un bloc…

1 L’attaquant mine des blocs alternatifs, à partir du bloc précédent


L’attaquant dispose de davantage de puissance CPU que le reste des
2 noeuds, et peut ainsi créer plus de blocs. Il publie sur le réseau la chaîne
qu’il obtient dès lors qu’elle est plus longue que la chaîne existante

La chaîne étant plus longue, elle remplace la chaîne existante et les


• …pour 3pouvoir réaliser une telle attaque, l’attaquant doit disposer de plus de 51% de la
puissance detransactions que! celle-ci contenait sont annulées
calcul du réseau

72
Quelles limites pour les Blockchain dites « 1.0 » ?

Privacy
La Blockchain est pseudonyme,
Confidentialité et non pas anonyme ! Sa transparence
peut la trahir….

+
• Certains utilisateurs partagent ouvertement
• Un utilisateur Bitcoin est connu par son leurs @publiques Bitcoin pour recevoir des
adresse publique paiements….
• Le lien entre l’@publique et l’utilisateur • Il est donc facile de faire le lien entre une
n’est pas connue @publique et un utilisateur…

• Bitcoin est un registre ouvert, toutes les


transactions sont visibles, il est donc
possible de retrouver l’ensemble des
transactions réalisées par une
@publique
73
Quelles limites pour les Blockchain dites « 1.0 » ?

Privacy
La Blockchain est transparente, toutes
Confidentialité les données qui y sont stockées sont
accessibles !

Risque que les données sensibles soient exposées, il est


donc important de bien définir ce qui est confidentiel de ce
qui ne l’est pas au sein de ses données

Mitigation du risque : stockage off-chain pour les données


sensibles

74
Quelles limites pour les Blockchain dites « 1.0 » ?

Hardware Sécurité du réseau


Consommation Confidentialié
Attaque 51%
énergétique élevée

Limite du langage Législatif


Performances
de programmation Nb transactions / sec Vide juridique
« non turing complet »

75
76

L’autre danger à
ne pas
oublier…c’est
votre clé privée!
L’autre danger à ne pas oublier…c’est votre clé privée!
• La clé publique c’est votre adresse, ce serait l’équivalent de votre IBAN dans le
système bancaire traditionnel.. Elle permet d’envoyer des cryptomonnaies sur
votre compte.

• La clé privée c’est le code qui vous permet de signer des transactions, et donc,
d’envoyer des cryptomonnaies à quelqu’un d’autre (le payer). Ce serait donc
votre code PIN et votre numéro de carte bleue dans le système bancaire
traditionnel. Quiconque connait votre clé privée peut dépenser vos
cryptomonnaies.

• Cette métapohore a des limites…si vous perdez votre code PIN vous pouvez en
demander un autre à votre banque…si vous perdez votre clé privée…vous
perdez l’acces à vos cryptos…à jamais !

77

Vous aimerez peut-être aussi