Cours 3 Architecture de Blockchain PDF
Document Details
Uploaded by HandyWombat
جامعة ابن خلدون تيارت
Abdelkader Ouared
Tags
Summary
This document presents a lecture on blockchain technology, discussing fundamental concepts like blocks, hashing, mining, and Merkle trees. It also touches upon blockchain as a service (BaaS) technologies and different blockchain platforms.
Full Transcript
Architecture de la Technologie Blockchain Notions de Base de la Blockchain : Block, The Hash, Mining, Merkle Trees Abdelkader Ouared [email protected] @ouared Les couches de blockchain Les couches de bloc...
Architecture de la Technologie Blockchain Notions de Base de la Blockchain : Block, The Hash, Mining, Merkle Trees Abdelkader Ouared [email protected] @ouared Les couches de blockchain Les couches de blockchain Couche d'Infrastructure Matérielle NODE Communication entre les nœuds Découverte de nœuds Création de blocs Ajout de blocs Propagation « peer-clients »plus rapide Couche d'Infrastructure Matérielle et plus facile Machine virtuelle, conteneurs, Un consensus sur la validité d'une transaction services, messagerie Couche d'Infrastructure Matérielle Couche d'Infrastructure Matérielle Blockchain en tant que service GCP (Google Cloud Platform) n'a pas encore investi dans ce domaine. Actuellement, ils ne proposent aucun service lié à la blockchain. Microsoft Azure avait lancé un service appelé Azure Blockchain Service. Cependant, ils ont arrêté ce service en septembre 2021. Alors que AWS (Amazon Web Services) offre la solution cloud la plus complète pour ceux qui souhaitent se lancer dans la blockchain. AWS propose le service Amazon Managed Blockchain qui est un BaaS (Blockchain as a Service, ou Blockchain en tant que service). X X ✓ Autre acteur de la blockchain sur le cloud Les étapes clés pour la conception et le développement d'une solution blockchain: Choix de l’Infrastructure 1. Identifier un cas d'utilisation approprié Exemple: 2. Identifier le mécanisme de consensus le plus adapté Si la scalabilité et les faibles frais sont essentiels, optez pour Polygon. 3. Identifier la plateforme la plus adaptée Pour une solution privée, préférez Hyperledger Fabric, et pour l'interopérabilité, choisissez Polkadot. 4. Concevoir les nœuds 5. Concevoir l'instance blockchain 6. Développer les API 7. Concevoir l'interface utilisateur et l'administration 8. Ajouter des technologies futures Les couches de blockchain Couche de données: Data Layer ❑ Bloc contenant les données de transaction ❑ Les données sont traitées dans le bloc => Ajouter à la blockchain => lié au bloc de données précédent ❑ Le bloc Genesis est le premier bloc de la chaîne et ne peut donc pas être lié GENESIS BLOCK La notion de bloc c'est pas nouveau ❑ Base de données structurée : la base de données est un ensemble de blocs ❑ Un bloc est un ensemble de tuples ❑ Facteur de blocage: Le facteur de blocage désigne le nombre maximal de tuples ou d'enregistrements qu'un bloc peut contenir. Notion de block ▪ un bloc peut contenir plusieurs transactions, mais une transaction ne peut pas être ajoutée à un bloc déjà existant, car les blocs précédemment validés sont immuables. ▪ Un bloc dans une blockchain ne concerne pas un seul utilisateur. Il peut contenir plusieurs transactions provenant de plusieurs utilisateurs Que contient chaque bloc ? Que contient chaque bloc ? ❑ Généralement Chaque bloc a une taille maximale définie (Exemple: blockchains Bitcoin est fixée à 1 Mo ) ❑ Taille effective d'un bloc peut varier en fonction des données qu'il contient ❑ D'autres blockchains, comme Ethereum, n'ont pas une taille de bloc fixe mais utilisent plutôt un système pour mesurer la capacité d'exécution des transactions. Cela signifie que le bloc peut avoir une taille variable en fonction de la complexité des transactions. Que contient chaque bloc ? ❑ Version: ❑ La version d'un bloc dans une blockchain désigne le numéro qui identifie la version du protocole utilisé pour créer ou valider ce bloc. ❑ Pourquoi la Version est Importante ? Compatibilité : Assure que tous les nœuds suivent les mêmes règles. Évolutivité : Permet d'introduire de nouvelles fonctionnalités ou corrections de sécurité. Gestion des mises à jour : Indique quels types de transactions ou structures sont acceptés selon la version. ❑ Exemple : Version 1.0 : Première version de la blockchain avec des règles de base. Version 2.0 : Amélioration des algorithmes de consensus ou nouvelles fonctionnalités ajoutées. Que contient chaque bloc ? ❑ Sécurité: On ne sait pas prouver que les fonctions de hachages utilisées en pratique sont résistantes aux collisions En 2004, une équipe de recherche chinoise a trouvé un moyen de calculer des collisions pour MD5 est une heure. Il est aujourd’hui recommandé de ne plus l’utilisé Le hash d’un fichier est une petite chaine de bits qui caractérise le fichier: Signature du hash Stockage de mot de passe Vérifier l'intégrité Créer une blockchain Que contient chaque bloc ? ❑ Sécurité cryptographique ▪ Hachage : La blockchain utilise des fonctions de hachage cryptographique (par exemple, SHA-256 pour Bitcoin) pour garantir l'intégrité des transactions. Chaque bloc contient le hachage cryptographique du bloc précédent, ce qui rend pratiquement impossible la modification des données sans être détecté. ▪ Cryptographie à clé publique/privée : Les transactions sont sécurisées grâce à un système de cryptographie à clé publique et privée. L'utilisateur signe une transaction avec sa clé privée, et elle peut être vérifiée par n'importe qui avec la clé publique, garantissant l'authenticité sans compromettre la confidentialité. ▪ Immutabilité : Une fois les données enregistrées dans une blockchain, il est extrêmement difficile de les modifier. Cette immutabilité garantit que les données, une fois vérifiées, ne peuvent être altérées, ajoutant ainsi un niveau de sécurité supplémentaire. Que contient chaque bloc ? Exemple: QuickHash-GUI (**) https://github.com/tedsmith/quickhash Que contient chaque bloc ? BLOCK 1 Hachage SHA-256 : "8a4d7e9a6dcf13b9be1d580f013df47de9c9e12 f8ef4777f4e4dc32b9a2ebde4" BLOCK 2 Hachage SHA-256 : 9c1b80a53ed9e8d8e3b2e3c29f1fa1f3a6b2c08b 374e3d5c1bb5dc0422c60ae6 Que contient chaque bloc ? BLOCK 2 f10f4737e87879cba3f2722447ab572cf9e4bfcff57180c1e94b0197c72a3c75 f87a18c1e6a21cc53cd519d6766e38c1e5c5f91f5f5d8c0c5c1b431f76de76db ecf72f64bbf456d9995ccf5ee03de87aa47a02bca3ee0c5e6fa4c2e6d6d84726 7c7ed03317cde545e9d6b8a3d3d11e5ee06d0e2c00d8cb4a9e90fbd17e95d1f9a 8f5efb33c64458ac0a362eec4ae256d7be9606ae35d06f99aa03d2d61c5a4912 9c1b80a53ed9e8d8e3b2e3c29f1fa1f3a6b2c08b374e3d5c1bb5dc0422c60ae6 ❑ Comment implémenter cette solution => Merkle tree Que contient chaque bloc ? Ralph Merkle Le Merkle Root est une valeur hachée qui résume toutes les transactions contenues dans un bloc de la blockchain. Il est dérivé d'une structure appelée arbre de Merkle. Importance du Merkle Root : ▪ Efficacité : Le Merkle Root permet de vérifier si une transaction particulière fait partie du bloc sans avoir à stocker ou vérifier toutes les transactions. Ralph C. Merkle (né le 2 février 1952 ), est un cryptographe américain et chercheur en nanotechnologie Que contient chaque bloc ? Que contient chaque bloc ? Arbre de Merkle (Merkle Tree) Exercice Écrire un programme pour la création d'un arbre de Merkle en Python Que contient chaque bloc ? ▪ Un timestamp indiquant la date et l'heure exacte de création d’ une transaction ou un événement. ▪ Ce timestamp est un élément clé pour garantir l'ordre des événements dans une blockchain décentralisée. Que contient chaque bloc ? ❑ Importance du Timestamp dans la Blockchain ❑ Le timestamp garantit : L'ordre des transactions : Il permet de savoir laquelle des transactions a eu lieu en premier. La validité des blocs : Dans un système décentralisé, les nœuds utilisent l'horodatage pour vérifier la cohérence des données partagées. La sécurité : Comme les données d'une blockchain sont immuables, un timestamp protège contre la manipulation des transactions. Que contient chaque bloc ? Pourquoi? But : Garder un rythme régulier dans la création de nouveaux blocs, généralement tous les 10 minutes dans le cas de Bitcoin Solution: Critère de Difficulté Critère de Difficulté : La difficulté dans une blockchain détermine combien il est difficile de créer un nouveau bloc. Elle est ajustée pour que les blocs soient ajoutés à la chaîne à un rythme régulier Nombre Secret: 10 Hachage : Pour deviner le nombre vous lancez un dé (c'est comme générer un hachage ❑ Fonctionnement du Critère de Difficulté: ❑ Difficulté Initiale : nombre secret est 10. Vous lancez le dé et essayez de deviner. Supposons que cela prend en moyenne 5 lancers ❑ Ajustement de la Difficulté : ❑ Si Trop de Gagnants : Si beaucoup de joueurs devinent rapidement, le nombre secret devient 5 pour rendre le jeu plus difficile (c'est comme augmenter la difficulté). ❑ Si Trop Lents : Si personne ne trouve un nombre inférieur à 10 après beaucoup de lancers, le nombre secret devient 15 pour faciliter le jeu (c'est comme diminuer la difficulté). What does each block contains ? Hachage : Le hachage est une fonction qui prend une entrée (ou un ensemble de données) et produit une sortie fixe, appelée hachage. Pour Bitcoin, la fonction utilisée est SHA-256. Nonce : Les mineurs ajoutent un nombre arbitraire appelé nonce (number used once) au bloc de données (qui contient les transactions et un lien vers le bloc précédent) pour générer un hachage. Le nonce est modifié pour essayer de trouver un hachage qui répond à des critères spécifiques. Critère de Difficulté : Le hachage du bloc doit être inférieur à une certaine valeur cible, déterminée par le niveau de difficulté du réseau. Ce critère de difficulté est ajusté environ toutes les deux semaines pour maintenir un temps moyen de création de blocs de 10 minutes. Équation du puzzle cryptographique Que contient chaque bloc ? Le Puzzle Cryptographique Les mineurs doivent résoudre un problème mathématique spécifique (appelé un puzzle cryptographique). Ce problème implique de trouver un certain nombre, appelé le nonce, qui, lorsqu'il est combiné aux transactions du bloc et passé dans une fonction de hachage (SHA-256 pour Bitcoin), donne un résultat qui satisfait certaines conditions (le hachage doit commencer par un certain nombre de zéros). Le problème à résoudre est aléatoire et très difficile, mais facile à vérifier une fois résolu. Cela demande énormément de puissance de calcul, et c'est pourquoi les mineurs utilisent des machines puissantes (des ASICs) pour essayer de deviner le bon nonce le plus rapidement possible. Que contient chaque bloc ? Le mining est le processus par lequel les transactions sont validées et ajoutées à la blockchain, en particulier dans les systèmes utilisant la preuve de travail (PoW), comme Bitcoin. Ce processus implique plusieurs étapes clés : Calcul Complexe Accéder à un Bloc Spécifique : Hash Approuver les Transactions Bitcoin Mining Rig 13-GPU READY ULTRA PREMIUM Cryptocurrency Miner BITPUNISHER | eBay What does each block contains ? Compteur de Transactions en Blockchain Un compteur de transactions suit le nombre de transactions associées à un compte ou une adresse blockchain. Ses principaux objectifs sont : 1.Prévention des attaques de répétition : 1. Le compteur garantit l’unicité des transactions. Il s'incrémente à chaque transaction, rendant les doublons invalides. 2.Ordonnancement des transactions : 1. Assure que les transactions sont traitées dans l’ordre, les plus anciennes avant les plus récentes. Exemples : Ethereum : Le compteur s’incrémente avec chaque transaction. Si un compteur est hors séquence, la transaction est invalide. Bitcoin : Utilise des entrées et des sorties pour garantir l’unicité, évitant la double dépense. What does each block contains ? Contenu du Bloc (Block Content) Transactions : Le contenu principal d'un bloc comprend toutes les transactions qui ont été validées et incluses dans ce bloc. Chaque transaction contient des détails tels que l'expéditeur, le destinataire, le montant et les signatures numériques. État : Certaines blockchains, comme Ethereum, peuvent également inclure des informations sur l'état après l'exécution des transactions, par exemple, l'état des comptes et des smart contracts. Questions ?!!