Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 63 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
63
Dung lượng
6,97 MB
Nội dung
UNIVERSITÉ NATIONALE DU VIETNAM, HANOÏ INSTITUT FRANCOPHONE INTERNATIONAL GOINT Mongetro Développement d’une preuve de concept utilisant les blockchains MÉMOIRE DE FIN D’ÉTUDES DE MASTER INFORMATIQUE HANOÏ - 2019 UNIVERSITÉ NATIONALE DU VIETNAM, HANOÏ INSTITUT FRANCOPHONE INTERNATIONAL GOINT Mongetro Développement d’une preuve de concept utilisant les blockchains Spécialité : Systèmes Intelligents et Multimédia Code : Programme pilote MÉMOIRE DE FIN D’ÉTUDES DE MASTER INFORMATIQUE Sous la direction de : - Rafik SAID MANSOUR, Ingénieur consultant, TRIALOG, Paris Signature de l’étudiant GOINT Mongetro Remerciements Nous tenons remercier tous ceux et celles qui ont contribué au succès de nos deux années d’étude de master, depuis le début de la formation en passant par le stage jusqu’à la rédaction de ce mémoire D’abord, nos remerciements s’adressent l’Agence Universitaire de la Francophonie (AUF), pour nous avoir octroyé une demi-bourse dans la poursuite de notre formation informatique en niveau master Nous remercions ensuite toute l’équipe de l’Institut Francophone International(IFI) pour la transmission de toutes les connaissances durant notre formation Nous tenons remercier cordialement notre maitre de stage, M Rafik SAID MANSOUR ; ma collaboratrice dans le cadre du projet du stage, Mlle Dune SEBILLEAU ; le directeur de l’entreprise Trialog, M Alain MOREAU et toute l’équipe de Trialog en général, pour leur accueil et notamment leur soutien durant la période du stage au sein de ladite entreprise Nos sentiments de gratitude vont l’égard de toute notre famille, spécialement notre chère mère, Mme Monilia PRINCE GOINT ; nos frères et sœurs et tous nos amis et camarades de promotion de l’Institut Francophone International Enfin, nos remerciements vont l’égard de toutes les personnes qui, d’une manière ou d’une autre, ont participé la réussite de notre parcours de master informatique i Résumé Le travail présenté travers ce document traite de la conception et du développement d’une preuve de concept utilisant la blockchain appliquée la mobilité électrique, qui s’inscrit dans le cadre du projet « Développement d’une preuve de concept utilisant la blockchain » du TriLab, un laboratoire d’innovation technologique au sein de l’entreprise Trialog de Paris, France Nous présentons d’abord une étude de l’état de l’art de la blockchain en général, notamment celles qui sont les plus répandues et les plus utilisées aujourd’hui : Bitcoin et Ethereum Ensuite, nous présentons un état de l’art des projets pertinents existants sur les smart grids dans lesquels on utilise la blockchain : Transactive Grid, Power ledger, Share&Charge et Sunchain, ainsi que les approches et techniques adoptées pour les réaliser Cette étude de la littérature de la blockchain et des différents travaux ciblés nous a permis d’adopter une meilleure approche pour le développement de la preuve de concept du projet du TriLab À l’issue de cette étude, nous avons choisi de développer une blockchain privée en utilisant le réseau Ethereum Le choix d’Ethereum est justifié par le fait qu’il permet de : Déployer une blockchain privée ; développer des smart contracts et aussi d’implémenter un jeton pour le paiement de l’énergie sur le smart grid Aussi, avons-nous choisi d’utiliser l’algorithme de consensus Proof of Autority(PoA) plutôt que celui du Proof of Work(PoW) Ce dernier est beaucoup plus consommateur en terme de ressource de mémoire et d’énergie, il est aussi celui utilisé par le réseau public Ethereum Cette approche a été justifiée en raison des faibles ressources de mémoire des raspberrys pi utilisés pour le développement de notre preuve de concept En effet, nous avons développé notre système en mettant en place un réseau de blockchain privée, puis développé notre application Suite aux expérimentations de notre preuve de concept, nous avons obtenu des résultats satisfaisants qui reflètent le fonctionnement normal d’une blockchain privée et qui répond aussi comme une solution la problématique du sujet d’étude : sécurité, transparence et fiabilité des transactions de recharge de véhicule électrique sur un réseau électrique intelligent Les résultats obtenus sont normalement sujet d’amélioration, notamment en utilisant des appareils avec beaucoup plus de ressources mémoire et aussi en augmentant le nombre de noeuds du réseau pour améliorer sa performance Mot-clés : Blockchain, Smart contracts, Mobilité électrique, Smart grid Smart grid : Nom anglais utilisé couramment pour désigner les réseaux électriques intelligents Smart contract : Programme autonome qui, une fois démarré, exécute automatiquement des conditions définies au préalable et inscrites dans la blockchain Raspberry Pi : Nano-ordinateur monocarte processeur ARM ii Abstract The work presented in this paper deals with the design and development of a proof of concept using the blockchain applied to electric mobility, which is part of the project « Development of a proof of concept using the blockchain » of TriLab, a technological innovation laboratory within Trialog, Paris, France First, we present a study of the state of the art of the blockchain in general, including those that are the most widespread and most used today : Bitcoin and Ethereum Then, we present a state of the art on the relevant projects on smart grids in which the blockchain is used : Transactive Grid, Power ledger, Share&Charge and Sunchain, as well as the approaches and techniques used This study on the blockchain and on the various works targeted in the literature allows us to adopt a better approach for the development of the proof of concept of the TriLab’s project At the end of this study, we chose to develop a private blockchain using the Ethereum network The choice of Ethereum is justified by the fact that it allows to : Deploy a private blockchain, develop smart contracts and also implement a token for the payment of energy on the smart grid Also, we have chosen to use the consensus algorithm Proof of Autority (PoA) rather than that of the Proof of Work (PoW) which is much more consumer in term of resource of memory and energy and which is the one used by the Ethereum public network This approach was justified because of the poor memory resources of the pi raspberrys used for the development of our proof of concept So, we developed our system by setting up a private blockchain network, then develop our application Following the tests of our proof of concept, we obtained satisfactory results which reflect the normal functioning of a private blockchain and which also answers as a solution to the problematic of the subject of study : security, transparency and reliability of the recharging transactions of electric vehicles on a smart grid The results obtained are normally subject to improvement, notably by using devices with many more memory resources and also by increasing the number of nodes of the network to improve its performance Keywords : Blockchain, Smart contracts, Electric mobility, Smart grid iii Table des matières Introduction Générale 1.1 Context et cadre d’étude 1.2 Présentation de la structure d’accueil 1.2.1 Missions de Trialog 1.3 Problématique 1.4 Objectif du stage 1.5 Plan de travail 1.6 Structure du mémoire 1 1 2 2 État de l’art 2.1 Introduction 2.2 La blockchain et ses domaines d’application 2.2.1 La blockchain et la finance 2.2.2 La blockchain et les assurances 2.2.3 La blockchain et l’identité numérique 2.2.4 La blockchain et la musique 2.2.5 La blockchain et l’Internet des Objets (IdO) 2.2.6 La blockchain et l’énergie 2.3 Les blockchains les plus répandues et les plus utilisées 2.3.1 Bitcoin 2.3.2 Ethereum 2.4 Quelques autres blockhains existantes 2.4.1 Hyperledger 2.4.2 Ripple 2.4.3 Litecoin 2.4.4 Monero 2.5 Smart Contract 2.6 Les algorithmes de consensus 2.6.1 Proof of Work(PoW) 2.6.2 Proof of Autority(PoA) 2.6.3 Proof of Stake(PoS) 2.6.4 Proof of Elapsed Time (PoET) 2.6.5 Practical Byzantine Fault Tolerance (PBFT) 2.7 Projets existants sur les smart grids utilisant la blockchain 2.7.1 Transactive Grid (Brooklyn Microgrid) 2.7.2 Power Ledger 2.7.3 Share&Charge 2.7.4 Sunchain 2.8 Conclusion 4 5 5 6 7 11 11 13 13 13 13 14 14 14 14 15 15 15 15 17 20 22 23 Conception de la preuve de concept 3.1 Introduction 3.2 Conception du réseau blockchain 3.3 Conception de l’application 3.3.1 Architecture générale de l’application 3.3.2 Exigences logicielles 3.4 Conclusion 24 24 24 25 25 26 28 iv Approches et techniques retenues 4.1 Introduction 4.2 Choix de la blockchain 4.2.1 Justification du choix de la blockchain Ethereum 4.3 Choix de l’algorithme de consensus 4.4 Choix des outils de développement blockchain 4.4.1 Geth 4.4.2 Ganache 4.4.3 Nodejs 4.4.4 Truffle 4.5 Conclusion 29 29 29 29 29 30 30 30 30 30 31 Mise en place de la preuve de concept 5.1 Ressources matérielles 5.2 Ressources logicielles 5.3 Mise en place de la blockchain 5.4 Développement de l’application distribuée 5.5 Contraintes liées aux projet 5.5.1 Contraintes liées l’interconnexion des noeuds blockchain 5.5.2 Difficultés de version avec truffle 5.5.3 Difficultés avec le langage solidity 5.5.4 Difficultés en terme de ressources matérielles 5.6 Conclusion 32 32 34 35 37 39 39 40 40 40 40 Expérimentations et résultats 6.1 Introduction 6.2 Expérimentations et résultats côté blockchain 6.3 Expérimentations et résultats côté smart contracts avec truffle 6.4 Conclusion 41 41 41 42 49 v Table des figures 1.1 Macro planning du projet TriLab 2.1 2.2 2.3 2.4 2.5 2.6 Illustration d’une transaction blockchain Exemple de genesis bloc dans une blockchain Truffle suite Système de Brooklyn Microgrid Eco-système de Power Ledger Illustration de l’initiative « Oslo2Rome » de Share&Charge 11 16 20 22 3.1 3.2 3.3 3.4 Modèle d’infrastructure de smart grid existant Architecture du réseau blockchain Architecture générale du système Diagramme des classes 24 25 25 27 5.1 5.2 5.3 5.4 5.5 5.6 5.7 Modèle Raspberry Pi Écran tactile Officiel pour raspberry pi SmartiPi Touch case pour les raspberrys Micro USB 10 cm Contrat Migration Script de déploiement de Migrations Configuration du fichier truffle-config.js 32 33 34 34 38 38 39 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 6.10 6.11 6.12 6.13 6.14 6.15 6.16 Présentation d’un noeud blockchain démarré Présentation d’une console geth attachée un noeud blockchain Expérimentation avec le smart contract EVToken Expérimentation avec le smart contract EVToken Expérimentation avec le smart contract EVToken Expérimentation avec le smart contract StationManagement Expérimentation avec le smart contract StationManagement Expérimentation avec le smart contract StationManagement Expérimentation avec le smart contract StationManagement Expérimentation avec le smart contract UserChargeSession Expérimentation avec le smart contract UserChargeSession Interface d’accueil de l’application client web Interface d’enregistrement d’utilisateur Interface de connexion d’utilisateur Interface de choix de station de recharge Une station de recharge avec plusieurs bornes démarré 41 42 43 43 43 44 44 45 45 46 46 47 47 48 48 48 vi pi Liste des tableaux 3.1 3.2 3.3 Liste des smart contracts implémentés Exigences fonctionnelles du système blockchain Exigences non-fonctionnelles du système blockchain 26 26 27 5.1 5.2 5.3 Caractéristiques de l’ordinateur utilisé pour la mise en place du réseau Caractéristiques des raspberrys pi utilisés pour la mise en place du réseau Tableau des outils logiciels utilisés 32 33 34 vii Figure 5.5 – Contrat Migration Ensuite, nous avons le dossier migrations Celui-ci contient la logique utilisée pendant le processus de déploiement des contrats Les scripts de ce répertoire sont préfixés séquentiellement et exécutés en séquence lorsqu’on déclenchons une migration des contrats implémentés Par exemple, le fichier «1_initial_migration.js» (cf FIGURE 5.6) déploie le contrat "Migrations" qui gardera une trace du dernier script de migration exécuté sur le réseau sur lequel on travaille Donc, ce script doit toujours être exécuté en premier Figure 5.6 – Script de déploiement de Migrations En plus, il y a le dossier «test», qui contient les scripts de test utilisés pour tester les contrats déployés sur le nœud de développement Enfin, nous avons le fichier javascript «truffle-config.js» (sur Windows) ou «truffle.js» (sur Linux) qui permet de configurer l’environnement, plus précisément les réseaux sur lesquels on souhaite déployer les contrats Il est bon de s’assurer que le nom et les paramètres des réseaux soient bien indiqués dans la partie network du fichier truffle, si non on risque d’avoir des difficultés de connexion entre truffle et le réseau blockchain Dans notre cas (cf FIGURE 5.7), nous avons indiqué les deux noeuds de développement utilisés pour tester notre application savoir ganache et trilab Il est noter que les tests de nos smart contracts avant l’implémentation de la partie client web ont été effectués via la console de truffle Plus de détails sur le développement de projet avec truffle sont disponible dans la documentation de truffle https ://www.trufflesuite.com/docs 38 Figure 5.7 – Configuration du fichier truffle-config.js — Configuration du serveur Nodejs Nous avons configurer un serveur Nodejs afin d’exécuter les codes javaScript de la partie client pour interagir avec le back-end de l’application Pour ce faire, nous nous sommes servis de Handlebars (cf TABLE 4.5) — Développement de l’application client(front-end ) Il s’agit ici de la partie via laquelle un utilisateur pourra interagir avec notre système Pour son implémentation, nous avons utilisé, Handlebars, HTML5, CSS3, Bootstrap et javaScript(cf TABLE 4.5) 5.5 Contraintes liées aux projet Dans le cadre de la réalisation de ce projet, nous étions confrontés diverses contraintes En effet, dans cette section du document, nous tenons avancer ces diffộrentes contraintes et aussi la faỗon dont nous les avons palliées 5.5.1 Contraintes liées l’interconnexion des noeuds blockchain Lors de la mise en place de notre blockchain, l’interconnexion entre les différents noeuds du réseau a été pour nous l’une des étapes les plus délicates Le problème résidait au niveau des paramètres réseau au niveau des fichiers de démarrage «startnode.cmd»(sous windows) et «startnode.sh»(sous les raspberry) Finalement nous nous sommes rendus compte que : — La valeur du paramètre d’adresse rcp «–rpcaddr» doit être l’adresse IP de la machine sur laquelle se trouve le noeud configurer : 192.168.200.62 par exemple ; — La valeur du paramètre port rcp «–rpcport» doit être différente sur chaque appareil hébergeant un noeud : Cela peut-être «8545» pour une appareil et «8546» sur un autre par exemple Front-end : En informatique, terme désignant les éléments d’un site que l’on voit l’écran et avec lesquels on peut interagir depuis un navigateur 39 — La valeur du paramètre port «–port» doit être aussi différente sur chaque appareil : Cela peut-être «30303» pour une appareil et «30304» sur un autre par exemple — La valeur du paramètre «–nat» doit être égale : "extip :+ adresses IP des autre noeuds du réseau" Exemple : –nat "extip :192.168.200.99" 5.5.2 Difficultés de version avec truffle Il existe des bugs au niveau de quelques versions de truffle, notamment dans quelques versions inférieures Donc, il se peut qu’on ait parfois des erreurs de compilation, mais qui n’ont rien voir avec les codes implémentés En effet, lorsque cela se produit, alors qu’on s’assure qu’il n y a pas d’erreurs d’implémentation, il est toujours conseillé de changer de version de truffle 5.5.3 Difficultés avec le langage solidity Le langage solidity en tant que langage de développement de smart contracts par excellence reste un langage relativement nouvelle qui demande du temps pour son apprentissage Par ailleurs, beaucoup de détails prises en compte par d’autres langages comme java, python ne les sont pas encore en soliditity, outre sa documentation du n’est pas encore complète Un exemple pour corroborer cela est que nous avons eu des difficultés utiliser le type «float» qui est destiné au traitement des valeurs de type décimal en programmation avec solidity 5.5.4 Difficultés en terme de ressources matérielles Mettre en place une blockchain demande beaucoup de ressources matérielles Lors de la mise en place de notre réseau privée, nous avons utilisé un ordinateur et des raspberrys pi (cf section 4.3.1) Donc, nos appareils étaient très limités en terme de ressources de mémoire En conséquence, nous étions obligés de muter de l’algorithme de consensus de Proof-of-Work (qui était notre choix a priori) Proof-of-Autority qui est moins consommateur en énergie et plus adapté une blockchain privée 5.6 Conclusion Dans ce chapitre du mémoire, nous venons d’avancer les différents travaux qui nous ont permis de mettre en place notre preuve de concept blockchain Y sont exposés aussi, de manière chronologique, les différents étape du processus d’implémentation et aussi les différentes contraintes auxquelles nous étions exposés Dans le chapitre suivant, nous allons présenter nos expérimentations et les résultats obtenus suite au développement de notre preuve de concept 40 Chapitre Expérimentations et résultats 6.1 Introduction Le chapitre précédent a été l’occasion pour nous de présenter les différents travaux de conception et d’implémentation de notre preuve de concept Dans ce dernier chapitre de notre mémoire, nous tenons exposer les différentes expérimentations faites avec notre système et aussi les résultats obtenus 6.2 Expérimentations et résultats côté blockchain D’abord, travers la figure ci-dessous(cf FIGURE 6.1), nous commenỗons par la prộsentation dun noeud blockchain aprốs son dộmarrage Nous pouvons remarquer affichées des informations importantes que nous avons encadrées dans la console du noeud après le démarrage Figure 6.1 – Présentation d’un noeud blockchain démarré 41 Ensuite, nous montrons ci-dessous (cf FIGURE 6.2) une console geth attachée au noeud blockchain Via cette console, on peut vérifier les comptes existants, vérifier leur balance et encore plus Figure 6.2 – Présentation d’une console geth attachée un noeud blockchain démarré 6.3 Expérimentations et résultats côté smart contracts avec truffle Après avoir implémenté nos smart contracts, nous les avons compilés et les déployés sur notre réseau blockchain Le déploiement de smart contracts sur un réseaux blockchain se fait de la manière suivante : 1- S’assurer que le noeud blockchain sur lequel on veut déployer les smart contracts soit démaré ; 2- Dans le dossier du projet, attacher la console de truffle au réseau avec la commande truffle console –network "nom du réseau" ; 3- Compiler et déployer les contrats via la commande migrate –compile-all Après le déploiement, un dossier "build" sera créé, il contiendra un script de déploiement pour chaque contrat Il est noter que si les contrats on déjà été déployés, il faut ajouter "–reset" lors d’un nouveau déploiement Donc, la commande précédente devient truffle console –network –reset Alors, ceci écrasera les anciens scripts de déploiement, donc on aura de nouveaux contrats déployés avec de nouvelles adresses de déploiement Après le déploiement de nos smart contracts, nous les avons téstés via truffle Il est noter que tous nos smart contracts implémentés ont bien été testés, mais les résultats d’expérimentation de certains d’entre eux ne sont pas figurés dans le document En effet, nous avons commencé notre expérimentation par le smart contract EVToken qui est celui dans lequel sont implémentées toutes les fonctions de gestion de notre jeton Dans un premier temps, nous avons procédé la vérification de la balance du premier compte (coinbase) de notre réseau avec la fonction «balanceOf» Cette figure(cf FIGURE 5.3) nous montre que la totalité de nos jetons EVT (100 000) sont attribués au coinbase comme prévu Dans la même figure, nous montrons la vérification du compte numéro 1, sa balance est donc zéro Ensuite, nous procédons au transfert de 100 EVT (cf FIGURE 6.4) avec la fonction «transfer», du compte coinbase au compte numéro En effet, dans la même figure, nous pouvons constater un reỗu de transaction indiquant que le transfert a été effectué Enfin, dans la figure suivante (cf FIGURE 6.5) nous pouvons remarquer que la balance du compte numéro est passée de 100, alors que celle du coinbase est pasée de 100 000 99 900 42 Figure 6.3 – Expérimentation avec le smart contract EVToken Figure 6.4 – Expérimentation avec le smart contract EVToken Figure 6.5 – Expérimentation avec le smart contract EVToken 43 Dans un deuxième temps, nous avons expérimenté le smart contract «StationManagement» qui est celui qui s’occupe des informations concernant les stations de recharge Nous avons donc créé une instance de ce dernier(cf FIGURE 6.6), puis ajouter des stations avec les comptes (cf FIGURE 6.6), (cf FIGURE 6.7) et 3(cf FIGURE 6.8) qui sont les comptes que nous avons créés sur notre noeud de développement lors de la mise en place du réseau Chaque station est donc attribuée au compte qui l’enregistre En suite, nous avons donc récupéré la liste des comptes qui on été attribués, chacune, une station(cf FIGURE 6.8) Et enfin, nous avons récupéré les informations concernant chaque station séparément l’aide de l’adresse du compte qui lui a été attribuée(cf FIGURE 6.9) Figure 6.6 – Expérimentation avec le smart contract StationManagement Figure 6.7 – Expérimentation avec le smart contract StationManagement 44 Figure 6.8 – Expérimentation avec le smart contract StationManagement Figure 6.9 – Expérimentation avec le smart contract StationManagement 45 D’autre part, nous avons expérimenté le smart contract «UserChargeSession» Nous avons donc créé une instance de ce dernier, puis initialisé une session de charge (cf FIGURE 6.10) avec le premier compte(coinbase) qui est, par défaut, le compte qui effectue les transactions quand on spécifie aucun compte sur la blockchain Ensuite, nous avons ajouté des segments de charge avec la fonction «setChargeProfileSegment» Et enfin nous avons fermé la session de charge avec la fonction «endChargeSession» En effet, nous avons récupéré la session de charge avec l’adresse du compte coinbase via la fonction «getUserSessionsByAddr» La figure ci-dessous (cf FIGURE 6.11) montre les informations concernant la session de charge et aussi concernant les segments de charge pour cette session Figure 6.10 – Expérimentation avec le smart contract UserChargeSession Figure 6.11 – Expérimentation avec le smart contract UserChargeSession Session de charge : Consommation d’énergie pour le véhicule dès la connexion de celui-ci jusqu’à sa déconnexion sur le réseau Segment de charge : Valeur d’énergie ajoutée chaque changement de puissance durant le chargement d’un véhicule 46 D’autre part, après l’impémentation des smart contracts nous avons développer une application client web pour interagir avec notre blockchain À travers la figure ci-dessous (cf FIGURE 6.12), est présentée l’interface d’accueil de cette application Ensuite, la figure 6.13 montre l’interface d’enregistrement des utilisateur, alors que la figure 6.14 montre l’espace de connexion pour ces derniers Outre, dans la figure suivante (cf FIGURE 6.15) appart l’interface permettant un utilisateur de choisir une station de recharge pour recharger son véhicule En fin, nous présentons une station de recharge avec plusieurs bornes travers la figure 6.16 Figure 6.12 – Interface d’accueil de l’application client web Figure 6.13 – Interface d’enregistrement d’utilisateur 47 Figure 6.14 – Interface de connexion d’utilisateur Figure 6.15 – Interface de choix de station de recharge Figure 6.16 – Une station de recharge avec plusieurs bornes 48 6.4 Conclusion À travers ce dernier chapitre du mémoire nous avons présenté nos différentes expérimentations avec notre preuve de concept ainsi que les résultats obtenus Dans un premier temps nous avons expérimenté le fonctionnement de notre réseaux blockchain En effet, nous avons constaté qu’après quelques minutes de fonctionnement, notre réseau commence devenir lent quand plusieurs noeuds fonctionnent simultanément Cela est normalement la conséquence du manque de ressource de mémoire des appareils utilisés pour faire fonctionner nos noeuds blockchain Dans un second temps, nous avons expérimenté les smart contracts et présenter les résultats 49 Ce document de mémoire résume les différents travaux réalisés dans le cadre de notre stage de fin d’étude effectué l’entreprise Trialog, Paris, France, pour l’obtention du diplôme de master en Systèmes Intelligents et Multimédia de l’institut Francophone International(IFI)/Université Nationale du Vietnam, Hanoï (UNVH), en collaboration avec l’Université de La Rochelle, France À travers ce document de rapport de stage traitant du «développement d’une preuve de concept utilisant la blockchain», nous avons présenté d’une part : le contexte d’étude, la problématique, l’objectif et aussi le plan de travail pour notre stage D’autre part, dans le chapitre 2, nous avons présenté une étude de l’état de l’art de la technologie blockchain en général et aussi des algorithmes de consensus Puis, nous avons mis en avance les projets pertinents de systèmes électriques intelligents utilisant la blockchain Nous avons pris conscience dans un premier temps de l’existence de différentes blockchains, notamment les plus répendues(Bitcoin et Ethereum), chacune avec ses avantages et ses inconvénients Dans un deuxième temps, nous nous sommes rendus compte que de nombreux projets de systèmes électriques(smart grids) utilisent la technologie blockchain, avec notamment des approches différentes Outre, le troisième chapitre du document est la section où nous avons exposé les différents travaux de modélisation et de conception de la preuve de concept Plus loin, dans le quatrième chapitre nous avons avancé les différentes approches et techniques retenues pour le développement du système Y est exposée aussi la justification de nos choix Par ailleurs, travers le chapitre cinq nous avons présenté les détails d’implémentation et de la mise en place de notre système blockchain Aussi, avons nous présenté dans ce chapitre les contraintes auxquelles nous avons fait face Enfin, le dernier chapitre du mémoire a été la partie où les expérimentations et les résultats obtenus ont été présentés après la réalisation de notre projet En résumé, les résultats obtenus après la phase d’expérimentation de notre preuve de concept sont satisfaisants, mais sont toutefois sujets d’amélioration Comme perspective dans le cadre de ce travail, nous proposons d’abord d’utiliser des appareils avec beaucoup plus de ressources de mémoire et aussi d’augmenter le nombre de noeuds blockchain afin de mieux évaluer la performance du système Ensuite, implémenter le module pour la gestion du paiement de l’énergie consommée sur le réseau Outre, finaliser l’application client web que nous avons commencée développer pour pouvoir interagir avec tous les smart contracts implémentés dans le cadre de la preuve de concept blockchain 50 Bibliographie [1] Blockchain France, "Qu’est-ce que la blockchain ?" 2016 [En ligne] Disponible sur https ://blockchainfrance.net/decouvrir-la-blockchain/c-est-quoi-la-blockchain/ (Consulté le 30/04/2019) [2] Etienne Goetz, Solenn Poullennec,"Les banques misent sur la blockchain pour accélérer les paiements internationaux" Les Echos, 2018 [En ligne] Disponible sur https ://www.lesechos.fr/finance-marches/banque-assurances/les-banques-misent-sur-lablockchain-pour-accelerer-les-paiements-internationaux-140046 (Consulté le 16/05/2019) [3] P Stanislas, "Le réseau interbancaire blockchain de JP Morgan a séduit plus de 220 banques Cryptonaute" 2019 [En ligne] Disponible sur https ://cryptonaute.fr/reseau-interbancaireblockchain-de-jp-morgan-seduit-220-banques/ (Consulté le 22/05/2019) [4] Poullennec Solenn, "Blockchain : la Banque de France veut être l’avantgarde de l’innovation financière" Les Echos, 2018 [En ligne] Disponible sur https ://www.lesechos.fr/2018/03/blockchain-la-banque-de-france-veut-etre-a-lavant-garde-delinnovation-financiere-987342 (Consulté le 20/05/2019) [5] AXA, "AXA se lance sur la Blockchain avec fizzy" 2017 [En ligne] Disponible sur https ://group.axa.com/fr/newsroom/actualites/axa-se-lance-sur-la-blockchain-avec-fizzy (Consulté le 16/05/2019) [6] MIT MEDIA LAB, "What we learned from designing an academic certificates system on the blockchain" 2016 [En ligne] Disponible sur https ://medium.com/mit-media-lab/whatwe-learned-from-designing-an-academic-certificates-system-on-the-blockchain-34ba5874f196 (Consulté le 16/05/2019) [7] Block.co, "The first team globally to put academic certificates on the blockchain" 2014 [En ligne] Disponible sur https ://block.co/who-we-are/ (Consulté le 16/05/2019) [8] Blockchain Partner, "Blockchain et Industrie Musicale" Une étude réalisée par Blockchain Partne, 2017 [En ligne] Disponible sur https ://blockchainpartner.fr/wpcontent/uploads/2017/05/Etude-Industrie-Musicale-Blockchain-Partner.pdf (Consulté le 16/05/2019) [9] R Gaetan, "IoT, qu’est-ce que c’est ? Définition, chiffres, usages et marché" Objetconnecte.com, 2015 [En ligne] Disponible sur https ://www.objetconnecte.com/iot-definition-chiffres-usagesmarches/ (Consulté le 22/05/2019) [10] Plummer Libby, "Bienvenue dans le BIoT : les avantages offerts par le mariage de l’Internet des objets et de la technologie Blockchain" 2018 [En ligne] Disponible sur https ://www.intel.fr/content/www/fr/fr/it-managers/the-benefits-of-blockchain-iotbiot.html (Consulté le 22/05/2019) [11] Ngo Diana, "Ethereum Powered P2P Energy Sharing Project Brings Blockchain to EMobility" CoinJournal, 2017 [En ligne] Disponible sur https ://coinjournal.net/energy-p2psharing-project-sharecharge-brings-blockchain-e-mobility/ (Consulté le 05/07/2019) [12] Coin24, "Définition et fonctionnement du Bitcoin (BTC)" [En ligne] Disponible sur https ://coin24.fr/bitcoin/ (Consulté le 30/04/2019) [13] Biticoin, "Comprendre bitcoin" [En ligne] Disponible sur https ://bitcoin.fr/faq/ (Consulté le 02/05/2019) [14] Les bitcoins, "Les avantages du Bitcoin" [En ligne] Disponible sur https ://lesbitcoinsetledarkweb.wordpress.com/les-avantages/ (Consulté le 02/05/2019) 51 [15] JOURNAL DU COIN, "Les avantages et les désavantages des bitcoins lors de paris en ligne" JOURNAL DU COIN, 2018 [En ligne] Disponible sur https ://journalducoin.com/bitcoin/lesavantages-et-les-desavantages-des-bitcoins-lors-de-paris-en-ligne/ (Consulté le 02/05/2019) [16] Crypto-France, "Ethereum vs Bitcoin : quelles différences entre ces deux technologies ?" 2016 [En ligne] Disponible sur https ://www.crypto-france.com/ethereum-vs-bitcoin/ (Consulté le 02/05/2019) [17] JOURNAL DU COIN, 2018 [En ligne] Disponible sur https ://journalducoin.com/blockchain/blockchain-technologie-energivore/ (Consulté le 02/05/2019) [18] POWER LEDGE, 2018 Power ledger white paper 2018 pp 7-28 [19] Share&Charge, Oslo2rome-initiative was a collaboration with seven strong european partners, accessing a roaming charging network beyond european borders via the e-mobility wallet", 2019.[En ligne] Disponible sur https ://shareandcharge.com/oslo-2-rome/ (Consulté le 07/05/2019) [20] SUNCHAIN, "Oslo2rome-initiative was a collaboration with seven strong european partners, accessing a roaming charging network beyond european borders via the “e-mobility wallet", 2019.[En ligne] Disponible sur https ://www.sunchain.fr/ (Consulté le 07/05/2019) [21] ENERGYSTREAM, "BROOKLYN – décryptage d’une smart grid utilisant la blockchain", 2016.[En ligne] Disponible sur https ://www.energystream-wavestone.com/2016/11/brooklyndecryptage-dune-smart-grid-utilisant-blockchain/ (Consulté le 03/06/2019) [22] BINANCE_Academy, "La preuve de travail".[En ligne] Disponible sur https ://https ://www.binance.vision/fr/blockchain/proof-of-work-explained (Consulté le 14/10/2019) [23] BINANCE_Academy, "Qu’est-ce qu’une preuve d’autorité ?".[En ligne] Disponible sur https ://www.binance.vision/fr/blockchain/proof-of-authority-explained (Consulté le 14/10/2019) [24] Bitcoin.fr, "Le proof-of-stake c’est quoi ?".[En ligne] Disponible sur https ://bitcoin.fr/leproof-of-stake-cest-quoi/ (Consulté le 14/10/2019) [25] Consensus, "Proof of Elapsed Time (PoET)".[En ligne] Disponible sur https ://tokenseconomy.gitbook.io/consensus/chain-based-trusted-computing-algorithms/poet (Consulté le 14/10/2019) [26] V Costan and S Devadas, “Intel sgx explained.” IACR Cryptology ePrint Archive, 2016, p 86 [27] ethereum-france, "« Smart contract », ó l’engagement auto-exécutant".[En ligne] Disponible sur https ://https ://www.ethereum-france.com/smart-contract-ou-le-contrat-auto-executant/ (Consulté le 13/12/2019) 52 ... et de notre étude des besoins pour la preuve de concept, nous avons fait des choix relatifs notre objectif : Développer une preuve de concept d’un système de gestion de recharge de véhicules... conception et du développement d’une preuve de concept utilisant la blockchain appliquée la mobilité électrique, qui s’inscrit dans le cadre du projet « Développement d’une preuve de concept utilisant. .. anneau, des transactions confidentielles en anneau et des adresses furtives pour masquer les origines, les montants et les destinations de toutes les transactions Monero offre tous les avantages d’une