0% ont trouvé ce document utile (0 vote)
171 vues5 pages

TD1 Blockchain

Ce TD vise à initier les participants aux concepts fondamentaux de la Blockchain, notamment les transactions, les blocs, et les mécanismes de sécurisation comme le hachage et la cryptographie. Les étudiants mettront en pratique ces notions en manipulant une Blockchain Ethereum sur une machine virtuelle, en effectuant des transactions et en explorant la sécurisation des transactions. À la fin du TD, les participants auront une compréhension pratique de la Blockchain et de son fonctionnement.

Transféré par

AZZOUZI YASSINE
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
171 vues5 pages

TD1 Blockchain

Ce TD vise à initier les participants aux concepts fondamentaux de la Blockchain, notamment les transactions, les blocs, et les mécanismes de sécurisation comme le hachage et la cryptographie. Les étudiants mettront en pratique ces notions en manipulant une Blockchain Ethereum sur une machine virtuelle, en effectuant des transactions et en explorant la sécurisation des transactions. À la fin du TD, les participants auront une compréhension pratique de la Blockchain et de son fonctionnement.

Transféré par

AZZOUZI YASSINE
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TD :Prise en main des notions de

Blockchain
Prof. Abdellatif Kobbane
1 Objectifs du TD
L’objectif de ce TD est de se familiariser avec les éléments de base d’une Blockchain,
c’est à dire les transaction et les blocs, et ce visuellement sans taper du code. De plus,
on regardera d’une façon pratique l’intérêt des mécanismes de sécurisation utilisées
par la Blockchain comme vus en cours, notamment le Hachage et la Cryptographie
à Clés Publique / Privée, pour que vous compreniez leurs utilités. En fin de TD,
vous allez mettre en oeuvre dans le cadre d’un projet un exemple de Blockchain
Ethereum sous une Machine Virtuelle, afin de vous éviter les étapes d’installation,
avec des vrais noeuds qui tournent derrière et exécuter des exemples de transactions.

2 Prise en main des transactions et des blocs dans


une Blockchain
Dans cette partie du TD, nous allons explorer les notions de base de la Blockchain :
Hachage, Transactions et Blocs.
I 2.1 Connectez-vous sur le site : [Link]
Sur cette interface, vous pourrez tester la notion de Hachage.
I 2.2 Insérez des caractères dans le champs "Data" et vous pourrez noter la modi-
fication de valeur du Hash générée.
I 2.3 Prenez un exemple d’une chaîne de caractères. Notez la valeur du Hash
générée. Modifiez la chaîne de caractères. Recalculez le Hash. Maintenant revenez
sur la première chaîne de caractères. Qu’est-ce que vous remarquez ? Qu’est-ce que
cela veut dire en termes de propriété de la fonction de Hachage ?
I 2.4 Intégrons ce texte à un bloc. Cliquez sur l’onglet "Block". Vérifiez que le
Hash du bloc commence bien par "0000". Maintenant, modifiez la "Data" du bloc.
Qu’est-ce que vous remarquez ?
I 2.5 Essayez de remplacer la valeur du Nonce actuel par d’autres valeurs pour
obtenir les "0000". Est-ce que c’est facile ?
I 2.6 Cliquez maintenant sur "Mine". Que remarquez-vous ? Donnez une définition
alors du minage dans cet exemple.
I 2.7 Faites d’autres tests avec d’autres données et voyez ce que cela donne.
I 2.8 Maintenant, regardons une Blockchain avec plusieurs blocs. Cliquez alors sur
le lien "Blockchain". Que voyez-vous ?
I 2.9 Expliquez comment les blocs sont enchaînés entre eux. Que peut-on dire pour
le "Genesis" bloc ?
I 2.10 Modifiez le champ "Data" du bloc numéro 3. C’est quoi l’impact de cette

2
modification.
I 2.11 Minez les blocs 3, 4 et 5. Qu’est-ce que l’on peut dire maintenant ? C’est
quoi votre conclusion ?
I 2.12 Faites d’autres tests avec d’autres modifications et voyez ce que cela donne.
I 2.13 Des blocs sauvegardés dans un seul noeud, n’ont aucune valeur car ils
peuvent être modifiés comme on vient de le faire. Pour voir ce que cela donnerait
sur une Blockchain distribuée, cliquez sur l’onglet "Distributed". Décrivez ce que
vous voyez.
I 2.14 Comme précédemment, faites une modification du champ "Data" du bloc 3
dans le noeud A. Refaites le minage des blocs 3, 4 et 5 du noeud A. Que remarquez-
vous ?
I 2.15 Qu’est-ce qui se passe si on applique les mêmes modifications au noeud B ?
I 2.16 Quelle est votre conclusion sur la Blockchain distribuée ?
I 2.17 Faites d’autres tests avec d’autres modifications et voyez ce que cela donne.
I 2.18 Voyons voir maintenant ce qui se passe si on met des transactions à la
place du champ "Data" pour voir l’utilité de tout cela. Pour cela, cliquez sur l’onglet
"Tokens".
I 2.19 Décrivez ce que vous voyez.
I 2.20 Faites des tests en modifiant les différents champs des transactions (mon-
tants, expéditeurs et destinataires). Que remarquez-vous ?
I 2.21 Dans cette version, nous ne savons pas si chacun dispose du solde nécessaire
pour la transaction. Regardons une version qui contient une transaction de base
appelée "Coinbase" qui permet de charger les soldes du début des utilisateurs. Faites
aussi des tests sur cette version.

3 Sécurisation et anonymisation des transactions


dans une Blockchain
Maintenant, nous allons nous intéresser aux cryptage à clés publique / privée qui
permet d’assurer que les transactions soient sécurisées, autorisées et anonymes.
I 3.1 Connectez-vous sur le site : [Link]
private-keys/keys.
I 3.2 Changez le champ "Private Key". Qu’est-ce que vous remarquez ?
I 3.3 Comment doivent-être utilisées ces clés ?
I 3.4 Comment le choix de la clé privée doit-il se faire ? Choisissez alors une en
respectant les critères énoncés. Notez le couple de clés publique / privée choisi.

3
I 3.5 Passez à l’onglet "Signatures". Insérez du texte dans le champ "Message".
Cliquez sur le le bouton "Sign" afin de calculer la signature.
I 3.6 Cliquez sur l’onglet "Verify". Vérifiez la signature du message en utilisant la
clé publique choisie. Essayez maintenant de modifier à chaque fois un des champs
"Message", "Public Key" ou "Signature". Que donne la vérification ? Qu’est-ce que
vous en concluez ?
I 3.7 Faites des tests en modifiant les différents champs et en recalculant la signature
et la vérification.
I 3.8 Appliquons cette signature à une transaction. Pour cela passez à l’onglet
"Transaction". Que voyez-vous ?
I 3.9 Une fois que la signature est calculée, faites sa vérification sans rien modifier.
Qu’est-ce que cela permet de prouver ?
I 3.10 Maintenant, faites des modifications dans l’un des champs de la transaction
et refaites la vérification. Qu’obtenez-vous ?
I 3.11 Faites des tests en modifiant les différents champs de la transaction et en
recalculant la signature et la vérification.
I 3.12 Intégrons maintenant cette transaction avec sa signature à une Blockchain
globale comme celle vue précédemment. Pour cela allez sur l’onglet "Blockchain".
Que voyez-vous ?
I 3.13 Modifiez une des transactions du bloc 3 du noeud A. Que se passe-t-il ?
I 3.14 Minez les blocs 3, 4 et 5 du noeud A. Que remarquez-vous ?
I 3.15 Quelles sont vos conclusions sur la sécurisation des transactions dans une
Blockchain ?

4 Exemple de manipulation d’une Blockchain Ethe-


reum
Dans cette partie, nous allons voir un exemple d’une Blockchain privée à base d’Ethe-
reum. La Blockchain a été installée sur une Machine Virtuelle (VM). Vous allez
commencer par l’importer sur votre machine avant de l’utiliser.
I 4.1 Installez sur votre machine "Oracle VM VirtualBox" ou équivalent pour faire
marcher une VM.
I 4.2 Demandez le à votre intervenant de vous passer sur une clé USB le fichier de
la VM "[Link]" car c’est un fichier lourd qui fait 2,15 Go.
I 4.3 Importez ce fichier dans "Oracle VM VirtualBox" ou équivalent et démarrez
la VM.

4
I 4.4 Une fois la VM en cours d’exécution, double-cliquez sur le fichier nommé
"[Link]"
I 4.5 Sélectionnez "Run in Terminal". Cela démarrera le terminal dans quelques
secondes. Ne fermez pas le terminal avant la fin de l’exercice.
I 4.6 Minimisez le terminal (Ne le fermez pas).
I 4.7 Double-cliquez sur le fichier de raccourci nommé “2. Start the Browser”. Vous
êtes maintenant prêt à poursuivre le projet !
Dans ce projet, vous allez déployer une Blockchain de test Ethereum avec deux
nœuds et effectuer des transactions entre eux. L’objectif est de tester d’une façon
simple pour commencer (sans taper de lignes de codes) les opérations suivantes :
— Connection des noeuds en peer-to-peer.
— Vérification des détails des noeuds pairs.
— Création de plusieurs comptes.
— Vérification que leurs soldes de départ sont bien à 0.
— Démarrage d’un mineur ajoute au solde du compte Coinbase du nœud mineur
(frais de mineur/récompenses).
— Exécution de transactions entre le compte avec du solde (premier nœud) pour
tout autre compte dans le premier ou le deuxième nœud.
Vous apprendrez également la nécessité de déverrouiller les comptes avant d’exécuter
les transactions et la possibilité d’examiner l’état de la transaction (en attente,
terminée, etc.).
I 4.8 Suivez les différentes étapes dans le navigateur du projet et lisez les consignes
directement dessus.
Dans ce projet, il n’y a qu’un seul mineur démarré sur le premier nœud. N’arrêtez pas
le mineur tant que vous n’avez pas terminé les transactions. Rappelez-vous qu’un
mineur est nécessaire pour confirmer vos transactions. Les transactions ne seront
jamais confirmées si vous n’avez pas de mineur en cours d’exécution.
I 4.9 Vous pourrez refaire autant de fois que vous voulez et tester plusieurs com-
binaisons de transactions.
I 4.10 Après la fin de l’exécution, qu’avez vous retenu du fonctionnement de la
Blockchain Ethereum ?

Vous aimerez peut-être aussi