Applications possibles pour l’industrie de la mode
Avantages sur une base de données classique
Immutabilité
Dans un système blockchain, les nœuds du réseau détiennent tous une copie complète de la chaîne qu’ils mettent à jour au fil des nouveaux blocs. Si, pour une quelconque raison, un des nœuds partage une chaîne contenant un bloc modifié, la signature de ce bloc change également, ce qui casse le lien avec le bloc suivant car ce dernier ne connaît son prédécesseur que par sa signature. À ce moment, la copie de la chaîne n’est plus identique à celle des autres nœuds et est, de fait, considérée comme corrompue. Le principe d’immutabilité est ainsi assuré.
Absence d’organe de contrôle centralisé
Étant donné que les nœuds contrôlent la bonne évolution de la chaîne, le rôle qu’aurait un organe de contrôle unique au sein d’une base de données classique est ici délégué à l’ensemble des nœuds. Chaque nœud possédant une version de la chaîne identique à celle détenue par la majorité fait partie de l’autorité en vigueur.
Transparence
Le registre d’une blockchain étant ouvert, chacun peut le consulter.
Prenons l’exemple d’un portefeuille électronique et son solde. Ce solde représente l’addition ou la soustraction de toutes les transactions effectuées qui concernent l’adresse du portefeuille. Étant donné que ces mouvements sont inscrits dans la blockchain, qui est consultable à souhait, le solde exact peut être vérifié en tout temps.
Ce principe s’applique uniquement aux blockchains publiques. Les blockchains privées recherchant logiquement l’objectif contraire dans un but précis.
Jetons de valeur
La blockchain introduit la notion de tokens ou jetons de valeur en français. En tant qu’unité de compte, le jeton est utilisé comme moyen de paiement au sein d’une blockchain.Il permet de rémunérer les nœuds pour le minage des blocs qu’ils effectuent mais pas uniquement. Grâce à lui, il est possible d’effectuer des paiements de façon anonyme.Ces transactions peuvent être spontanées, par exemple, dans le cas d’un échange de bien physique contre une certaine somme en Bitcoin. Elles peuvent également être automatisées dans un smart contract où la transaction peut intervenir lorsque les conditions préalablement définies sont remplies. Nous reviendrons sur les smart contracts plus tard dans ce chapitre.
Horodatage des blocs
Chaque bloc inséré dans la blockchain est horodaté. Grâce au principe d’immutabilité évoqué précédemment, cette date représente donc une preuve qu’une transaction a été effectuée à l’instant T. On peut par exemple avoir la certitude qu’un fichier numérique existait bien à un certain moment. Nous y reviendrons plus en détails par la suite.
Inconvénients par rapport à une base de données classique
Taille des informations stockées
Comme évoqué précédemment, les nœuds détiennent tous une copie complète de la chaîne. Cette dernière est amenée à s’allonger au fil du temps et de l’arrivée des nouveaux blocs. La chaîne est donc de plus en plus lourde et cela a un impact sur les performances du réseau.Dans une base de données classique, la capacité de stockage dépend simplement de l’espace alloué et les performances ne sont que très peu affectées par la taille des données.Une blockchain ne peut donc pas stocker de gros fichiers mais uniquement des écritures élémentaires.
Délai de validation
Une transaction n’est effective que lorsque le bloc le contenant a été miné puis validé par le reste du réseau. Il y a donc un délai. Celui-ci dépend de la blockchain et de l’encombrement du réseau.
Impact écologique
Les blockchains, et particulièrement celles qui utilisent la preuve de travail comme algorithme de consensus, sont extrêmement gourmandes en énergie. La complexité du minage augmente avec le temps, entraînant l’inévitable course à la puissance de calcul évoquée précédemment. Dans une époque où la question du réchauffement climatique est omniprésente, les protocoles qui utilisent ce type de validation doivent évoluer afin de prendre tout leur sens. C’est le cas d’Ethereum que nous allons étudier en détail.
Ethereum
Spécificités
La technologie Ethereum possède une base semblable à celle de Bitcoin mais utilise l’Ether comme token et introduit de nouvelles notions intéressantes détaillées cidessous. J’ai choisi de m’intéresser plus particulièrement à ce protocole car il est à mon sens un des plus aboutis.
Smart contract
Un smart contract est un programme, une suite d’instructions permettant d’interagir avec la blockchain Ethereum. Il est exécuté automatiquement par les nœuds du réseau lorsqu’une nouvelle transaction le concernant apparaît.Sa première particularité est de ne pas pouvoir être modifié une fois publié sur le réseau Ethereum. Grâce à cela, les différents partis s’assurent que les termes du contrat ne changent pas. Par conséquent, il est vital pour le développeur de traquer le moindre bug potentiel avant de publier son travail. Évidemment, ce dernier peut tester son code en local autant de fois qu’il le souhaite.De cette première particularité en découle une seconde appelée couramment « Code is law » qui signifie que la seule autorité compétente à l’exécution du contrat est le code de ce dernier. Contrairement à un contrat classique où l’interprétation peut différer, par exemple, d’un juge à un autre dans le cas d’un désaccord à régler au tribunal, le smart contract, lui, s’exécute automatiquement même si le résultat de cette exécution ne convient à aucun des partis. Un smart contract est donc déterministe et doit prévoir tous les cas de figure.
|
Table des matières
Déclaration
Remerciements
Résumé
1. Introduction
2. Blockchain
2.1 Définition
2.2 Fonctionnement
2.2.1 Structure
2.2.1.1 Transaction
2.2.1.2 Bloc
2.2.1.3 Nœud
2.2.2 Lien entre les blocs
2.2.3 Cryptographie asymétrique
2.2.3.1 Clé privée
2.2.3.2 Clé publique
2.2.3.3 Adresse
2.2.3.4 Vérification
2.2.4 Création et validation des nouveaux blocs
2.2.4.1 Preuve de travail
2.2.4.2 Preuve d’enjeu
2.3 Types de blockchain
2.3.1 Blockchain publique
2.3.2 Blockchain privée – gouvernance centralisée
2.3.3 Blockchain privée – consortium
2.4 Avantages sur une base de données classique
2.4.1 Immutabilité
2.4.2 Absence d’organe de contrôle centralisé
2.4.3 Transparence
2.4.4 Jetons de valeur
2.4.5 Horodatage des blocs
2.5 Inconvénients par rapport à une base de données classique
2.5.1 Taille des informations stockées
2.5.2 Délai de validation
2.5.3 Impact écologique
2.6 Ethereum
2.6.1 Spécificités
2.6.1.1 Smart contract
2.6.1.2 Gaz
2.6.2 Exécution
2.6.2.1 Algorithme de consensus
2.6.2.2 Ethereum Virtual Machine
2.7 Synthèse
3. Applications possibles pour l’industrie de la mode
3.1 Applications orientées produit
3.1.1 Authentification du produit et identification de son propriétaire
3.2 Applications orientées production
3.2.1 Provenance des matières premières et suivi de la chaîne d’approvisionnement
3.3 Applications orientées distribution
3.3.1 Restriction de la duplication d’une œuvre numérique
3.4 Applications orientées créateur
3.4.1 Protection et rémunération des créateurs
3.5 Synthèse
4. Solution
4.1 Concept
4.2 Fonctionnement
4.2.1 Fonctionnement général
4.2.2 Webapp
4.2.2.1 Point d’entrée
4.2.2.2 Communication avec le smart contract
4.2.2.3 Frameworks
4.2.3 Smart Contract
4.2.3.1 Données
4.2.3.2 Contraintes
4.2.3.3 Constructeur
4.2.3.4 Fonctions
4.2.3.4.1 printArtwork
4.2.3.4.2 getArtwork
4.2.3.4.3 getArtworks
4.2.3.5 Instances
4.2.4 Ganache-cli
4.2.5 Architecture
4.3 Déploiement
4.3.1 Sur la blockchain Ethereum principale
4.3.2 Sur une blockchain Ethereum privée
5. Conclusion
Bibliographie
Annexe 1 : Documentation développeur
1. Installation
1.1 Prérequis
1.2 Installation du nœud Ethereum
1.3 Déploiement du smart contract
1.4 Lancement de la webapp
1.5 Tester la webapp
1.5.1 Insérer une nouvelle œuvre
2. Structure de la webapp
2.1 Répertoire class
2.1.1 apparel
2.1.2 artwork
2.1.3 order
2.1.4 ordermanager
2.1.5 smartcontract
2.1.6 const.js
2.2 Répertoire config
2.2.1 config.json
2.3 Répertoire data
2.3.1 orders.txt
2.4 Répertoire node_modules
2.5 Répertoire ressources
2.5.1 router.js
2.6 Répertoire views
2.7 package.json
2.8 server.js
3. Diagrammes
Annexe 2 : Glossaire
1. Vocabulaire spécifique à l’industrie de la mode
2. Vocabulaire spécifique à la technologie blockchain
Télécharger le rapport complet