Đăng ký Đăng nhập
Trang chủ Développement d’une preuve de concept utilisant les blockchains...

Tài liệu Développement d’une preuve de concept utilisant les blockchains

.PDF
63
3
101

Mô tả:

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 1 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 2 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 3 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 1. Smart grid : Nom anglais utilisé couramment pour désigner les réseaux électriques intelligents 2. Smart contract : Programme autonome qui, une fois démarré, exécute automatiquement des conditions définies au préalable et inscrites dans la blockchain 3. 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 1 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 1 1 1 2 2 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 4 5 5 5 5 5 6 6 7 7 9 11 11 13 13 13 13 14 14 14 14 15 15 15 15 17 20 22 23 3 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 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 5 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 6 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 9 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 3 . . . . . . . . . . Écran tactile Officiel 7 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 . . 3. pi . . . . . . . . . . . . . . . . . . . . . . 2 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 Liste des sigles et acronymes API : Application Programming Interface DApp : Decentralized Application DLT : Distributed Ledger Technology ERC : Ethereum Request for Comment EVT : Electric Vehicule Token IdO : Internet des Objets IHM : Interface Homme-Machine IoT : Internet of Things IP : Internet Protocol NFC : Near Field Communication PBFT : Practical Byzantine Fault Tolerance PC : Personal Computer PoA : Proof of Authority PoET : Proof of Elapsed Time PoS : Proof of Stake PoW : Proof of Work USB : Universal Serial Bus viii Chapitre 1 Introduction Générale Ce document est élaboré dans le cadre des différents travaux réalisés au cours de notre stage de fin d’étude, pour l’obtention du diplôme du master informatique, spécialité "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. Les travaux se sont déroulés au sein de l’équipe du TriLab, un laboratoire d’innovation technologique au sein de l’entreprise Trialog de Paris, France. Le stage a été réalisé sous la supervision de M. Rafik SAID MANSOUR, ingénieur consultant à Trialog. 1.1 Context et cadre d’étude La thématique abordée dans le cadre du stage se rapporte à la technologie blockchain, une technologie de stockage et de transmission d’informations, transparente, sécurisée, et fonctionnant sans organe central de contrôle(définition de blockchain France). Créée à la base pour le secteur financier avec la monnaie numérique Bitcoin, la technologie blockchain aiguise décidément aujourd’hui l’intérêt de beaucoup de secteurs, surtout en ce qui à trait à la sécurisation, la transparence et la traçabilité des données. Dans le cadre de notre stage, nous nous fixons sur l’application de la blockchain à la mobilité électrique, plus spécifiquement l’utilisation de celle-ci sur les réseaux électriques intelligents pour l’enregistrement, la sécurisation et la traçabilité des transactions de recharge de véhicules électriques. 1.2 Présentation de la structure d’accueil Située au 25 rue du Général Foy, 75008 Paris, France, Trialog est une société indépendante de conseil et d’expertise en systèmes d’information industriel, fondée en 1987. Ses clients sont des grands comptes européens. Son nom est la contraction de TR(Informatique, Temp Réel), IA(Intelligence Artificielle) qui sont ses domaines de compétence originels et de LOG pour donner l’idée de dialogue entre ces compétences dans le but de construire des systèmes complexes. 1.2.1 Missions de Trialog Proposant conseil et expertise en logiciel, sa stratégie est orientée vers la construction puis l’intégration de l’innovation vers les industriels et les organisations institutionnelles, dans des domaines tel que l’énergie, la mobilité électrique, la cybersécurité, la vie privée, le social et la santé. Elle aide les industriels à gérer la complexité croissante des systèmes et des logiciels. Elle leur transfère l’innovation et les aides à l’intégrer dans leurs produits, services et systèmes. Elle fournit également des outils et délivre des formations. 1.3 Problématique Comme pour beaucoup d’autres systèmes de gestion de données, la sécurité, la transparence et la traçabilité des transactions de recharge de véhicule sur un réseau électrique intelligent reste 1 un facteur clé pour la fiabilité de ce dernier. Dans notre contexte, nous avons imaginé le scénario d’un système électrique intelligents mis en place par des investisseurs dans un éco-quartier en France. Composé de plusieurs stations de recharge de véhicules électriques sur lesquelles sont connectées plusieurs bornes, le système est alimenté par trois sources d’énergie(cf. FIGURE 3.1) : Une source photovoltaïque (chaque station de recharge est liée à une installation d’énergie solaire) ; une source de stockage sur des batteries et aussi le réseau de distribution publique d’énergie. Sur ce système, les gens du quartier peuvent s’abonner, recharger leurs véhicules électriques et payer leur consommation d’énergie par carte bancaire. En effet, la problématique réside dans la sécurité, la transparence et la fiabilité des transactions concernant la consommation et le paiement de l’électricité sur le réseau, car les données sont stockées sur un serveur informatique centralisé, géré par un administrateur avec la possibilité de falsifier ces données. D’où la nécéssité de la blockchain qui est une technologie de stockage et de transmission d’informations de façon sécurisée et fonctionnant sans organe central de contrôle. 1.4 Objectif du stage Notre objectif dans le cadre de ce travail est de développer une preuve de concept utilisant la technologie blockchain pour la mobilité électrique concernant le paiement de l’énergie d’une part, d’autre part pour l’enregistrement, la sécurisation, la traçabilité des transactions concernant la recharge des véhicules électriques. L’objectif fixé s’inscrit dans le cadre des besoins de l’entreprise Trialog à savoir : Assurer une veille technologique sur les blockchains, explorer, vulgariser la technologie et aussi se préparer pour son avenir. Ensuite, il s’agit de développer une preuve de concept pour concrétiser cette vision. En effet, au cours de ce stage, nous tenons d’abord à faire un état de l’art sur la technologie blockchain en général et aussi sur les différents projets smart grids pertinents dans lesquels on utilise cette technologie. Enfin, implémenter une preuve de concept : Appliquer la blockchain sur un réseau de stations de recharge de véhicule électrique. 1.5 Plan de travail Dans le cadre de notre travail, nous faisons d’abord un état de l’art sur la blockchain en général, sur les algorithmes de consensus et aussi sur les projets de réseaux électriques intelligents dans lesquels on applique la blockchain. Ensuite, nous rédigeons un cahier des charges en définissant les besoins, puis concevoir notre preuve de concept. Plus loin, nous faisons des choix techniques en nous basant sur l’étude de la littérature des solutions existantes. Enfin, nous implémentons, d’une part et expérimentons d’autre part notre preuve de concept. Dans la figure ci-dessous(cf. FIGURE 1.1) nous présentons un macro planning pour notre travail. Figure 1.1 – Macro planning du projet TriLab 1.6 Structure du mémoire Ce document de mémoire est divisé en six(6) chapitres : 2 Chapitre I : Le premier chapitre traite de l’introduction générale du mémoire, la présentation de l’entreprise, l’objectif, la problématique et le plan de travail pour notre stage. Chapitre II : Le deuxième chapitre concerne l’état de l’art de la technologie blockchain, les algorithmes de consensus et les projets de systèmes électriques intelligents utilisant cette technologie. Chapitre III : Dans le troisième chapitre nous présentons les différents travaux de modélisation et de conception de notre preuve de concept. Chapitre IV : Le quatrième chapitre englobe les différentes approches et techniques retenues pour développer notre preuve de concept, en nous basant sur l’état de l’art réalisé. Aussi, nous présentons les différents outils matériels et logiciels utilisés dans le cadre de notre travail. Chapitre V : Dans l’avant dernier chapitre, nous présentons le processus de la mise en place de notre système. Chapitre VI : Le dernier chapitre concerne les différents scénario de test et les résultats obtenus suite à l’expérimentation de notre preuve de concept. 3 Chapitre 2 État de l’art 2.1 Introduction Depuis plus d’une dizaine d’années, la blockchain est apparue dans le monde technologique et son usage commence à se montrer dans différents domaines. La première blockchain a vu le jour en 2008 avec la monnaie numérique Bitcoin, développée par un inconnu se présentant sous le pseudonyme de Satoshi Nakamoto. Elle en est l’architecture sous-jacente. Par définition, la blockchain est « une technologie de stockage et de transmission d’informations, transparente, sécurisée, et fonctionnant sans organe central de contrôle » (définition de blockchain France)[1]. La blockchain (chaîne de blocs en français) est une liste sans cesse croissante d’enregistrement d’informations sur internet, appelés blocs, qui sont liés et sécurisés en utilisant la cryptographie. Chaque bloc contient généralement un hachage cryptographique du bloc précédent, un horodatage et des données de transaction. Par extension, une blockchain constitue une base de données qui contient l’historique de tous les échanges effectués entre ses utilisateurs depuis sa création. Cette base de données est sécurisée et distribuée : elle est partagée par ses différents utilisateurs, sans intermédiaire, ce qui permet à chacun de vérifier la validité de la chaîne[1]. Il existe des blockchains « publiques » (ouvertes), donc, n’importe qui peut devenir membre du réseau sans conditions d’admission ; et aussi des blockchain « privées » (fermées), dont les membres du réseau sont sélectionnés avant de pouvoir télécharger le protocole et donc utiliser le service proposé par le réseau, dont l’accès et l’utilisation sont limités à un certain nombre d’acteurs. De nos jours, la technologie blockchain commence à susciter un intérêt croissant à travers le monde, notamment au sein des entreprises et du monde de la recherche. Loin de se limiter uniquement aux bitcoins et aux cryptomonnaies, cette technologie trouve de nombreuses applications et s’impose de plus en plus comme une solution sûre, robuste et efficace. Plusieurs secteurs clés tels que la finance, les assurances, l’identité numérique, la musique, l’Internet des Objets (IdO) ou Internet of Things(IoT) en anglais), l’énergie... s’y intéressent de près et voient dans cette technologie une nouvelle solution pour répondre aux problématiques de traçabilité, de sécurité et aussi de désintermédiation d’information. Dans ce chapitre du document nous tenons à présenter d’abord, d’une manière générale, la technologie blockchain et ses domaines d’application ; puis l’état de l’art de la blockchain notamment « Bitcoint » et « Ethereum » qui sont les plus répandues. Ensuite nous exposons « Hyperledger » qui est une plateforme collaborative open source créé pour faire progresser les technologies blockchain. En plus, nous présentons 3 autres blockchains à savoir : « Ripple », « Litecoin » et « Monero ». Y sont présentés aussi les algorithmes de consensus. En dernier lieu, nous présentons l’état de l’art des projets smart grids 1 utilisant la blockchain à savoir : « Transactive Grid », « Power ledger », « Share&Charge » et « Sunchain ». 1. Smart grids : Nom anglais utilisé couramment pour désigner les réseaux électriques intelligents. 4 2.2 2.2.1 La blockchain et ses domaines d’application La blockchain et la finance Créée à la base pour le secteur financier, la blockchain aiguise décidément l’intérêt des banques pour faciliter la réalisation des paiements internationaux. Si pour beaucoup le potentiel de la blockchain pourrait servir de grandes menaces au secteur financier, de leur côté, les banques ne restent de toute façon pas inactives, et tentent de transformer la menace en opportunité. La méthode retenue est globalement toujours la même : « s’approprier la technologie pour l’adapter au sein des systèmes actuels, en développant en interne des blockchains privées ou semi-privées, ou en s’associant avec des start-ups de l’écosystème blockchain » [1]. La banque américaine « JP Morgan » a annoncé en septembre 2018, avoir convaincu 75 banques de tous les horizons de rejoindre le réseau Interbank Information Network (IIN) pour tirer parti de cette technologie propre aux cryptomonnaies, dont le bitcoin. Parmi celles-ci figurent Santander, AIB, UniCredit , mais aussi la Société Générale et Crédit Agricole SA. Ce projet a été lancé en 2017 par l’établissement américain en partenariat avec Royal Bank of Canada et ANZ [2]. Selon un article publié sur le site «Cryptonaute» le 23 Avril 2019, Plus de 220 banques utilisent désormais le réseau d’information interbancaire (IIN) de JP Morgan basé sur la blockchain [3]. D’autre part, c’est le cas aussi de la « Banque de France » qui, depuis plus de deux ans, expérimente un système décentralisé d’enregistrement des transactions sur la blockchain. Aidée de la start-up « Blockchain Partner », elle a choisi de développer une blockchain privée avec les banques de la place pour gérer le registre des numéros (dits Identifiants Créanciers Sepa ou ICS) nécessaires aux entreprises qui réalisent des prélèvements directement auprès de leurs clients [4]. 2.2.2 La blockchain et les assurances Le secteur d’assurance fait partie de ceux qui convoitent et commencent à exploiter le potentiel de la technologie blockchain. « AXA » est le premier grand groupe d’assurance à proposer une offre utilisant la technologie blockchain via « Fizzy », une plateforme d’assurance paramétrique 100% automatisée, permettant de couvrir les retards d’avion. Il propose à ses souscripteurs d’être indemnisés directement et automatiquement en cas de retard de leur vol. Si son avion a plus de deux heures de retard, « Fizzy » rembourse le client instantanément. Quand on achète une assurance de retard d’avion sur la plateforme «Fizzy», la transaction est enregistrée dans la blockchain Ethereum, un réseau informatique inviolable, ce qui rend le contrat lui-même également inviolable. A l’aide d’un smart contract connecté aux bases de données du trafic aérien mondial, dès lors qu’un retard de plus de deux heures est constaté, l’indemnisation se déclenche automatiquement [5]. 2.2.3 La blockchain et l’identité numérique La gestion des informations d’identification numériques comme l’émission des certificats et des diplômes, commence à bénéficier aussi du potentiel de la blockchain. Des groupes de recherche manifestent de grands intérêts pour ce cas d’usage et plusieurs projets ont déjà été mis en œuvre : « Digital Certificates Project » est une initiative offrant un écosystème de partage et de vérification de certificats éducatifs sur la blockchain, développée par le « MIT MEDIA LAB » en juin 2016 [6]. Aussi, c’est le cas de « Block.co », qui est une plateforme résultant de l’Initiative blockchain de l’Université de Nicosie (UNIC), en 2014, qui s’occupe de la gestion de certificats avec la blockchain [7]. 2.2.4 La blockchain et la musique L’industrie musicale est l’un des secteurs, entre autres, pour lequel la blockchain peut constituer une révolution. Dans une étude réalisée sur la blockchain et la musique [8], « Blockchain Partner », leader français du conseil sur les technologies blockchains a énuméré 5 grandes façons dont cette technologie pourrait transformer le secteur musical : Servir de base de données sécurisée et transparente pour les droits d’auteurs ; Automatiser et personnaliser la gestion des droits d’auteurs ; Permettre de mieux connaître le public d’un artiste et s’adapter en conséquence ; Apporter de la transparence dans une chaîne de valeur opaque aujourd’hui ; Transformer la gestion et le rôle des 5 billets de concerts. A travers cette même étude, « Blockchain Partner » met en avance trois projets comme cas d’usage de la technologie blockchain pour l’industrie musicale : — Ujo Music : Une start-up utilisant la blockchain pour créer une base de données transparente et décentralisée des droits d’auteurs, et automatiser les paiements grâce aux smart contracts. — Dot Blockchain Music : Une collectif qui développe en open source un nouveau format de fichiers, .bc, reliés à une base de données mondiale distribuée de droits d’auteurs musicaux. Au lieu de transférer des fichiers musicaux en tant que mp3 avec des métadonnées et une image, le format .bc inclura tous les fichiers médias, métadonnées étendues, et les contrats digitaux qui stipulent leurs usages. — MUSE : Un réseau pair-à-pair spécialement conçu pour l’industrie musicale. Cette organisation vise à « constituer la fondation d’un nouvel écosystème pour le secteur, en servant à la fois de base de données mondiale pour les copyrights, de moyen de paiement pour toutes les transactions liées à l’univers musical, et d’outil pour simplifier les licences de travaux musicaux ». 2.2.5 La blockchain et l’Internet des Objets (IdO) Plus connu sous son sigle anglais IoT (Internet of Things), « l’Internet des Objets (IdO) » est la matérialisation d’Internet dans le monde réel. Il concerne tous les objets, voitures, bâtiments et d’autres éléments reliés à un réseau d’Internet physique par une puce électronique, un capteur, une connectivité réseau leur permettant de communiquer entre eux, de collecter et d’échanger des données. Grâce à l’IoT, ces matériaux peuvent être contrôlés et suivis à distance à travers une infrastructure réseau existante. Ainsi, ils créent l’opportunité d’une intégration plus directe d’Internet dans les systèmes informatiques[9]. Cependant, l’un des plus grands défis pour les personnes qui travaillent avec la technologie de l’IoT, c’est la sécurité : chaque appareil IoT agissant comme un point d’entrée potentiel pour les pirates. En cas de violation, des informations sensibles pourraient fuiter à très grande échelle ou les appareils IoT pourraient être exposés à un risque de détournement par des pirates. C’est ce qu’il s’est produit en 2016 lorsque le botnet Mirai a bloqué l’accès à de nombreux sites bien connus, dont Twitter, Airbnb et Netflix, en exploitant la puissance d’environ 100 000 appareils IoT pour lancer une attaque DDoS (déni de service distribué) [10]. La réponse au problème de sécurité de l’Internet des objets pourrait bien être la technologie blockchain. Le résultat de la combinaison de ces deux tendances technologiques influentes est connu comme l’« Internet des objets Blockchain » ou « BIoT » (bien que le terme BIoT ait déjà été utilisé pour faire référence à Building Internet of Things (Internet des objets des bâtiments) ou technologie des bâtiments intelligents). L’utilisation de la technologie blockchain comme base pour les appareils IoT réduit le risque de piratage informatique en diminuant les points d’entrée potentiels. En renonçant à une autorité centrale dans les réseaux de l’Internet des objets, la technologie blockchain pourrait permettre à ces réseaux de se protéger. Les appareils IoT dans un groupe commun pourraient automatiquement cesser de fonctionner ou bien d’alerter l’utilisateur si on lui demande de réaliser toute tâche qui semble suspecte parce qu’elle est en dehors de ses attributions habituelles [10]. 2.2.6 La blockchain et l’énergie Le secteur énergétique commence, lui aussi, à comprendre le potentiel de la blockchain et aussi à exploiter les bienfaits de cette technologie, surtout dans le déploiement des réseaux électriques intelligents (Smart grids). Plusieurs projets, dont nous aurons à parler plus tard dans ce document résument aujourd’hui une partie du potentiel de la technologie blockchain pour ce cas d’usage. Parallèlement, depuis quelques années, la mobilité électrique commence à s’imposer à travers le monde, notamment dans les pays de l’Europe. L’utilisation des véhicules électrique s’accroit au fur et à mesure, d’une année à l’autre. Il a atteint 2% des immatriculations en France en fin d’année 2018, tout comme en Allemagne. L’année 2019 démarre sous les mêmes auspices, puisqu’au premier trimestre, les ventes de véhicule électrique et des hybrides atteignent 14 500 unités, une augmentation de 37% par rapport au premier trimestre 2018 [11]. Donc, cette émergence de la mobilité électrique propulse par ailleurs la croissance des réseaux de stations de recharge électriques. 6 2.3 Les blockchains les plus répandues et les plus utilisées Actuellement, Bitcoin et Ethereum restent les deux blockchains les plus répandues et les plus utilisées. En effet, dans le cadre de notre état de l’art, nous allons présenter en premier lieu ces dernières qui sont notamment des blockchains publiques, ensuite nous aurons à présenter quelques Hyperledger, qui est une plateforme open source visant à promouvoir le développement d’application blockchain. Enfin, nous aurons à présenter trois autres blockchains : Ripple, Litecoin et Monero. 2.3.1 Bitcoin Bitcoin est la toute première monnaie virtuelle à avoir été créée par Satoshi Nakamoto en 2008, déclenchant alors une véritable révolution dans le monde des transactions financières. Son nom « Bitcoin » est la contraction des mots anglais « bit », qui correspond à une unité de mesure binaire, et de « coin » qui signifie « pièce de monnaie ». La crypto-monnaie Bitcoin s’appuie sur un système de paiement virtuel peer-to-peer. Chaque transaction est stockée dans un registre public sécurisé, la blockchain, et ne nécessite aucun intermédiaire : il s’agit donc d’un fonctionnement décentralisé, s’appuyant sur un système de nœuds. Chaque nouveau bloc ajouté à la chaîne doit être vérifié, sécurisé puis enregistré : c’est ce qu’on appelle « le minage ». Les utilisateurs qui effectuent ces contrôles, les mineurs, sont ensuite rémunérés pour chaque nouveau bloc enregistré [12]. Les transactions effectuées entre les utilisateurs du réseau Bitcoin sont regroupées par blocs. Chaque bloc est validé par les nœuds du réseau appelés les « mineurs », selon la technique de Proof of Work 2 , preuve de travail, et consiste en la résolution de problèmes algorithmiques. Une fois le bloc validé, il est horodaté et ajouté à la chaîne de blocs (cf. FIGURE 2.1). La transaction est alors visible pour le récepteur ainsi que l’ensemble du réseau [1]. Figure 2.1 – Illustration d’une transaction blockchain Source : https ://blockchainfrance.net/decouvrir-la-blockchain/c-est-quoi-la-blockchain/ Les Avantages de bitcoin : — Un consensus mondial De par sa nature libre et décentralisée, le réseau bitcoin fonctionne grâce à ses utilisateurs et sans autorité centrale. Toute mise à jour sur le système nécessite l’accord d’une quantité 2. Proof of Work(preuve de travail en français) : Algorithme de consensus permettant de dissuader, sur un réseau informatique, des attaques par déni de service et autres abus de service tels que le spam en requérant de la puissance de calcul et de traitement par ordinateur au demandeur de service. 7 suffisante d’utilisateurs ou de mineurs [13]. — Une monnaie conçue pour Internet Bitcoin introduit les libertés de la monnaie physique dans le monde du web tout en rendant les paiements plus faciles et sécuritaires dans les deux mondes [13]. — Protection des droits et libertés individuelles Bitcoin permet de stocker et échanger de la valeur de manière sécurisée sur un réseau qui ne peut être saisi, manipulé ou stoppé par aucune organisation ou individu [13]. — Rapidité et prix des transactions par rapport aux systèmes bancaires Une transaction en bitcoin est quasiment instantanée si celle-ci est faite sans confirmation. Il est possible au marchand de demander une confirmation ce qui prend 10 minutes, mais qui reste toujours plus rapide et aussi moins chère qu’un virement bancaire de type classique [14]. — La première devise globale et neutre Bitcoin est une cryptomonnaie libre de toute influence politique ou de toute économie nationale. Donc il traverse les barrières entre les nations, les politiques et les cultures pour le bénéfice du bien commun [13]. — Promotion de la transparence Toutes les transactions Bitcoin sont publiques depuis sa création jusqu’à l’heure actuelle. Cependant les propriétaires et les destinataires de ces transactions restent inconnus [13]. — Sécurité monétaire Grâce à la cryptographie, Bitcoin est très sécurisé. Sa devise est non seulement impossible à contrefaire ou à usurper mais le protocole est aussi conçu pour être très résistant contre des attaques informatiques, incluant les attaques par déni de service distribué [13]. — Solution aux problèmes de confiance vis-à-vis des banques Bitcoin offre des solutions contre plusieurs problèmes de confiance entre les banques avec la transparence comptable sélective, les preuves par signature cryptographiques et les transactions irréversibles [13]. Limites de Bitcoin — Durée des transactions Recevoir un paiement avec Bitcoin est presque instantané. Toutefois, il peut y avoir un délai de 10 minutes avant que le réseau confirmer votre transaction en l’incluant dans un bloc et avant que vous ne puissiez dépenser les bitcoins que vous recevez [13]. — Instabilité La valeur d’un bitcoin évolue un peu comme le marché boursier et elle change constamment. Si le prix n’est pas stable, vous obtiendrez peut-être moins en convertissant votre devise en bitcoins. Au contraire, si le prix d’un bitcoin augmente par rapport à votre devise, vous devrez alors dépenser plus de dollars pour obtenir un montant fixe en bitcoin [15]. — Une monnaie volatile La plupart des gens ne sont pas prêts et pas suffisamment formés pour mettre leurs économies dans un portemonnaie virtuel qui, si on ne sait pas le sécuriser, peut disparaître du jour au lendemain (mort du support, perte de données, piratage. . .). En outre, les transactions sont irréversibles et il n’y a pas de recours possible [15]. — Une technologie énergivore De nombreuses recherches ont été effectuées sur la consommation énergétique de Bitcoin. Certains chercheurs ont comparé les résultats de leurs recherches aux consommations énergétiques de pays ou de foyers entiers. C’est le cas du site comparatif des tarifs énergétiques Britannique « PowerCompare » qui, en fin 2018 constate que, pour l’année en cours, seuls 8 « 38 pays consomment nettement plus d’électricité que l’exploitation totale de Bitcoin» [17]. — Restriction sur l’offre de monnaie Il ne peut pas exister sur le marché plus de 21 millions de bitcoins [16]. 2.3.2 Ethereum Inventé par le russo-canadien Vitalik Buterin en 2013, Ethereum est un protocole d’échanges décentralisés permettant la création par les utilisateurs de contrats intelligents (Smart contracts) grâce à un langage Turing-complet 3 . Ces contrats intelligents sont basés sur un protocole informatique permettant de vérifier ou de mettre en application un contrat mutuel. Ils sont déployés et consultables publiquement dans une blockchain. Le réseau Ethereum utilise une unité de compte dénommée « Ether » comme moyen de paiement de ces contrats. Son sigle correspondant, utilisé par les plateformes d’échanges, est « ETH ». Ethereum est la deuxième plus importante monnaie cryptographique décentralisée avec une capitalisation supérieure à 13 milliards d’euros en janvier 2019. Le tout premier bloc d’une blockchain est appelée genesis bloc (cf. FIGURE 2.2). Figure 2.2 – Exemple de genesis bloc dans une blockchain Source : https ://www.researchgate.net/figure/An-example-of-blockchain-which-consists-of-acontinuous-sequence-of-blocks-see-online_fig1_328271018 Le premier block du réseau Ethereum est créé le 30 juillet 2015. Les 60 millions d’Ethers de la prévente ainsi que 12 millions d’Ethers ont été distribués aux développeurs. Depuis, l’émission de nouveaux Ethers n’est possible que par le « minage »des blocs, processus par lequel les transactions sont vérifiées, enregistrées et sécurisées dans la blockchain. Le logiciel rétribue les mineurs 4 à raison de 5 Ethers par bloc miné, c’est-à-dire en moyenne toutes les 15 secondes, soit une émission de 10 millions de nouveaux Ethers par an. Il est prévu en 2018, dans une version ultérieure du logiciel prenant le nom de Serenity, de changer le procédé de minage actuellement de type Proof of Work en un minage de type Proof of Stake afin de limiter la consommation d’électricité du réseau Ethereum. Cette mise à jour comportera également des changements concernant l’émission des Ethers. La rémunération des mineurs devrait probablement diminuer, mais la question n’a pas encore été tranchée par les développeurs. Avantages d’Ethereum — Développement d’application décentralisée Contrairement à beaucoup d’autres blockchains conçues pour effectuer un ensemble très limité d’opération, Ethereum fournit aux développeurs des outils nécessaires à la création d’applications décentralisées. — Implémentation de « smart contracts » Ethereum permet d’implémenter des smart contrats, des programmes autonomes qui, une fois démarrés, exécutent automatiquement des conditions définies au préalable. 3. Turing-complet : Système formel ayant une puissance de calcul au moins équivalente à celle des machines de Turing. 4. Mineur : Utilisateurs de la blockchain dont le rôle est de valider les transactions qui circulent à l’intérieur 9
- Xem thêm -

Tài liệu liên quan