UNIVERSITÉ NATIONALE DU VIETNAM, HANOÏ INSTITUT FRANCOPHONE INTERNATIONAL MAYABA Solim Wapo Mise en œuvre d’un Smart Contract d’une Blockchain Ethereum pour créer une cryptomonnaie interne MÉMOIRE DE FIN D’ÉTUDES DU MASTER INFORMATIQUE Sous la Direction de l’Ingénieur : M. PELLAT Dominique (Architecte Bancaire) HANOÏ - 2019 TIEU LUAN MOI download : skknchat@gmail.com UNIVERSITÉ NATIONALE DU VIETNAM, HANOÏ INSTITUT FRANCOPHONE INTERNATIONAL MAYABA Solim Wapo Mise en œuvre d’un Smart Contract d’une Blockchain Ethereum pour créer une cryptomonnaie interne Spécialité : Systèmes Intelligents et Multimédia Code : Programme pilote MÉMOIRE DE FIN D’ÉTUDES DU MASTER INFORMATIQUE Sous la Direction de l’Ingénieur : M. PELLAT Dominique (Architecte Bancaire) HANOÏ - 2019 TIEU LUAN MOI download : skknchat@gmail.com Attestation sur l’honneur J’atteste sur l’honneur que ce mémoire a été réalisé par moi-même et que les données et les résultats qui y sont présentés sont exacts et n’ont jamais été publiés ailleurs. La source des informations citées dans ce mémoire a bien été précisée.
MAYABA Solim Wapo TIEU LUAN MOI download : skknchat@gmail.com Remerciements Je voudrais tout d’abord adresser toute ma gratitude à M. Dominique Pellat pour sa pa- tience, sa disponibilité et surtout ses judicieux conseils, qui ont largement contribué à alimenter ma réflexion. Tous les outils nécessaires, des échanges ainsi que des formations étaient mise à ma disposition afin d’obtenir des résultats significatifs. J’ai eu également le privilège de présenter ce projet à la 6 ème journée de l’innovation du Groupe La Poste.
Merci de m’avoir fait confiance et permis de faire mes premières expériences en entreprise en matière de recherche. J’aimerais aussi gratifier les efforts de M. NONNON David, architecte sécurité à la DISFE, qui a eu l’amabilité de répondre à mes questions et de fournir les explications nécessaires sur mon projet. Il m’a beaucoup appris sur les défis qu’un développeur doit relever au quotidien.
Je suis également reconnaissante envers les professeurs de l’IFI , qui m’ont fourni les ou- tils nécessaires à la réussite de mon cursus. Je tiens à remercier spécialement Mr Vinh , qui fut le premier à me faire découvrir cette technologie "La Blockchain" qui devint la thématique de mon sujet de stage. Je tiens également à remercier ma famille pour sa patience et bienveillance à mon égard. Merci de m’avoir encouragé et de n’avoir ménager aucun effort pour cet aventure depuis le Vietnam jusqu’en France.
MAYABA Solim Wapo TIEU LUAN MOI download : skknchat@gmail.com TIEU LUAN MOI download : skknchat@gmail.com Résumé Ce travail de recherche conduit à la réalisation pratique d’un projet de la DISFE. Ce pro- jet vise à mettre en oeuvre des Smart Contrats pour créer une cryptomonnaie interne appelé I3Coin abrégé en ‘I3C’. Basée sur la Blockchain Ethereum , cette cryptomonnaie est destinée à valoriser : l’engagement citoyen soutenu par le Groupe La Banque Pos- tale (GLBP) et les actions facilitant la vie quotidienne dans l’entreprise. Dans ce travail , est expliqué ce qu’est la Blockchain et son fonctionnement, mais aussi ce qu’est une crypto-monnaie et un Smart Contract.
Il apportera les outils et les connaissances né- cessaires dans le but de pouvoir créer, soi même, sa propre crypto-monnaie ou toute autre application décentralisée. Mots clés : blockchain, crypto-monnaie, smart contract, Ethereum, ERC20, Dapp Abstract This research work leads to the practical realization of a DISFE project. This project aims to implement Smart Contrats to create an internal cryptocurrency called I3Coin abbreviated as ’I3C’. Based on the Ethereum Blockchain, this cryptocurrency is desi- gned to enhance : citizen engagement supported by the Group Postal Bank (GLBP) and actions facilitating daily life in the company.
In this work, is explained what the Blo- ckchain and its operation, but also what is a cryptocurrency and a Smart Contract. He will provide the necessary tools and knowledge to create his own cryptocurrency or any other decentralized application. Keywords : blockchain, cryptocurrency, smart contract, Ethereum, ERC20, Dapp TIEU LUAN MOI download : skknchat@gmail.com TIEU LUAN MOI download : skknchat@gmail.com Table des matières Table des figures vi 1 Introduction Génerale 1 2 Présentation de la structure d’accueil 3 2.1 Le Groupe La Poste. 5 3 Contexte d’étude et problématique 7 3.3 Identification des besoins.
9 4 État de l’art 10 4.1 Blockchain et cryptomonnaies .1 Qu’est-ce qu’une Blockchain ? .2 Caractéristiques essentielles d’une Blockchain .3 Fonctionnement d’une Blockchain .2 Qu’est-ce qu’une crypto-monnaie ? .3 Mécanismes de consensus .1 Proof of Work (PoW) .2 Proof of Stake (PoS) .4 Qu’est-ce qu’Ethereum ? .5 Qu’est ce qu’un Smart Contract ? .2 L’histoire des cryptomonnaies. 15 ii TIEU LUAN MOI download : skknchat@gmail.com TABLE DES MATIÈRES 4.3 Les cryptomonnaies sur le marché .1 Classification des cryptomonnaies sur le marché .4 4 méthodes différentes pour créer sa propre cryptomonnaie .1 Créer sa propre blockchain .2 Forker une crypto-monnaie existante .3 Créer un jeton .4 Utiliser un service de création de crypto-monnaie .5 Réseau blockchain : "Mainnet & Testnets" .6 Analyse et Solutions possibles .1 Présentation de notre solution .4 Logique métier de notre projet .2 Les cas d’utilisation .3 Les fonctionnalités de notre application .1 Interaction avec les SmartContracts .2 Créer un portefeuille Ethreum avec Web3.8 Informations de test .9 Environnement de travail. 29 6 Implémentations et Résultats 30 6.1 Installation de l’environnement de développement .2 NodeJS and NPM .6 React Developer Tools .2 Créer une blockchain privée. 31 iii TIEU LUAN MOI download : skknchat@gmail.com TABLE DES MATIÈRES 6.1 Création d’un bloc de genèse .2 Initialiser un noeud privé .3 Créer un compte .4 Lancer notre blockchain .3 Lancement de notre propre jeton ERC20 : I3Coin (utilisation de OpenZeppelin ) .4 Implantation de la logique métier .1 Variables et types de données .2 Les fonctions de notre contrat .5 Lancement de notre smart contract .6 Conception - Coté Client .7 Lancement de l’application .1 L’authentification par adresse mail et mot de passe .2 Payer les transactions avec les éthers .1 Lancement de la blockchain .2 Présentation de notre application .2 Création d’un compte .7 Gestion des Projets.
57 7 Conclusion et Perspectives 59 7. 60 A Quelques fonctions du smart contract 62 A. 63 iv TIEU LUAN MOI download : skknchat@gmail.com Table des figures 2.1 Les 5 branches métiers du Groupe La Poste .1 Code source Bitcoin sur Github .2 Tableau comparatif des crypto-monnaies .1 Structure de notre dApp .2 Communication entre la plateforme et les Smart Contracts .1 Contenu du fichier I3Coin.2 fichier script pour le lancement de la blockchain .3 Création du token ICubeCoin .4 Déclaration d’une variable de type énumération .5 Déclaration des structures du projet .6 Déclaration des variables de type mapping .7 Déclaration des évènements du projet .8 Constructeur du projet .9 Fonctions du projet .10 Configuration du réseau de l’exécution du smart-contract .11 Configuration de web3.12 Lancement de la blockchain .14 page de création d’un compte .15 Menu à gauche des pages .17 page - profil utilisateur .18 page - liste des projets .19 page - création d’un nouveau projet .20 page - Faire un tip sur un projet .21 page - Solutionner un projet .22 page - gestion des projets .23 page - valider projet. 53 v TIEU LUAN MOI download : skknchat@gmail.com TABLE DES FIGURES 6.24 page - liste des favoris .25 page - vente des produits/services (kiosque) .26 page - ajouter des produits/services (kiosque) .27 page - achat des produits/services (kiosque) .28 page - liste des transferts I3C effectués .29 page - transférer des I3C .1 Annexe- fonctions du smart contract (a) .2 Annexe- fonctions du smart contract (b).
64 vi TIEU LUAN MOI download : skknchat@gmail.com Liste des sigles et acronymes DISFE Direction de l’Informatique des Services Financiers et de l’En-seigne La Poste LBP La Banque Postale dApp Dee-app (application décentralisée) ICO Initial Coin Offering TIEU LUAN MOI download : skknchat@gmail.com Chapitre 1 Introduction Génerale Depuis quelques années, nous assistons à l’émergence de monnaies d’un genre nouveau, reposant sur des procédés cryptographiques, gérées en pair à pair selon un consensus distribué. La plus représentative d’entre elles, le Bitcoin, est lancée après la crise financière de 2008. Ces crypto-monnaies viennent heurter la conception tradi- tionnelle de la monnaie : unitaire, souveraine, territoriale et centralisée. Le sujet sur les cyptomonnaies porte encore plus d’intérêt aujourd’hui avec l’arri- vée d’un géant dans l’espace des cryptomonnaies.
En effet, le géant des réseaux sociaux Facebook a annoncé le mardi 18 juin le lancement pour 2020 de "Libra" une nouvelle monnaie dématérialisée développée en partenariat avec une vingtaine d’institutions financières, comme Visa, Mastercard ou encore PayPal. Chaque information sur le su- jet fait l’objet de beaucoup d’attention : Facebook deviendrait il le nouveau maître des cryptomonnaies ? C’est une occasion de revenir à la fois sur le concept des monnaies et de s’interroger sur la place de cette technologie sur laquelle se reposent les cryptomonnaies : la Block- chain. La blockchain est ainsi vue comme un potentiel successeur à la technologie exis- tante. Ethereum est actuellement entrain d’exploser et de révolutionner la Blockchain en introduisant de nouvelles possibilités.
Avec Ethereum il est possible, non seulement de réaliser de simples paiements comme le proposait déjà de faire ce que la monnaie Bitcoin , mais offre également la possibilité de profiter des nœuds du réseau pour exé- cuter des programmes, appelés des Smart Contracts. Ceux-ci permettent de créer des applications basées sur un système décentralisé. Un grand nombre de développeurs se sont alors mis à étudier Ethereum et les Smart Contracts, en participant activement à la prospérité de cette communauté.Des secteurs tels que les dossiers médicaux, la logistique, la finance, les assurances peuvent tous bénéficier des contrats intelligents visant à éliminer les tiers. Le domaine d’application des Smart Contracts est beaucoup plus étendu.Le nombre de cas d’utilisation dans l’industrie et la vie quotidienne est presque infini.
Des sec- 1 TIEU LUAN MOI download : skknchat@gmail. INTRODUCTION GÉNERALE teurs Bancaire, Dossiers fiscaux, Assurance, Enregistrement de biens immobiliers et fonciers, Chaîne d’approvisionnement, Sciences de la vie et soins de santé. peuvent tous bénéficier des contrats intelligents visant à éliminer les tiers. C’est précisément dans cette optique que s’insère ce travail.
Aujourd’hui, de nom- breux passionnés travaillent sur des projets visant à résoudre les problèmes à l’aide de la technologie de la blockchain et des contrats intelligents. Ce travail de recherche permet de mieux comprendre cet environnement novateur et d’appréhender le vaste éventail des possibilités qu’offrent les Smart Contrats. Plus encore, à partir de la mise en pratique de cette théorie à travers un projet concret iCubeCoin(Projet visant à mettre en place une cryptomonnaie iCubeCoin), ce travail permettra ainsi de se forger une connaissance solide de l’environnement de la cryptomonnaie et apprécier par lui-même toute la force de ce mouvement. Ce travail a été réalisé dans le cadre d’un stage de Validation de Master Informa- tique, option Système Intelligent et Multimédia.
J’ai donc travaillé durant 6 mois à la DISFE, la structure qui m’a accueillie dans ce cadre. J’ai pu assister à des réunions, meetups sur le sujet de la "Blockchain". J’ai également eu le privilège de présenter le projet iCubeCoin à la 6 ème édition de la journée de l’innovation du Groupe la poste (Journée de partage sur les projets et les innovations en cours). 2 TIEU LUAN MOI download : skknchat@gmail.com Chapitre 2 Présentation de la structure d’accueil J’ai été accueilli dans le cadre de mon stage par la DISFE ( direction informatique, pôle de La Banque Postale et du Réseau La Poste qui sont tous les deux des branches du Groupe La Poste).1 Le Groupe La Poste Le Groupe La Poste est, après l’État, l’un des principaux employeurs de France.
Il contribue de longue date au bien-être social et économique notamment en France. Le Groupe La Poste a développé avec les Français une véritable proximité en facilitant leur quotidien et en s’inscrivant durablement dans leurs territoires. Il réunit près de 260000 postiers entrant chaque jour en relation avec 65 millions de personnes, partout en France, et animés par des valeurs citoyennes qui sont depuis toujours au cœur de l’identité postale.