Blockchain Part1
Blockchain Part1
Blockchain Part1
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
2
Avant de commencer : sondage expérience Blockchain
1. Avez-vous déjà des connaissances / suivi des formations / tutos autour de la technologie
Blockchain ?
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 ?
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
Applications concrètes de la
Blockchain (en entreprise
Comprendre Bitcoin
inclus, autre que la crypto
etc.)
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
6 - A vous de jouer !
9
Le programme de la formation
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 !
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
• …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
Tie iance
voici Bob
transfère à
Alice Bob Bob.
10$
o n f Alice
Je
t’envoie
c
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é
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 … ?
17
Quelles différences avec une base de données centralisée ?
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
Consensus
Blocs
Ouvert à tous
21
Qu’est ce qu’un consensus ?
22
Les principales caractéristiques d’une Blockchain
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
(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
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
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
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
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 …
33
Une structure en forme de blocs …
34
Envoi et vérification d’une transaction…
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…
36
…puis minage…
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
41
Retour sur les notions de Proof of Work et Proof of Stake
42
Différents protocoles de consensus existent…
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
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
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
48
L’envoi d’une transaction Bitcoin
Alice signe une transaction avec sa clé privée pour envoyer 1 BTC à
2 l’adresse de Bob 0x456
49
Illustration du paiement avec bitcoin
50
Création et Signature de la transaction
Félix Cédric
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
• 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 ?
63
https://create.kahoot.it/share/bitcoin-mini-quizz/a7f
Quizz Bitcoin – 4 questions 054bb-b84f-471b-91ff-4b8dc3114d5d
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 » ?
>50%
71
Zoom sur l’attaque des 51 %
• Un attaquant souhaite réécrire la Blockchain afin d’annuler certaines transactions
présentes dans un bloc…
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…
Privacy
La Blockchain est transparente, toutes
Confidentialité les données qui y sont stockées sont
accessibles !
74
Quelles limites pour les Blockchain dites « 1.0 » ?
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