Les Technologies Blockchain
1
Plan
I. Les briques de base
II. Les smart contracts, les DApp et les Oracles
III. Confidentialité et sécurité des données
IV. Les frameworks
2
I. Les briques de base
3
Les briques de base
• La chaîne des blocs
• Réseau des nœuds de Blockchain
• Les primitives cryptographiques : fonction de hachage
• Les primitives cryptographiques : la signature digitale
• La notion de consensus
• Les jetons (tokens)
4
Chaine de Blocs
5
Chaine des Blocs
• Compte et transactions
• Un utilisateur de la blockchain possède un compte avec une adresse unique.
• Sur Ethereum, chaque compte a une balance en ether (ETH).
• La balance peut également être exprimée en devise réelle, comme le dollar.
6
Chaine des Blocs
7
Chaine des Blocs
TxHash : c’est l’identifiant
TxReceipt Status : cela indique unique de la transaction
le statut de la transaction (succès,
en attente…).
8
Chaine des Blocs
• Le premier bloc de la blockchain est le bloc « genesis », créé par le
concepteur du système (Satoshi pour Bitcoin).
• Un attaquant souhaitant remplacer un bloc doit également modifier tous
les blocs précédents, nécessitant une grande puissance de calcul et la
majorité des votes sur le réseau.
• Plus le nombre de nœuds dans le réseau est élevé, plus la probabilité d'une
attaque réussie diminue.
• Une mauvaise implémentation ou des bugs peuvent être exploités par des
attaquants, même si la conception générale favorise la sécurité.
• Lorsqu'un nouveau bloc est ajouté, il est validé par l'ensemble du réseau
via un mécanisme de consensus.
9
Chaine des Blocs
10
Réseau des nœuds de Blockchain
• Une blockchain n'autorise que des ajouts, contrairement aux bases de
données classiques.
• Plusieurs copies d'un registre existent simultanément sur différents
ordinateurs, appelés nœuds.
• Lorsqu'un bloc est ajouté, il est mis à jour sur tous les nœuds du
réseau blockchain.
11
Réseau des nœuds de Blockchain
12
Les primitives cryptographiques : fonction de hachage
• Pour vérifier la version d'un document numérique, la méthode naïve
consiste à comparer chaque phrase, ce qui peut être long.
• Une fonction de hachage est une fonction mathématique qui produit une
sortie de taille fixe (ex. : 256 caractères) pour une entrée de taille variable.
• Propriétés d'une bonne fonction de hachage :
• Propriété 1 : Calculer la sortie à partir de l'entrée est simple.
• Propriété 2 : Retrouver l'entrée à partir de la sortie est très difficile.
• Propriété 3 : La probabilité d'obtenir la même sortie pour deux entrées différentes
est très faible (collision free).
• Les fonctions de hachage facilitent la comparaison des blocs tout en
rendant les attaques complexes grâce à leur sécurité.
13
Les primitives cryptographiques : la signature digitale
• Pour identifier l'auteur d'un document, une signature électronique est
utilisée.
• La signature électronique permet une identification certaine de l'auteur.
• Avec des outils comme Etherscan, il est possible de suivre les transactions
d'un compte, offrant une identification pseudo-anonyme.
• Bien qu'il y ait un identifiant, il n'est pas possible de remonter directement
à l'utilisateur humain avec son nom.
• La combinaison des technologies de hachage et de signature électronique
permet de vérifier qu'une information a été signée par la partie concernée.
14
Les primitives cryptographiques : la signature digitale
15
La notion de consensus
16
La notion de consensus
• La preuve de travail: Proof of Work
• La preuve d’enjeu: Proof of Stake
• Limites
• Le dBFT (Delegated Byzantine Fault Tolerance)
17
La notion de consensus
• Une blockchain regroupe tous les échanges entre utilisateurs
permettant à chacun de vérifier la validité des informations.
• Le mécanisme de consensus permet d'établir un accord général sans
vote préalable, contrairement à un système centralisé où un tiers de
confiance prend les décisions.
• Dans un modèle décentralisé, aucune modification ne peut être faite
sans le consensus global des utilisateurs, garantissant que les
transactions ne seront pas falsifiées.
18
La notion de consensus
• Plusieurs méthodes de construction du consensus existent,
notamment :
• Practical Byzantine Fault Tolerance
• Proof of Work
• Proof of Stake
• Proof of Importance
• Proof of Space Time
• Les transactions doivent respecter des règles définies dans un
protocole pour protéger la blockchain et atteindre un consensus
rapidement.
• Les mécanismes de consensus les plus connus sont la Proof of Work
(mining) et la Proof of Stake (minting).
19
La notion de consensus
20
La notion de consensus: Proof of Work
• Le système de consensus dans un réseau décentralisé valide les transactions et
établit leur ordre pour les ajouter à la blockchain.
• Dans un système de preuve de travail, chaque mineur résout un problème
mathématique, et seul le premier à trouver la solution peut ajouter le bloc à la
blockchain et recevoir une récompense.
• Les fonctions de hachage sont à sens unique, rendant impossible la récupération
de la donnée initiale à partir du hash.
• La difficulté de la résolution est ajustée pour générer un nouveau bloc en
moyenne toutes les dix minutes.
21
La notion de consensus: Proof of Work
• La probabilité de succès d'un mineur dépend de sa puissance de calcul ➔ consommation énergétique considérable.
• Le mécanisme protège le réseau contre des acteurs malveillants, notamment lors d'une attaque des 51 %.
Entrepôt de Minage
22
La notion de Consensus: Proof of Stake
• Ce mécanisme de consensus ne nécessite pas de calculs massifs, mais
demande de prouver que l'utilisateur possède un montant suffisant
de jetons (tokens).
• La capacité d'un forgeur à créer un bloc de transactions et à recevoir
une récompense est proportionnelle à son implication dans le
réseau.
• Idée de base: Ceux qui participent activement ont le plus intérêt à
sécuriser le réseau, car une attaque réduirait leur avoir.
• La possibilité de forger sans nécessiter une grande puissance
informatique permet d'éviter la centralisation des ressources,
contrairement à la preuve de travail.
23
La notion de Consensus: Limites
• Les mécanismes de consensus présentent des défauts : ils sont lents, énergivores.
• Les utilisateurs doivent attendre un délai avant de considérer une transaction comme
confirmée, augmentant ainsi le risque de bifurcation (forks): production d’une 2ème
copie de la blockchain
• La preuve d'enjeu repose uniquement sur la possession de jetons, ce qui peut entraîner
l'attaque connue sous le nom de "Nothing at Stake".
• Contrairement au minage, le forgeage permet aux utilisateurs de continuer à forger sur plusieurs
branches incitant à des doubles paiements.
• Les deux modèles de consensus peuvent mener à une concentration de pouvoir de
minage et de forgeage.
• Des systèmes de consensus plus efficaces, comme le delegated proof of stake ou le
Byzantine fault tolerant system, sont en développement pour remédier à ces
problèmes.
24
La notion de consensus: Le dBFT (Delegated
Byzantine Fault Tolerance)
• Le mécanisme de consensus implique l'élection de nœuds de
consensus, avec un représentant choisi au hasard pour créer un
nouveau bloc à partir des transactions en attente.
• Le représentant vérifie les transactions et calcule les hachages, puis
envoie la proposition aux délégués pour validation.
• Un contrôle de deux tiers des nœuds est nécessaire pour corrompre
les transactions.
25
La notion de consensus: Le dBFT (Delegated
Byzantine Fault Tolerance)
• Trois scénarios possibles :
1. Représentant malhonnête : Envoie une proposition malveillante. Les
délégués détectent la corruption et remplacent le représentant.
2. Délégué malhonnête : Reçoit une proposition valide mais diffuse une
proposition corrompue. Le consensus est atteint si plus de 50 % des
délégués valident le bloc, remplaçant le délégué malhonnête.
3. Représentant et délégué malhonnêtes :Les délégués reçoivent des
propositions falsifiées. Si plus de 50 % des délégués trouvent le bloc
invalide, le délégué malhonnête et le représentant sont remplacés.
• En dessous de 33,33 % de nœuds honnêtes, les nœuds malhonnêtes
peuvent établir un consensus.
26
La notion de consensus: Le dBFT (Delegated
Byzantine Fault Tolerance)
27
La notion de consensus: Le dBFT (Delegated
Byzantine Fault Tolerance)
• Définitions clés :
• n : nombre de nœuds de consensus actifs.
• f : nombre maximal de nœuds défectueux.
• h : taille du bloc pendant le consensus.
• v : vue d'un nœud, incluant les votes des délégués.
• p : index du locuteur.
• s : seuil de consensus sûr.
• Exigences pour tolérer les fautes :
• Consensus sur une transaction avant validation du bloc.
• Nœuds malhonnêtes ne doivent pas persuader les nœuds honnêtes.
• Tous les délégués doivent être dans le même état au début du consensus.
28
La notion de consensus: Le dBFT (Delegated
Byzantine Fault Tolerance)
• Algorithme :
• Un nombre de nœuds malhonnêtes inférieur à (n − 1)/3 assure la
fonctionnalité.
• Les données pour établir un consensus sont appelées une vue, identifiée par
un nombre v.
• Le locuteur est déterminé par p = (h − v) mod n.
• Un nouveau bloc est généré avec au moins n − f signatures, et un nouveau
cycle de consensus commence avec v réinitialisé à 0.
29
Les Jetons (Tokens)
30
Les Jetons (Tokens)
• Les jetons sont essentiels pour faire fonctionner des applications
décentralisées, permettant de nouvelles stratégies, modèles
économiques et un meilleur partage de la valeur.
• Les actifs financiers et immobiliers peuvent être « tokenisés »,
représentant des fractions de propriété facilement transférables via la
blockchain.
31
Les Jetons (Tokens)
• Cinq dimensions des jetons selon Untitled Inc.* :
1. Objectif : Les jetons peuvent être des cryptomonnaies (ex. : Bitcoin), des jetons de
réseau pour catalyser la croissance, ou des jetons d’investissement pour
représenter des actifs.
2. Utilité : Les jetons d'utilisation permettent l'accès à des services, tandis que les
jetons de travail impliquent les détenteurs dans le système. Certains jetons sont
hybrides.
3. Statut juridique : La réglementation est encore incertaine. Les jetons non
cryptomonnaies peuvent être classés comme jetons de sécurité par les
régulateurs.
4. Valeur sous-jacente : Les jetons peuvent avoir une valeur monétaire liée à des
actifs réels (jetons adossés), au succès commercial de l'émetteur (similaires à des
actions), ou à la valeur d'un réseau (jetons de valeur de réseau).
5. Couche technique : Les jetons peuvent être natifs de la blockchain, faire partie
d'un protocole cryptoéconomique, ou être des jetons d'application (DApp tokens).
* Untitled Inc est une origanisation qui réunit des experts de divers secteurs pour innover et développer des solutions autour de la technologie Web3
32
33
Les Jetons (Tokens)
34
Les Jetons (Tokens)
35
II. Les smart contracts, les
DApp et les Oracles
36
Les smart contracts, les DApp et les Oracles
• Les smart contracts
• Définition
• Une caractéristique de la blockchain : le transfert de valeur
• Conditions d’exécution des smart contracts
• Les DApp (Decentralized Applications)
• Le recours à un Oracle
37
Les smart contracts
• Les smart contracts: programmes autonomes exécutant des conditions définies
dans la blockchain, essentiels pour les DApps et les DAO.
• Tous les acteurs d'une transaction doivent interpréter le smart contract de
manière identique.
38
Les smart contracts
• Les smart contracts impliquent au moins deux parties et peuvent être
traduits en code informatique selon le principe « Code is law ».
• Un smart contract est une promesse reposant sur le réseau
blockchain, mais il reste un ensemble de conditions « si… alors ».
39
Les smart contracts
40
Les smart contracts
• Ethereum, créée en 2015 par Vitalik Buterin, est la plateforme la plus
connue pour les smart contracts, permettant aux développeurs de
coder des applications avec le langage Solidity.
• Un exemple d'application d'un smart contract est l'achat d'un livre
électronique: Le smart contract vérifie automatiquement les
conditions de la transaction, simplifiant ainsi le processus d'achat.
41
Les DApp (Decentralized Applications)
• Les plates-formes de contrats intelligents, apparues en 2017, sont fondamentales
pour la décentralisation des applications (Dapp).
• Les DApp n'ont pas besoin d'entité juridique ou de structures classiques
(dirigeants, employés, actionnaires).
42
Les DApp (Decentralized Applications)
• Critères pour qu'une application soit considérée comme une DApp
(Dorian, 2017) :
• Les données doivent être stockées dans un registre public et décentralisé.
• L'accès nécessite une monnaie cryptographique ou un jeton interne.
• Elle doit générer des jetons selon une norme cryptographique standard.
• Elle doit être open source et fonctionner de manière autonome, avec des
changements décidés par consensus.
43
Les DApp (Decentralized Applications)
• Mécanismes de consensus :
• Proof of Work
• Proof of Stake
• Les deux mécanismes peuvent être combinés pour réduire la
consommation d'énergie et renforcer la résistance aux attaques.
• Distribution des jetons :
1. Mining : distribution via un algorithme où les acteurs vérifient les transactions.
2. Collecte de fonds : tokens distribués aux financeurs du développement initial (ex. :
Mastercoin).
3. Production selon des règles prédéfinies : jetons réservés au développement de la
DApp.
44
Les DApp (Decentralized Applications)
• Étapes de développement d'une DApp :
• Publication d'un livre blanc décrivant la DApp, ses fonctionnalités et sa feuille
de route.
• Distribution des jetons initiaux (ICO).
• Mise en place de la répartition de la participation.
ICO (Initial Coin Offering) est une méthode de levée de fonds utilisée dans l'écosystème des cryptomonnaies
45
Les DApp (Decentralized Applications):
Exemple La’ZooZ
• La’ZooZ est une plateforme de transport décentralisée qui se distingue des
services comme Uber, car elle appartient à la communauté des utilisateurs et est
open source.
• Elle utilise le registre public de Bitcoin pour stocker les informations des
utilisateurs, évitant ainsi un acteur central dans les mises en relation.
• Les utilisateurs gagnent des jetons (Zooz tokens) en fonction de la distance
parcourue avec l'application ouverte et en partageant l'application.
• Lors d'un covoiturage, les utilisateurs gagnent des tokens, tandis que les
conducteurs en reçoivent.
• L'application génère automatiquement des clés publiques et privées, stockant la
clé privée sur le téléphone de l'utilisateur.
46
Le recours à un Oracle
• Un smart contract nécessite souvent d'accéder à des données réelles pour
fonctionner, mais ces données ne sont pas accessibles directement sur la
blockchain.
• Chaque participant à la blockchain doit pouvoir vérifier l'intégrité des
transactions, et l'ajout de données externes pourrait compromettre cette
intégrité.
• L'Oracle est un service qui introduit manuellement des données extérieures dans
la blockchain, permettant au smart contract de s'exécuter en fonction de ces
données.
47
Types d’Oracles
• Oracles matériels : Ils récupèrent des informations du monde physique via des capteurs
ou des dispositifs IoT (Internet of Things).
• Par exemple, un oracle matériel pourrait fournir des données sur la température ou l'humidité
mesurées par des capteurs dans un environnement agricole.
• Oracles logiciels : Ils obtiennent des données via des sources numériques, comme des
API ou des bases de données en ligne.
• Par exemple, ils peuvent fournir les taux de change ou les résultats d'événements sportifs.
• Oracles entrants (inbound) : Ils fournissent des informations externes à la blockchain.
• Par exemple, un oracle entrant peut transmettre le prix d’un actif ou les résultats d’un événement.
• Oracles sortants (outbound) : Ils permettent à un contrat intelligent de transmettre des
informations ou des instructions depuis la blockchain vers le monde extérieur.
• Par exemple, un contrat intelligent pourrait envoyer une commande à un dispositif IoT après la
validation d'une condition sur la blockchain.
48
Le recours à un Oracle: Problèmes
• Absence d'information : Si l'Oracle ne fournit aucune donnée, le
contrat ne peut pas s'exécuter.
➔Les concepteurs doivent prévoir des solutions, comme l'annulation du
contrat si aucune information n'est fournie.
• Information erronée : Si l'Oracle fournit des données incorrectes, le
contrat ne peut pas être annulé à moins qu'une solution ne soit
prévue.
49
Le recours à un Oracle: Solutions
• Utiliser Oraclize : Un service qui permet aux contrats intelligents d'accéder à des données
d'autres blockchains et du Web, fournissant une preuve d'authenticité des données.
• Consensus-based Oracle : Recueillir des informations de plusieurs participants pour
garantir l'exactitude des données, rendant le processus plus complexe mais fiable.
• Recours à un tiers physique : Utiliser des dispositifs comme ceux développés par Ledger
pour stocker et transférer des données de manière sécurisée, sans exposer les clés
privées.
• Bases de données : Utiliser des bases de données existantes (ex. : compagnies aériennes)
comme Oracles pour des cas spécifiques comme l'indemnisation des passagers.
• Objets connectés : Ces dispositifs pourraient également servir d'Oracles pour déclencher
des paiements d'assurance.
50