WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Simulation d’une cryptomonnaie basée sur la devise monétaire congolaise.


par Christer KAHASHA
Université adventiste de Lukanga - Licence en gestion informatique 2019
  

Disponible en mode multipage

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

UNIVERSITE ADVENTISTE DE LUKANGA
« UNILUK »

B.P. 180 BUTEMBO/NORD-KIVU/RDC

FACULTE DES SCIENCES ECONOMIQUES ET DE GESTION
INFORMATIQUE

Simulation d'une cryptomonnaie basée sur la
devise monétaire congolaise

Par : Christer BIRINGANINE KAHASHA

Travail de fin de cycle présenté et

défendu en vue de l'obtention du grade de licencié en Gestion Informatique.

Directeur : Prof. Osée MUHINDO MASIVI Co-directeur : CT. Norbert VAGHENI

ANNEE ACADEMIQUE 2018-2019

EPIGRAPHE

« Je ne suis pas un crack en informatique, loin de là, mais il n'y a pas que les mécaniciens qui sachent conduire une voiture ».

Joseph Finder

DEDICACE

A mon père Kahasha Paulin et ma mère Riziki Lusuna;
A toute ma Famille;
A tous ceux qui m'ont soutenu dans mes études;
A tous ceux qui m'aiment.

II

Christer BIRINGANINE KAHASHA

III

REMERCIEMENTS

Au terme de notre cycle (deuxième) en sciences économiques et de gestion, option de gestion informatique, nous adressons nos sincères remerciements à l'Eternel DIEU tout puissant pour sa riche protection et sa grâce qu'il n'a cessé de nous combler pour tout travail durant notre séjour dans la vie estudiantine. Nous remercions, d'une manière particulière, la famille KAHASHA pour son sacrifice, amour et soutien de nos études depuis notre bas âge jusqu'à ces jours; qu'ils trouvent ici le fruit de leur dévouement inestimable. Sans oublier les frères, soeurs, oncles, tantes, grands-parents, etc. Nos gratitudes s'adressent au corps académique et scientifique de l'université adventiste de Lukanga UNILUK, pour son savoir-faire et savoir être louable, Nos sincères remerciements au Professeur Docteur Osée MUHINDO MASIVI et au CT Norbert VAGHENI qui en dépit de leurs occupations multiples ont bien voulu diriger ce travail. Nous resterons très reconnaissants à nos frères, camarades et amis avec qui nous avons traversés des terribles difficultés et qui n'ont cessé de nous encourager : Chrispin, Christophe, Christelle, Christ vit, Dieu est là, Bisimwa, Vamos, Nyumu, Masisi, Makasi, Kyambaliro, Kitsongeri; qu'ils trouvent ici notre gratitude. Que tous ceux qui nous sont chers et dont les noms ne sont pas repris trouvent aussi l'expression de nos sincères gratitudes.

iv

RESUME

Attiré par l'architecture des systèmes de payements électroniques et sur internet en RDC ; contrairement à ces derniers, qui fonctionnent dans la centralisation absolue des informations, le principal objectif de ce travail est de simuler un système pair-à-pair de payement sur internet basé sur la preuve cryptographique pour la validation des transactions d'une manière décentralisée. Le système écrit en java, permet donc de réaliser des transactions sûres entre ses utilisateurs sans participation d'un tiers de confiance, ni un serveur central tout en gardant l'intégrité et l'authenticité des données.

V

ABSTRACT

Attracted by the architecture of electronic and internet payment systems in the DRC; unlike the latter, which operate in the absolute centralization of information, the main objective of this work is to simulate a peer-to-peer payment system based on cryptographic evidence for the validation of transactions in a decentralized manner. The system written in Java, thus allows to carry out secure transactions between its users without participation of a trusted third party, nor a central server while keeping the integrity and the authenticity of the data.

vi

SIGLES ET ABREVIATIONS

AUSIM : Association des Utilisateurs des Systèmes d'information au Maroc

BBS : Bulletin Board System

BIND : Berkeley Internet Name Daemon

BTC : Bitcoin

CAN : Content Addressable Network

DHT : Distributed Hash Table

DNS : Domaine Name Server

ETH : Ethereum

FMI : Fonds Monétaire International

IBM : International Business Machine

IDE : Integrated Development Environment

IP : Internet Protocol

IRC : Internet Relay Chat

JDK : Java Développement Kit

JRE : Java Runtime environnement

JVM : Java Virtual Machine

NIST : National Institute of Standards and technology

NSA : National Security Agency

P2P : Peer-To-Peer

PHP : Personal hypertext Page

PoW : Proof Of Work

PU : Processus Unified

RFC 3174 : Request for comments

RIPEMD-160 : RACE Integrity Primitives Evaluation Message Digest

RSA : Rivest Shamir Adleman

RDC : République Démocratique du Congo

SGBD : Système de Gestion de Base des Données

SHA : Secure Hash Algorithm

SHS : Secure Hash Standard

TCP : Transfert Control Protocol

VII

UML : Unified Modeling Language

UNILUK : Université Adventiste de Lukanga

VIII

LISTE DES TABLEAUX

Tableau 1: Architecture des réseaux P2P 13

Tableau 2: cas créer wallet 37

Tableau 3: Le cas Authentification 37

Tableau 4: Le cas Recevoir talentcoins 38

Tableau 5: Le cas Envoyer talentcoins 39

Tableau 6: le cas miner talentcoins 40

ix

LISTE DES FIGURES

Figure 1 : Classifications des systèmes informatiques 9

Figure 2: Structure du réseau 10

Figure 3: Architecture décentralisée 13

Figure 4: Architecture Hybride 13

Figure 5: Architecture centralisée 13

Figure 6: DHT et mécanisme de routage dans un réseau overlay 15

Figure 7:Fonctionnement de la Blockchain (blockchainfrance, 2016) 17

Figure 8: chaîne des transactions électroniques 22

Figure 9: Clef privée, clef publique et adresse bitcoin 24

Figure 10: An elliptic curve 24

Figure 11: Logo du projet Ethereum, utilisé pour la première fois en 2014 26

Figure 12: Diagramme de cas d'utilisation 36

Figure 13: diagramme de séquence "créer Wallet" 41

Figure 14: diagramme de séquence " authentification " 42

Figure 15: diagramme de séquence " Recevoir talentcoins " 42

Figure 16: diagramme de séquence " Envoyer talentcoins " 43

Figure 17: diagramme de séquence " Miner talentcoins " 44

Figure 18: Diagramme de déploiement du réseau Talentcoin 45

Figure 19: Diagramme de classe 46

Figure 20: Architecture du système 48

Figure 21: Demande de connexion au réseau d'un pair à la DHT 49

Figure 22: Connexion en P2P 49

Figure 23: Interface d'envoie des talentcoins 50

Figure 24: Algorithme d'envoie des talentcoins 50

Figure 25:Interface de notification de réception 51

Figure 26: Algorithme de réception 51

Figure 27: Interface de minage 52

Figure 28: Algorithme pour minage 52

X

Table des matières

EPIGRAPHE i

DEDICACE ii

REMERCIEMENTS iii

RESUME iv

ABSTRACT v

SIGLES ET ABREVIATIONS vi

LISTE DES TABLEAUX viii

LISTE DES FIGURES ix

Table des matières x

INTRODUCTION 1

Problématique 1

But du travail 3

Objectifs du travail 4

Choix et Intérêt du sujet 4

Méthodologie du travail 5

Délimitation du sujet 5

Plan du travail 5

PREMIER CHAPITRE : REVUE DE LA LITTERATURE 7

Introduction 7

Impact négatif d'une cryptomonnaie sur la masse monétaire d'un pays 8

Propos des systèmes informatiques 9

Réseau P2P. 9

Architecture des réseaux P2P. 12

Figures Architectures peer-to-peer. 13

Table de hachage 14

Technologie Blockchain 15

Introduction. 15

xi

Typologie de blockchaine. 16

Fonctionnements du blockchaine. 16

Quelques concepts liés à la Blockchain. 17

Autres travaux et Système de payement électronique et sur internet en RDC

19

Etat de l'art sur les cryptomonnaie 20

Modes de sécurité sur internet. 21

Exemples des cryptomonnaies 23

Bitcoin. 23

Ethereum. 25

CHAPITRE DEUXIÈME 27

MÉTHODES, MATÉRIELS ET LANGAGES 27

Méthodes 27

La Documentation. 27

La Modélisation. 27

La définition des algorithmes. 29

Le prototypage. 29

La simulation 30

Environnement logiciel 30

NetBeans. 30

Outils Utilisés. 31

Langage de programmation. 31

CHAPITRE TROISIEME 33

MODELISATION DU SYSTEME 33

Introduction 33

EXIGENCES FONCTIONNELLES DU SYSTEME 33

L'objectif du système 33

Diagramme de déploiement. 44

Diagramme de classe. 45

Base des données. 47

CHAPITRE QUATRIEME : LES PROTOTYPES DES RESULTATS ET

IMPLEMENTATION 48

Architecture du système. 48

Réalisation du système 50

XII

Interface et algorithme d'envoie des talentcoins. 50

Interface et algorithme de notification de réception. 51

Interface et algorithme pour minage. 52

Protocole d'experimentation et discussion du resultat du travail. 53

Conclusion partiel 54

CONCLUSION GENERALE 55

Bibliographie 57

INTRODUCTION

Problématique

L'internet dit le réseau des réseaux est un outil permettant de faire circuler les données avec fluidité dans tous les coins du monde. Depuis 1991, l'internet et le web ont changé notre façon de communiquer sur tous les plans de notre vie quotidienne en permettant d'échanger une quantité nécessaire d'informations. Aujourd'hui la croissance d'Internet est extraordinaire, et bien que personne ne puisse donner des chiffres exacts, certains annoncent le nombre de personnes connectées sur internet s'est élevé en 2018 avec une estimation de 4 021 milliards connectés, c'est une hausse de 7% par rapport à l'année 2017, les médias sociaux, eux avaient pris 3 196 milliards, soit 13% par rapport à l'année 2017 (KEMP, 2018).

De ce qui précède, on a tendance d'affirmer que la communauté est devenue virtuelle. BBS fut la toute première forme des communautés virtuelles, vers la fin des années 70, où l'on peut annoncer des messages d'intérêt général ou privé sur les thèmes les plus variés. Outre le Minitel en France vit ensuite apparaître les newsgroups. Les chats rooms (parloirs ou encore IRC (Internet Relay Chat)) permettent d'interagir en temps réel et ressemblent à des conversations téléphoniques collectives (BRODIN, 2000). Et bien la virtualisation ne se limite pas aux chats ou aux conversations en temps réel, il va bien loin que ça.

La RDC est un pays en voie de développement qui se lance dans la technologie expliquée ci-haut. Hormis les services de paiement en ligne, la RDC possède autres services de payement électronique. Ces organisations offrent ce service

2

tout en restant intermédiaire financier entre les parties qui veulent bénéficier du service. En 2008 Satoshi Nakamoto nous a montré que ce système fonctionne suffisamment bien pour la plupart des transactions, mais il souffre de faiblesses inhérentes au modèle de confiance, en plus de cela, il ajoute que dans ce système les transactions totalement irréversibles ne sont pas possibles parce qu'elles ne peuvent pas éviter le conflit de médiation. En outre, le coût de médiation augmente le coût de transaction et les clients se font méfier par les commerçants en les ennuyant tout en leur demandant les informations confidentielles (Nakamoto, 2008).

Le système ci-haut est contrôlé par la banque centrale du pays. Or ces institutions possèdent les informations confidentielles de leurs clients. Théoriquement ces informations n'ont plus un sens confidentiel. Ces informations peuvent être les transactions effectuées, ou encore les informations sur la personnalité du client. Cette possession des informations est une faiblesse de la part des clients, la sécurité de ces derniers n'est plus assurée.

Un slogan français dit « liberté, égalité, fraternité », ce qui n'est pas vraiment le cas dans notre pays ; le président Abraham Lincoln en 1863, nous avait montré que nous ne sommes plus dans un gouvernement du peuple, par le peuple, pour le peuple. Nous sommes plutôt dans un gouvernement des banques, par les banques, pour les banques. Ceci est la preuve que notre système est une oligarchie politique et financière.

Dans la même optique, le prix Nobel de l'économie, Friedrich Hayek dans son ouvrage Pour une vraie concurrence des monnaies, appelant au libre arbitre monétaire et prônant l'abolition du monopole des banques centrales (Jacques, 2018).

C'est pourquoi, suite aux failles que nous avons pu prélever, liées aux institutions financières congolaise, aux services de payement virtuel ou électronique

3

de notre pays ; d'ailleurs déjà constatées depuis 2008 par Satoshi Nakamoto et aux idées de certains auteurs dites ci-haut; nous proposons un système de payement sur internet qui permettra de reduire le coût d'intermédiation presque en rien tout en eliminant l'intermédiaition entre les parties car ces dernières seront égales. Pour l'assurence dans la confidentialité des informations liées aux clients, nous proposons ce présent travail.

Christine Lagarde, directeur du FMI (Fonds Monétaire International) quant à elle, pense que l'avenir est dans le Bitcoin et les cryptomonnaies. Venant de la part d'une personne aussi importante dans la sphère économique, c'est un très bon signe pour le développement de cet écosystème (Pareyre, 2018).

C'est ainsi que, eu egard à l'observation réalisée ci-haut, nous avons pu constater qu'il n'existe aucun système en RDC qui permet d'effectuer des transactions sans une tierse de confiance, car c'est cette dernière qui augmente le frais de transaction. En remplancant leur model(confiance) par une preuve cryptographique pour la verification et validation des transactions. Il y'a lieu de se poser ces questions :

- Quelles sont les exigences fonctionnelles d'une monnaie non bancaire couplant intégrité et confidentialité ?

- Quel serait le modèle informatique représentant le mieux ce système ?

- Quelles sont les technologies adaptées pour l'implémentation de ce système dans le contexte de la RDC ?

But du travail

L'argent est au centre de toute activité sur terre, et pour y acceder a chaque fois qu'on en a besoin il lui faut un très bel usage de la part de son possesseur. Dans

4

notre cas, Cet usage peut être soit la sécurité et la confidentialité de cette richesse. Ainsi donc, le but de ce présent travail est de réaliseer un système qui jouera ce double rôle, en concevant un système pair-à-pair de payement sur internet basé sur la devise monétaire congolaise; bref une cryptomonnaie. Le système présent offrira aux participants les services que nous offrent les systèmes financières congolaises y compris ceux des services de payement virtuel congolais. Le système aura l'avantage de :

- Reduire les frais de transactions réalisées existant à un frais dérisoire ;

- Supprimer la faiblesse du model basé sur la confiance en le remplaçant par un model basé sur la preuve de travail cryptogaraphique.

- Permettres aux deux parties d'effectuer des transactions sans aide d'une tierse de confiance.

Objectifs du travail

Pour atteindre le but de ce travail, nous nous assignons les objectifs suivants :

1. Recueillir les exigences fonctionnelles d'une crypto monaie dans le contexte de la RDC

2. Proposer un modèle informatique pour le système

3. Proposer les technologies appropriées au contexte de la RDC pour implémenter et tester le système

Choix et Intérêt du sujet

La centralisation des données est l'une des faiblesses que possèdent les systèmes de payement virtuel de notre pays, du point de vue sécuritaire en informatique même si pour le moment celui-ci semble mieux fonctionner. Le frais de transaction très élevé et la confiance à un tiers pour effectuer ses transactions attirent

5

notre attention car nous avons le souci de remédier à ces problèmes. D'une part notre choix s'y porte.

Et d'autre part, pour les exigences académiques, chaque étudiant doit élaborer un projet de mémoire à la fin des études du deuxième cycle. Ce présent travail est la preuve des connaissances apprises tout au long de notre vie estudiantine.

Méthodologie du travail

Dans le présent travail, nous avons utilisé les méthodes suivantes:

- La documentation nous a aidé à comprendre les normes internationales et le

système existant sur les monnaies électroniques.

- La modélisation nous a permis de structurer les informations et activités,

modéliser la solution proposée.

- La définition des algorithmes nous a servi à définir les instructions aidant à

résoudre un ensemble des problèmes.

- Le prototypage nous a permis de réaliser le premier exemplaire du logiciel

- La simulation qui nous a permis de tester si notre système marche comme il

fallait.

Délimitation du sujet

Notre système cible un payement par internet respectant le protocole de

communication pair à pair. Pour toute transaction, celle-ci appartiendra à son

destinateur que si la transaction est validée par l'ensemble du réseau. Le système ne

sera fonctionnel que s'il y a participation active de ses utilisateurs.

Plan du travail

Ce présent travail est étalé sur quatre chapitres en dehors de l'introduction et

la conclusion générale.

6

- La revue de la littérature : Dans cette partie, nous avons présenté et défini les concepts clés liés à notre travail, mais aussi les travaux de recherches et logiciels déjà réalisés dans le cadre de notre travail, en fin nous donnons l'etat de l'art

permettra de comprendre la technique utilisée pour permettre aux deux parties d'effectuer des transactions en remplaçant le model basé sur la confiance par un model basé sur la preuve de travail cryptogaraphique.

- Méthodologie du travail : dans la méthodologie, nous avons présenté les méthodes et outils que nous avons utilisés pour atteindre nos objectifs.

- La conception de la solution : Dans cette partie, nous avons présentés les résultats

obtenus de l'analyse à partir de la modélisation des données et traitements.

- Les prototypes des résultats et implémentation : C'est la dernière partie où nous

avons présenté le test de nos algorithmes et les résultats obtenus après ce test.

PREMIER CHAPITRE : REVUE DE LA LITTERATURE

Introduction

L'informatique est une science, un ensemble des techniques de la collecte, du tri, de la mise en mémoire, de la transmission et de l'utilisation des informations. Dans un système informatique, l'information n'a de sens que si elle respecte les trois principes de la sécurité dont l'authenticité, l'intégrité et confidentialité. La technique permettant à mettre en place un tel système est la cryptographie.

Vu notre problème, visant à concevoir un système de payement sur internet, la technique expliquée ci-haut nous est très utile, d'où la cryptomonnaie. Une cryptomonnaie, appelée aussi cryptoactif, cryptodevise ou monnaie cryptographique, est une monnaie utilisable sur un réseau informatique décentralisé, de pair à pair. Elle est fondée sur les principes de la cryptographie et intègre l'utilisateur dans les processus d'émission et de règlement des transactions (arstechnica, 2013). Le terme « cryptoactif » fait référence à « des actifs virtuels stockés sur un support électronique permettant à une communauté d'utilisateurs les acceptant en paiement de réaliser des transactions sans avoir à recourir à la monnaie légale (Vercy, 2018).

En France, la Banque différencie les cryptomonnaies des titres de reconnaissance de dette. Elle les reconnaît sous la définition de « tout instrument contenant sous forme numérique des unités de valeur non monétaire pouvant être conservées ou être transférées dans le but d'acquérir un bien ou un service, mais ne représentant pas de créance sur l'émetteur » (publications.banque-france, 2018).

8

En vue d'hériter cette appellation « cryptomonnaie », le système de payement sur internet doit recourir à quelques technologies.

- Un réseau informatique totalement décentralisé dit pair-à-pair ou P2P ;

- Une technologie de stockage dit blockchain.

Dans ce chapitre, nous présentons les différents niveaux de décentralisation des réseaux P2P, les tables de hachage distribuées qui sont les principales structures de routage distribuées dans les systèmes P2P, nous présenterons aussi la technologie blockchain et ce qu'elle implique, enfin nous présenterons notre système par rapport aux systèmes de payement électronique au Congo.

Impact négatif d'une cryptomonnaie sur la masse monétaire d'un pays

Ici il est question de savoir les vraies caractéristiques d'une monnaie pour déterminer cet impact. Une monnaie l'est si, c'est un instrument d'évaluation (unité de compte), un instrument de paiement (circulation de la monnaie), et un bien (actif patrimonial). De ce trois, s'ajoute son caractère légal (VAUPLANE, 2014). Une cryptomonnaie aurait un impact sur la masse monétaire si et seulement si elle serait reconnu comme monnaie légale ; seule la monnaie légale recouvre les trois caractéristiques or une cryptomonnaie n'est pas reconnue. Si elle n'est ni une monnaie, ni un instrument de paiement, qu'est-ce ? VAUPLANE(2014) nous montre que, vu qu' elle integre le système de minage qui permet de s'en approcurer comme quand on cerchait de l'or, or celui-ci est une marchandise ; comme toute marchandise fait l'objet d'un droit de propriété, on peut juste considérer que la détention d'une unité de cryptomonnaie conduit son détenteur à disposer des caractéristiques de la propriété sur celui-ci et non posséder une monnaie.

9

Propos des systèmes informatiques

Les systèmes informatiques peuvent être classés en deux grandes catégories comme illustré dans la figure 1 : les systèmes centralisés et les systèmes distribués. Les systèmes distribués peuvent à leur tour être selon deux modèles : le modèle client/serveur plat ou hiérarchique et le modèle peer to peer qui peut être centralisé, décentralisé ou hybride ( BENSLIMANE & OUAKKOUCHE, 2016).

Figure 1 : Classifications des systèmes informatiques

Réseau P2P.

Notions.

Un client P2P ou peer est une application s'exécutant sur une machine (ordinateur, téléphone portable,..) possédant une capacité de communiquer avec le autres peers.

La communication qu'effectue ce peer avec les autres peers d'une manière décentralisée, c.à.d. n'ayant pas d'une permission ou un point centrale pour effectuer la communication comme le montre la figure ci-dessous (Goessens, 2012).

10

Figure 2: Structure du réseau

Caractéristiques des P2P.

? Tolérance aux fautes : Un réseau peer-to-peer proprement dit doit être à
mesure de gérer quelques fautes ou pannes hardware et/ou software qui peuvent survenir dans la connexion.

? L'absence d'un point central dans un réseau P2P le rend si intéressant dans la
mesure où il parvient à maintenir la disponibilité des ressources malgré l'absence de ce dernier, cette caractéristique est dite « Disponibilité ».

? Dynamisme : Les systèmes distribués peer to peer sont caractérisés par un taux
élevé d'arrivées et de départs de noeuds. Il est important que l'insertion ou le retrait d'un noeud ne soient peu coûteux.

? Auto organisation, Equilibrage de charge et mutualisation des ressources, le
système ne nécessite pas une entité externe pour revenir à son état stable ; il est possible d'équilibrer les traitements de requêtes en les répartissant sur l'ensemble des noeuds, qui partagent la même responsabilité.

? Passage à l'échelle : la principale limitation des modèles clients serveurs vient
de l'incapacité des serveurs à gérer un nombre élevé de clients et de ressources. En effet, la machine qui prend en charge l'exécution du serveur doit être suffisamment dotée en ressources de calcul, de stockage et de communication ( BENSLIMANE & OUAKKOUCHE, 2016).

11

? Contrôle et Anonymat : Il est en effet relativement aisé de contrôler le point

unique d'accès à l'information, qui est la plupart du temps clairement identifiable ; le degré par lequel les systèmes peer to peer tiennent compte des opérations non identifiées doit être pris en compte.

Problèmes du P2P.

Dans son implémentation, ce système pose certains problèmes ; la sécurité, vu que le partage s'effectue de pair en pair, le fichier en cours de téléchargement peut être infecté par un virus, et peut atteindre l'ensemble du réseau (Bartlomiej, Kshemkalyani, & Singhal, 2004).

Les noeuds lors de leur connexion au réseau, il utilise des plateformes et technologies réseaux différentes, ceci est le fait qu'il ait ce une l'interopérabilité difficile. La découverte des ressources est difficile dans ce réseau, la cause est qu'il n'y a pas de serveur central pour offrir ce service de découverte des ressources. Le nombre de clients n'est pas défini dans ce système et augmente très rapidement, cela engendre des difficultés dans le trafic et le réseau devient ainsi saturé, c'est le problème de la bande passante.

12

Architecture des réseaux P2P.

Architecture Description Avantages Désavantages

Centralisée Cette architecture est caractérisée par un index

centralisé(en zone stable) mais stockage décentralisé(en zone instable). Le principe est simple, chaque pair annonce à l'index la liste des ressources qu'il sert ; Un pair requête l'index pour connaître la liste des pairs qui servent une ressources ; Le chargement des données se fait de pair. Le cas de Napster (Steffenel, 2008)

- Performance

- Contrôle d'accès

- Single point of failure

- Passage à l'échelle

- Modèle abandonné surtout à
cause des implications légales

Décentralisée Caractérisée par un index décentralisés (en zone instable/stable) et Stockage décentralisé (en zone instable).Principes, Découverte des pairs qui servent l'index ; les pairs qui servent d'index peuvent s'annoncer (Steffenel, 2008).

Environnement P2P pur, tolérance aux fautes.

Performance dégradée sur des grands réseaux, sécurité, disponibilité, fiabilité.

Hybride Le modèle super noeud a pour but d'utiliser les

avantages des 2 types de réseaux (centralisé et décentralisé). En effet sa structure permet de diminuer le nombre de connexions sur chaque serveur, et ainsi d'éviter les problèmes de bandes passantes (BUDAN, TEDESCHI, & VAUBOURG, 2003)

Le réseau n'est plus pollué
par les trames de broadcast

Anonymat non assuré

13

Tableau 1. Architecture des réseaux P2P

Figures Architectures peer-to-peer.

Figure 5. Architecture centralisée Figure 4. Architecture Hybride Figure 3. Architecture décentralisée

14

Table de hachage

Une fonction f d'un ensemble E vers un ensemble F est dite injective si :

V(x, y) E E2, (x ? y) = ((xf) ? (yf)) Ceci garantit donc que :

V(x, y) E E2, ((xf) = f (y)) = (x = y)

Une fonction de hachage est une fonction injective d'un ensemble de clés vers un ensemble de valeurs, qui, à une chaîne d'octets de longueur quelconque associe une valeur unique (de taille fixe).

Une table de hachage représente un tableau de correspondance entre des clés et des valeurs liées par une fonction de hachage, h.

Une table de hachage distribuée (ou DHT pour Distributed Hash Table) est une table de hachage partagée entre tous les éléments actifs d'un système réparti (Fayçal, 2010).

Lorsque un client se connecte au système, il reçoit un identifiant unique dit nodeId, il en est de même pour chaque ressource objectId, pendant la requête, nodeId rechercher est dit key.

Les nodeId et objectId sont dans un même espace logique K qui correspond à l'index global de la DHT. Chaque pair est responsable d'une partie de cet espace. Cette partie sera dite tout court : la DHT du pair. Dépendamment de l'implémentation de la DHT, l'espace de hachage correspondant (et donc la DHT) peut être visualisé(e) comme une grille, un cercle (ou anneau), ou une ligne. L'implémentation de la DHT est spécifique à l'algorithme de routage du protocole mis en oeuvre. Cet algorithme va permettre de construire la DHT en associant chaque objectId au pair responsable de l'objet correspondant. En d'autres termes, étant donné une fonction de hachage h et un pair ayant une adresse IP @IP et voulant partager sur le réseau une ressource r, on a :

h(r) = k E K ; où k est l'objectId

Et h(@IP) = i E K ; où i le nodeId

15

La figure suivante représente les mécanismes de routage qui s'effectuent dans un réseau overlay basé sur une DHT.

Figure 6: DHT et mécanisme de routage dans un réseau overlay

Technologie Blockchain

Introduction.

En octobre 2008 il eut un certain Satoshi Nakamoto qui publia un livre blanc « Bitcoin : A Peer-to-Peer Electronic Cash System » dans lequel il définissait un système cryptographique pair-à-pair, le bitcoin (DOROTHE, 2017). En février 2009, il diffuse la première version du logiciel Bitcoin sur le site P2P Foundation et pour faire fonctionner le réseau, il met à contribution son ordinateur. Il génère ainsi les premiers bitcoins. Se fondant sur un nouveau « protocole », une « nouvelle » technologie. Satoshi Nakamoto venait de donner naissance à la Blockchain.

Les uses cases de la Blockchain peuvent concerner plusieurs secteurs tels que la banque et les transactions financières, les notaires et les cessions immobilières, les monopoles énergétiques sur la distribution d'électricité ou de carburants, les systèmes électoraux et de votes en général... (AUSIM, 2017).

16

Typologie de blockchaine.

Blockchain public.

Etant public, il s'agit un système de stockage où toute personne peut y accéder n'importe où dans le monde. Pour participer au processus de transaction ou au processus de consensus, il y a aucune demande de permission. Tous les participants sont égaux dans la participation au réseau.

Blockchain privée.

Contrairement au précédent, celle-ci ses membres sont connus, la gouvernance est assurée par une organisation quelconque. Elle tourne sur un réseau privé.

Blockchain Consortium (Hybride).

Il s'agit de blockchains dans lesquelles le processus de consensus (validation des transactions/blocs) est contrôlé par un nombre connu et restreint de noeuds. Certains noeuds peuvent être rendus publics (accès autorisé en lecture seule) tandis que d'autres restent privés. Elles sont plus adaptées aux contextes régulés (DOROTHE, 2017).

Fonctionnements du blockchaine.

Les transactions effectuées entre les utilisateurs du réseau sont regroupés dans une structure de données appelée bloc. Les blocs sont ordonnés et hiérarchisés dans une seule et unique chaine. Chaque bloc pointe sur le dernier bloc précédent valide. Cette chaîne est « distribuée » et « répliquée » sur tous les noeuds du réseau. Chaque nouvelle transaction et/ou Smart Contract, « en attente », sont groupés dans un nouveau bloc. Pour que ce bloc puisse être ajouté à la Blockchain, il faut qu'il soit validé. Cette validation est réalisée au travers de certains noeuds spécifiques du réseau appelés « miners ». Le rôle de ces noeuds consiste à

17

répondre à un casse-tête cryptomathématique complexe. Chaque réponse trouvée est propre à un et à un seul bloc interdisant ainsi, sa réutilisation pour la validation d'un nouveau bloc. Le problème crypto/mathématique, propre à chaque bloc, est très difficile à résoudre. Il demande d'importantes ressources de calcul et donc de ressources financières (électricité, coût de maintenance matérielle, coût du personnel, etc.). La figure ci-dessous (issue du site Blockchain France) illustre le fonctionnement d'une Blockchain. Il est à noter que, par rapport à l'original, la notion de Smart Contract (étape 1, « utilisateur A») a été ajoutée (DOROTHE, 2017).

Figure 7:Fonctionnement de la Blockchain (blockchainfrance, 2016)

Quelques concepts liés à la Blockchain.

Transaction.

Une transaction est un transfert de valeur (monnaie virtuelle, token, etc.) entre deux comptes, deux « portefeuilles ». Chaque transaction est signée avec la clé privée du compte émetteur, fournissant ainsi la preuve « mathématique » qu'elle provient bien du propriétaire du compte émetteur. La signature empêche également toutes modifications de la transaction après son émission.

18

Mining.

Chaque transaction nouvellement créée donne lieu à une « écriture » dans une Blockchain. Cette écriture entre dans le réseau par un noeud du système, qui vérifie et contrôle que sa structure est correcte au regard des spécifications du protocole implémenté et qu'elle est légitime par rapport aux écritures déjà enregistrées. Si la validation de l'écriture est satisfaite, elle est alors « mise en attente » dans une liste locale et diffusée via le réseau P2P à tous les noeuds du réseau. Dans le cas contraire, elle est rejetée.

Smart Contract.

Un « contrat intelligent » est un programme informatique autonome dont le code contrôle et conditionne, sous certaines conditions, le transfert de devises ou d'actifs entre différentes parties. Ils définissent non seulement les règles et les pénalités d'un accord de la même façon qu'un contrat traditionnel ou qu'un engagement transactionnel. Mais ils peuvent également, lorsque tous les engagements préalables à son exécution ont été respectés, faire appliquer automatiquement ces obligations sans qu'aucune des parties ne puissent s'y opposer.

Consensus.

Selon la définition de Wikipédia : « Un consensus caractérise l'existence parmi les membres d'un groupe d'un accord général (tacite ou manifeste), positif et unanime pouvant permettre de prendre une décision ou d'agir ensemble sans vote préalable ou délibération particulière ».

PoW (Proof Of work).

Proof of Work ou preuve de travail en français est un mécanisme de validation d'un bloc qui repose sur la résolution « d'un problème cryptomathématique complexe ». Le processus de résolution est appelé mining et on parle de miners.

19

Autres travaux et Système de payement électronique et sur internet en RDC.

Les Systèmes de payement électronique.

Le payement électronique en RDC a déjà été réalisé par certaines entreprises de télécommunication, notamment Airtel avec Airtel money, Vodacom avec m-pesa, Orange avec Orange money, Tigo avec Tigo-cash. Les services de payement que rendent ces institutions permettent à leurs utilisateurs de déposer et de retirer de l'argent sur leur compte stocké sur leur phone portable, et d'en envoyer en utilisant un numéro d'identifications personnelles (PIN) et un sms sécurisé. Cela permet de payer des biens et service et de réclamer des versements réguliers. Les usagers se voient prélever une petite commission lorsqu'ils envoient ou retirent de l'argent avec le système.

Les Système de payement sur internet.

Le PayWebPhone.

Ce mot est un sigle des mots qui signifie Payer via son téléphone Sur le Web. Effectuant une alliance Web/GSM, le PayWebPhone est un système qui permet de réaliser des payements sur internet. Par sa facilité, ce système peut se faire intégrer dans n'importe quel système de site internet de vente afin de permettre la réception des payements de ses clients à distance. Avec ce système, on a plus besoin d'avoir un compte bancaire pour réaliser ses achats sur le net, le simple porte-monnaie électronique suffit pour réaliser les opérations de vente. Cette plateforme congolaise de paiement est devenue équivalente au célèbre PayPal, la seule différence est que, pour PayPal il faut avoir un compte bancaire alors que ce dernier, il faut avoir un compte des plateformes mobiles Banking installés en RD (M-Pesa, Airtel Money ou Tigo Cash).

EasyPay.

EasyPay, toujours dans le cadre des payements sur internet, ce système informatique facilite un payement à distance qui s'oriente dans la facturation de consommation en mode

20

post paiement, le mode prépaiement facilite l'achat des tickets des abonnés de la SNEL (Kas, 2017). C'est ainsi que ce système offre à ses utilisateurs une plateforme qui est sécurisée et ayant la possibilité de les lier à leur compte mobile money tout en leur permettant un moyen de paiement en ligne avec leurs comptes mobile money.

Les payements électroniques ont un peu boosté notre économie monétaire, cela est un éloge que l'on présente pour ces systèmes informatiques. Mais comme la plupart des institutions financières, d'une manière générale, la centralisation des données ou encore le rôle d'intermédiation dans les transactions que jouent ces institutions augmente le cout de transaction. Avec ces systèmes, il est impossible d'effectuer une transaction d'une très petite somme car le coût est élevé.

D'une manière spécifique, les systèmes payement sur internet présentés ci-haut fonctionnent suffisamment bien, mais ils présentent une très grande faiblesse liée à leur dépendance aux autres systèmes de payement déjà existant(les Banking mobile en RDC). Vu que ces systèmes sont dépendants d'autres, la disparition de ces Banking mobile en RDC (Airtel-money, m-pesa,...) peut aussi entraîner la disparition de ces systèmes de payement sur internet.

Contrairement aux systèmes que nous avons présentés ci-haut, notre système est indépendant de tout organe gouvernemental ou bancaire. Sa qualité indépendante, elle nous a permis de lui rendre totalement décentralisé en réduisant le coût d'intermédiation des systèmes existant à un moindre coût tout en assurant la confidentialité des informations de transactions qui est la clé du système.

Etat de l'art sur les cryptomonnaie

Les cryptomonnaies sont apparues dans l'objectif de pallier aux problèmes que possèdent nos institutions financière traditionnel basés sur un modèle de confiance en le

21

remplaçant par une preuve de travail cryptogaraphique. Jean-Guillaume Dumas et Pascal Lafourcade l'ont défini comme est une monnaie dématérialisée et souvent décentralisée utilisant des mécanismes cryptographiques pour valider ses transactions (Dumas & Lafourcade, 2010).

La particularité que les cryptomonnaies ont en commun se résume sur le fait d'effectuer une transaction sans intermédiaire quelconque pour effectuer la validation tout en respectant un certain mode de sécurité sur internet dont : l'anonymat dans la transaction et, effectuer des transactions en principe infalsifiables et inviolables. Parmi l'ensemble des cryptomonnaies disponibles, nous en avons sélectionnés deux majeurs en fonction de leur capacité à permettre notre présentation mais voyons d'abord ce que signifient ces modes de sécurité.

Modes de sécurité sur internet.

L'anonymat dans la transaction.

Le modèle bancaire traditionnel réalise un niveau de protection de la vie privée en limitant l'accès aux informations aux personnes concernées et au tiers de confiance. La nécessité d'annoncer toutes les transactions publiquement écarte cette méthode, mais la protection de la vie privée peut encore être assurée en rompant le flux d'information à un autre endroit : en gardant les clefs publiques anonymes. Le public peut voir que quelqu'un est en train d'envoyer un montant à quelqu'un d'autre, mais sans information liant la transaction à quelqu'un. Ceci est similaire au niveau d'information remis par la bourse, où les heures et montants des échanges, le «carnet d'ordres», est publique, mais sans dire qui sont les parties.

En guise de pare-feu additionnel, une nouvelle paire de clefs pourrait être utilisée pour chaque transaction afin de les garder non liées à un propriétaire commun. Toutefois, la liaison est inévitable avec les transactions multi entrées, qui révèlent nécessairement que leurs entrées étaient détenues par un même propriétaire. Le risque est que si le propriétaire d'une clef est

22

révélé, les liaisons peuvent révéler d'autres transactions qui ont appartenu au même propriétaire (Nakamoto, 2008).

Transactions infalsifiables et inviolables.

Pour lutter contre la contrefaçon, Nakamoto y en avait pensé, il définit une pièce (de monnaie) électronique dans son livre blanc comme une chaîne de signatures électroniques. Où chaque propriétaire transfère la pièce au suivant en signant le hachage de la transaction précédente, de la clef publique du prochain propriétaire et en ajoutant tout cela à la fin de la pièce. Un bénéficiaire peut vérifier les signatures pour vérifier la chaîne de propriété.

Figure 8: chaîne des transactions électroniques (Nakamoto, 2008) Pour réaliser tous ceci, nous avons pu utiliser :

? RSA : est une cryptographie à clé publique, c'est-à-dire qu'il y a manipulation de deux
clés (une publique et une autre privée). Le mot RSA est tiré de ses concepteurs (Rivest, Shamir et Adleman). Sa conception est basée sur le calcul exponentiel, une fonction unidirectionnelle est la base de sa sécurité; cette fonction se réalise par le calcul du produit de 2 nombres premiers (Dumont, 2010). Ce système cryptographique procède par l'utilisation de deux clés d et e, interchangeables (Müller, 2007).

Le chiffrement se réalise selon la formule : C = M e mod n

23

Et le déchiffrement par : M = Cd mod n. Avec M : Message en clair et C : message chiffré (FERRADI, 2016).

? Fonctions de hachage : sont des fonctions mathématiques qui permettent à partir de
n'importe quelle donnée numérique, d'obtenir une empreinte, qui est une petite chaine de bits.

- SHA-256 et SHA-1 ; En 1993 l'algorithme SHA (Secure Hash Algorithm) vit jour
sous la direction de NIST et NSA, et a été révisé en 1995 pour étendre ses capacités sécuritaires. Ses spécificités sont publiées dans le RFC 3174, la norme est SHS (Secure Hash Standard).

Exemples des cryptomonnaies

Bitcoin.

C'est en novembre 2008, qu'il y eut une personne ou encore un groupe de personnes connu sous le pseudonyme de Satoshi Nakamoto que cette idée fut présentée pour la première fois (Nakamoto, 2008).

Le système fonctionne indépendamment d'une autorité centrale, ni administrateur unique. C'est le consensus de l'ensemble des noeuds du réseau qui gère le système, c'est grâce à ce consensus que s'effectue la gestion décentralisée du système. Sa capitalisation étant supérieure à 200 milliards de dollars début décembre 2017 fait de lui la plus importante monnaie cryptographique décentralisée (coinmarketcap, 2012).

Clefs publiques et privées.

Utilisant la cryptographie à clé publique, le portemonnaie bitcoin gère un ensemble de paires de clefs privé/publique. En général, On choisit aléatoirement un nombre qui devient la clef privée (k). C'est à partir de cette dernière qu'on génère La clef publique (K), ceci se réalise en utilisant la multiplication en courbes elliptiques, c'est une fonction cryptographique non-inversible. Et ensuite, pour avoir l'adresse(A), on utilise un hash cryptographique pour la générer et cela à partir de la clef publique (Antonopoulos, 2016).

24

Figure 9. Clef privée, clef publique et adresse bitcoin (Antonopoulos, 2016)

La cryptographie sur les courbes elliptiques.

C'est cryptosystème est d'un type particulier de cryptographie asymétrique (i.e. à clef privée/clef publique). Elle se base sur le problème du logarithme discret dans le groupe correspondant à la courbe elliptique (que l'on définit en introduisant les notions d'addition de points sur la courbe, et de multiplication de point par un entier). An elliptic curve est un exemple de courbe elliptique, similaire à celle utilisée par bitcoin.

Figure 10. An elliptic curve

Transactions.

Les transactions sont la partie la plus importante de tout système de payement. Tout système de payement sur internet sous le protocole P2P, vise impérativement à assurer que des transactions puissent être créées, diffusées sur le réseau, validées, et enfin ajoutée au registre global des transactions (la blockchain).

Son cycle de vie commence avec sa création. Elle est ensuite signée avec une ou plusieurs signatures signifiant l'autorisation de dépenser les fonds référencés dans la transaction.

25

Le réseau Bitcoin.

L'architecture réseau pair-à-pair.

Bitcoin est une architecture réseau pair-à-pair au-dessus d'Internet. Les noeuds d'un réseau pair-à-pair à la fois fournissent et consomment des services, la réciprocité agissant comme une motivation pour participer. Bref, les P2P sont composées d'un ensemble d'entités partageant un ensemble de ressources, et jouant à la fois le rôle de serveur et de client (Benoit, 2006).

Découverte du réseau.

Quand un nouveau node démarre dans le réseau P2P, il doit découvrir les autres noeuds sur le réseau dans le but de participer aussi au système. Sur ce, le processus commence quand le nouveau noeud cherche à trouver au moins un autre noeud existant sur ce réseau et s'y connecter.

Dans le réseau bitcoin, la connexion à un pair connu s'établit sous TCP sur le port 8333 habituellement (le port généralement connu comme étant celui utilisé par bitcoin), ou à un autre port si disponible.

Ethereum.

Grâce au langage Turing-complet, ce protocole d'échanges décentralisés permet la création des contrats intelligents par ses utilisateurs. Ces contrats déployés et consultables publiquement dans une blockchain sont basés sur un protocole informatique permettant de vérifier ou de mettre en application un contrat mutuel.

« Ether » est unité de compte utilisé par le réseau Ethereum comme moyen de paiement de ces contrats. « ETH » est le sigle qu'utilisent les plates formes d'échanges. Précédé par le Bitcoin, Ethereum, avec une capitalisation supérieure à 13 milliards d'euros en Janvier 2019 est la deuxième plus importante monnaie cryptographique décentralisée. Comme le bitcoin, Il utilise actuellement le procédé de minage de type Proof-of-Work qui sera bientôt

26

changé dans version ultérieure du logiciel afin de limiter la consommation d'électricité du réseau (version ultérieure du logiciel prendra le nom de Serenity) en un minage de type Proof-of-Stake.

Figure 11: Logo du projet Ethereum, utilisé pour la première fois en 2014

CHAPITRE DEUXIÈME

MÉTHODES, MATÉRIELS ET LANGAGES

Ce chapitre est consacré à la présentation des méthodologies et outils du travail que nous utilisons pour atteindre nos objectifs. Notre objectif principal est de concevoir un système pair-à-pair de payement sur internet basé sur la devise monétaire congolaise. Pour y arriver, il nous faut combiner quelques approches méthodologiques de la recherche technologique en informatique. Etant donné que le fondement d'une méthode c'est l'objet de la science dans la quelle l'on fait sa recherche.

Méthodes

La Documentation.

C'est une démarche méthodologique qui permet d'identifier, récupérer et traiter des informations sur un sujet donné. « Savoir se documenter, c'est savoir où et comment trouver l'information, savoir poser les bonnes questions, savoir de quelle information on a besoin, savoir la lire, la comprendre, la critiquer, évaluer si elle répond à ses besoins et savoir la gérer » (Laplante, 2011).

En bref, cette méthodologie nous a aidé à comprendre les normes internationales et le système existant de sur les monnaies électroniques

La Modélisation.

Cette méthodologie nous est très utile car réaliser le modèle conceptuel d'un système nécessite de concevoir une abstraction de celui-ci. Le système abstrait obtenu doit satisfaire deux conditions : il doit avoir un caractère de ressemblance avec le système réel ; il doit aider à la compréhension du système réel.

28

Ainsi donc, pour le développement de notre système, nous avons choisis la méthode « PU (processus unifié) » ; un processus est une séquence d'étapes, partiellement ordonnées, qui participent à l'obtention d'un système logiciel ou à l'évolution d'un système existant. Son objectif est de produire des bons logiciels, ayant une qualité qui répond aux besoins de leurs utilisateurs dans un court délai et à des coûts moindres (Gérard, 2008). En bref, on dirait que le PU est un processus de développement logiciel itératif, centré sur l'architecture, piloté par des cas d'utilisation et orienté vers la diminution des risques. Le processus de développement d'une application passe par les étapes suivantes :

- Analyse et spécification des besoins ;

- Conception ;

- Implémentation ;

- Test.

Dans le chapitre qui suit, nous développerons uniquement les deux premières étapes, à savoir l'analyse et la spécification des besoins ainsi que la conception tout en choisissant UML (Unified Modeling Language) comme langage de modélisation.

UML, se définit comme un langage de modélisation graphique et textuel destiné à comprendre et à définir des besoins, spécifier et documenter des systèmes, esquisser des architectures logicielles, concevoir des solutions et communiquer des points de vue. UML modélise l'ensemble des données et des traitements en élaborant différents diagrammes. Sur ce, nous avons choisi quelques diagrammes enfin de développer notre système : Diagramme de cas d'utilisation, diagramme de séquence, diagramme de déploiement et diagramme de classe.

Les deux autres étapes seront développées dans le dernier chapitre.

29

La définition des algorithmes.

Dans cette partie méthodologique, nous avons eu à définir les instructions qui nous ont permis de résoudre notre problème. Nous avons premièrement commencé par l'analyse des problèmes mettre en place une structure de programmation. En comme accord avec (Nogier, 2008) qui dit qu'n algorithme est une méthode générale pour résoudre un ensemble de problèmes. Il est dit correct lorsque, pour chaque instance du problème, il se termine en produisant la bonne sortie, c'est-à-dire qu'il résout le problème posé. Nous allons ici mesurer l'efficacité de notre algorithme notamment par sa durée de calcul, par sa consommation de mémoire RAM (en partant du principe que chaque instruction a un temps d'exécution constant), par la précision des résultats.

Le prototypage.

Le prototypage consiste à simuler l'interface d'un produit, d'une manière totalement complète ou presque complète donc partielle, le but est d'avoir des informations sur le fonctionnement interactif des utilisateurs avec le futur produit. Son évaluation (du prototype) permet donc d'examiner le fonctionnement de logiciel du point de vue utilisateur. Il s'effectue d'une manière suffisante dans le cycle de développement, car, le prototypage facilite la détection les problèmes d'utilisabilité et de examiner les besoins des utilisateurs avant le codage complet, et ainsi d'optimiser le processus et les coûts de développement. En fonction du stade de développement et des aspects à tester, le prototypage peut être réalisé selon différents degrés de fidélité vis-à-vis de l'application finale, et sur différents supports. Différentes techniques permettent de mesurer l'utilisabilité à partir d'un prototype (Baccino, 2009).

30

La simulation.

Cette dernière nous a permis de tester si notre système marche comme il fallait, elle est dite une série de calculs effectués sur un ordinateur et qui produit un phénomène physique. Sa finalité est la description du résultat de ce dernier phénomène, comme s'il s'était réellement déroulé. Cette représentation peut être une série de données, une image ou même un film vidéo (futura-sciences).

Ajoutez les techniques, les matériels et les langages de programmation utilisés

Environnement logiciel

NetBeans.

NetBeans est un environnement open-source de développement intégré (IDE) pour le développement avec Java, PHP, C ++, et d'autres langages de programmation. NetBeans est également désigné comme une plate-forme de composants modulaires utilisés pour développer des applications de bureau Java. NetBeans est codé en Java et fonctionne sur la plupart des systèmes d'exploitation avec une machine virtuelle Java (JVM), y compris Solaris, Mac OS et Linux. NetBeans gère les fonctionnalités et les composants des plateformes suivantes :

- Paramètres utilisateur ;

- Fenêtres (placement, apparence, etc.) ;

- NetBeans Visual Library ;

- Stockage ;

- outils de développement intégrés ;

- Assistant-cadre. (techopedia, netbeans, 2019)

31

Outils Utilisés.

Eclipse IDE.

Eclipse est un IDE, (Integrated Development Environment), c'est-à-dire un logiciel qui simplifie la programmation en proposant un certain nombre de raccourcis et d'aides à la programmation. Il est développé par IBM, et est gratuit et disponible pour la plupart des systèmes d'exploitation (Cervelle, 2019).

JDK.

(Java Développement Kit) Un environnement de développement logiciel Java d'Oracle. Il comprend la JVM, compilateur, débogueur et d'autres outils pour développer des applets et des applications Java. Chaque nouvelle version du JDK ajoute des fonctionnalités et des améliorations à la langue. Lorsque les programmes Java sont développés dans le cadre de la nouvelle version, l'interpréteur Java (Java Virtual Machine) qui l'exécute doit être également mis à jour (pcmag, 2019).

JRE.

L'environnement d'exécution Java (JRE) est un ensemble d'outils logiciels pour le développement d'applications Java. Il combine la machine virtuelle Java (JVM), les classes de base de la plate - forme et les bibliothèques de support. JRE fait partie du kit de développement Java (JDK), mais peut être téléchargé séparément. JRE a été initialement développé par Sun Microsystems Inc., une filiale en propriété exclusive d'Oracle Corporation. Aussi connu sous runtime Java (techopedia, java-runtime-environment-jre, 2019).

Langage de programmation.

Java.

Java est un langage de programmation et une plate-forme informatique créée par Sun Microsystems en 1995. Il s'agit de la technologie sous-jacente qui permet l'exécution de

32

programmes dernier cri, notamment des utilitaires, des jeux et des applications professionnelles. Le langage Java est utilisé sur plus de 850 millions d'ordinateurs de bureau et un milliard de périphériques dans le monde, dont des périphériques mobiles et des systèmes de diffusion télévisuelle.

XML.

Le XML ou eXtensible Markup Language est un langage informatique de balisage générique. Un langage de balisage est un langage qui s'écrit grâce à des balises. Ces balises permettent de structurer de manière hiérarchisée et organisée les données d'un document. L'objectif du XML est de faciliter les échanges de données entre les machines. Mais à ça s'ajoute un autre objectif important : décrire les données de manière aussi bien compréhensible par les hommes qui écrivent les documents XML que par les machines qui les exploitent. Le XML se veut également compatible avec le web afin que les échanges de données puissent se faire facilement à travers le réseau internet. Finalement, le XML se veut standardiser, simple, mais surtout extensible et configurable afin que n'importe quel type de données puisse être décrit. En résumer, le XML est un langage de balisage générique qui permet de structurer des données dans l'objectif de les partager.

CHAPITRE TROISIEME

MODELISATION DU SYSTEME

Introduction

Tout en présentant l'idée générale de notre système, ce présent chapitre est subdivisé en deux parties ; la première consiste à faire une présentation du système tout en présentant les objectifs et services que le système sera à mesure de réaliser.

En deuxième lieu, nous présentons notre façon de procéder (méthode) pour présenter l'analyse et la spécification des besoins, suivie de la conception du système. L'étape d'analyse et de spécification des besoins offre une description de l'application suivie des besoins fonctionnels et non fonctionnels.

EXIGENCES FONCTIONNELLES DU SYSTEME

L'objectif du système.

L'objectif de notre travail est de simuler un système pair-à-pair de payement sur internet basé sur la devise monétaire congolaise tout en respectant les modes de sécurité des cryptomonnaies sur internet. L'unité de compte utilisé par ce présent système nous l'avons dénommé « talentcoin »

Contrairement au protocole Bitcoin, qui, sa découverte des noeuds s'effectue en interrogeant un DNS tout en utilisant un certain nombre de graines DNS (DNS seeds), des serveurs DNS qui fournissent une liste d'adresses IP de noeuds bitcoin. Nous avons pensé utiliser la DHT pour la découverte de nouveaux noeuds. La connaissance géographique des noeuds n'est pas nécessaire.

Le système implémente certaines fonctionnalités que nous décrivons ici-bas :

34

Créer Wallet.

Une foi l'application lancée pour la première fois, elle demande quelques informations pour la sécurité complémentaire du wallet; l'application génère automatiquement une paire des clés pour la sécurité lors de l'échange des informations sur le réseau.

Authentification.

L'authentification est l'une des fonctionnalités très nécessaires dans ce système, car une fois ses clés volées ; c'est tous les coins du wallet qui sont bien volés. Il existe deux types d'authentifications :

? Au niveau de l'application : permet d'accéder à l'interface de l'application

? Au niveau du réseau : effectué automatiquement par le système, toute action au niveau

du réseau est vérifié par l'ensemble du système.

Recevoir des talentcoins.

Cette fonctionnalité permet à l'utilisateur de se procurer le talentcoin, il peut s'effectuer à partir du site web du système ou à partir d'un autre utilisateur d'une manière traditionnelle en lui donnant une valeur physique et son adresse d'indentification sur le réseau.

Envoyer des talentcoins.

On peut vendre les coins que nous possédons dans notre wallet, sur ce, il faut avoir l'adresse du destinateur.

Miner des talentcoins.

Le minage est la fonctionnalité qui permet de sécuriser le réseau. Cette fonctionnalité est rémunérée par une petite somme de coin pour sa preuve de fonctionnalité.

35

Besoins Fonctionnels du système.

Les différentes fonctionnalités qu'offre le système, y sont toutes accédées après une authentification sauf pour celle de la création de wallet. Cette fonctionnalité permet d'assurer l'authenticité de l'acteur. Nous possédons trois acteurs pour le système ; « Le client » ; celui-ci est toute personne voulant participer au fonctionnement du système ; « L'utilisateur » est celui qui participe déjà ; enfin nous avons « le système de payement sécurisé ».

? Fonctionnalité de créer wallet : Permet de créer un portefeuille afin de participer sur le
réseau talentcoin.

? Fonctionnalité Authentification : cette fonctionnalité permet à l'utilisateur d'assurer sa
sécurité au niveau logiciel

? Fonctionnalité Achat talentcoin : Permet de se procurer des talentcoins sur le réseau

? Fonctionnalité Vente talentcoin : Permet de vendre ses coins que l'on possède dans

son portefeuille à un autre utilisateur dans le réseau.

? Fonctionnalité minage : Cette fonctionnalité est celle qui permet de sécuriser
l'ensemble du réseau, en validant les transactions effectuées sur le réseau.

Besoins non-fonctionnels du système.

Les besoins non fonctionnels décrivent toutes les contraintes auxquelles est soumis le système pour sa réalisation et son bon fonctionnement.

? Existence d'un réseau ;

? Ergonomie attractive et efficace : le design des interfaces doit permettre une

identification immédiate pour permettre à l'utilisateur d'accéder facilement aux différentes fonctionnalités du système ;

? Rapidité du traitement : le système doit assurer une rapidité de traitement pour qu'elle
s'approche au maximum d'une exécution en temps réel.

Figure 12: Diagramme de cas d'utilisation

36

Diagramme de cas d'utilisation.

Règles de gestion fonctionnelle.

Notre modèle est alimenté par les règles suivantes :

1. Toute fonctionnalité ne pourra être utilisée que s'il y a une authentification de la part
de l'utilisateur, sauf la fonctionnalité de créer wallet.

2. Une fois une authentification validée, l'utilisateur peut :

- Recevoir des talentcoins

- Envoyer des talentcoin

- Miner des talentcoin

37

Description textuelle des cas d'utilisation. Le cas « créer wallet»

Tableau 2. cas créer wallet

Description

Titre Créer wallet

Résumé Permet au client de se procurer un portefeuille pour effectuer les

opérations que réserve le système.

Acteurs Le client

Précondition L'acteur doit se procurer l'application mobile ou desktop selon sa

plateforme

Scenario Nominal 1. Lancement du setup de l'application

2. L'application demande à l'acteur quelques informations

3. L'utilisateur fournit les informations nécessaires pour la sécurité de l'application

4. L'application effectue la configuration de l'identité de l'acteur

5. Une fois configuration finie, le wallet est créé

6. Fin

Scenario Alternatif 1. si le client fournit les informations invalides, le scénario

reprend de 2

Le cas « Authentification »

Tableau 3. Le cas Authentification

Description

Titre Authentification

Résumé En entrant un login et mot de passe, ce cas Permet une authentification

38

de l'utilisateur pour accéder aux menu du système

Acteurs L'utilisateur

Précondition L'utilisateur doit avoir un compte sur l'application

Scenario Nominal 1. L'utilisateur lance l'application

2. L'application suggère à l'acteur le menu d'authentification

3. L'utilisateur fourni ses identifiants à l'application

4. L'application vérifie si l'utilisateur valide

5. Ouverture de l'interface d'accueil

6. Fin

Scenario Alternatif 1. si le client fournit les informations invalides, le scénario

reprend de 2

Le cas Recevoir talentcoins

Tableau 4: Le cas Recevoir talentcoins

Description

Titre Recevoir talentcoins

Résumé Permet à l'utilisateur de demander de lui envoyer des nouveaux

talentcoins.

Acteurs L'utilisateur

Précondition L'utilisateur doit se connecter

Scenario Nominal 1. L'utilisateur lance l'application

2. L'utilisateur effectue l'authentification

3. L'utilisateur accède à l'interface d'accueil où il choisit le menu recevoir.

4. L'utilisateur fournit l'adresse de destination

5. Il donne le nombre de talentcoins qu'il veut s'en procurer puis envoie les informations.

6. Fin

39

Scenario Alternatif 1. si authentification invalide, le scénario reprend de 2

2. si le système ne reconnaît pas l'adresse de destination, le

scénario reprend de 4 ;

Le cas Envoyer talentcoins

Tableau 5: Le cas Envoyer talentcoins

Description

Titre Envoyer talentcoins

Résumé Permet à l'utilisateur d'effectuer une transaction vers un autre compte

d'utilisateur

Acteurs L'utilisateur

Précondition L'utilisateur doit avoir un nombre de talentcoins nécessaire pour la

transaction

Scenario Nominal 1. L'utilisateur lance l'application

2. L'utilisateur effectue l'authentification

3. L'utilisateur accède à l'espace Envoyer des talentcoins

4. Il fournit l'adresse vers lequel il veut effectuer la transaction et le nombre de talentcoins qu'il veut envoyer puis envoie.

5. La transaction est ajoutée dans un block

6. Le réseau valide la transaction

7. Le destinateur reçoit la transaction

8. Fin

40

Scenario Alternatif 1. si l'authentification invalide, le scénario reprend de 2

2. si l'adresse d'envoi est invalide, le scénario reprend de 4 ;

3. si le réseau invalide la transaction, le scénario reprend de 4

Le cas miner talentcoins

Tableau 6: le cas miner talentcoins

Description

Titre Miner talentcoins

Résumé Comme la chambre de compassassions pour les banques

traditionnelles, ce cas permet de valider les transactions et de créer des nouveaux talentcoins. Il permet de sécuriser le réseau talentcoins.

Acteurs L'utilisateur

Précondition La machine ayant configuré cette fonctionnalité doit rester allumée

tout le temps pour effectuer le minage.

Scenario Nominal 1. La machine effectue l'opération mathématique de validation

de nouvelles transactions regroupées dans un block

2. Le block validé est ajouté à la blockchain et transmises à l'ensemble du réseau

3. Le réseau récompense l'utilisateur de nouvelles monnaies

4. Fin

Scenario Alternatif 1. si les transactions validées les sont déjà par une autre machine,

le scénario reprend de 1

41

CONCEPTION DU SYSTEME

Diagramme de séquences.

Créer wallet.

Nous commençons par la création du wallet de l'acteur qui veut participer au système (client). Le système possède deux types de wallet, l'un qui peut être créé sur une plateforme web et l'autre sur une plateforme desktop ou mobile. Ici nous présentons comment se présente le scénario sur toute les plateformes.

Figure 13: diagramme de séquence "créer Wallet"

Authentification.

Cette section montre le scénario pour l'authentification dans le but d'accéder à son espace utilisateur afin d'avoir la facilité de bénéficier aux fonctionnalités du système. Une authentification réussit est une inclusion du client ayant déjà créé un wallet (Desktop, mobile, web) (utilisateur).

42

Figure 14: diagramme de séquence " authentification "

Recevoir talentcoins.

Dans la figure présentée ici-bas, nous présentons le scénario pour l'opération recevoir des talentcoins. L'authentification est une précondition de cette séquence.

Figure 15: diagramme de séquence " Recevoir talentcoins "

Vendre talentcoins.

Cette séquence est autrement dite la transaction, elle présente l'ensemble des séquences qui interviennent dans la fonctionnalité de vente des talentcoins. La figure ici-bas nous décrit cette opération d'une manière séquentielle.

43

Figure 16: diagramme de séquence " Envoyer talentcoins "

Miner talentcoins.

Cette section permet de montrer comment s'effectue la validation d'une transaction d'un pair à un autre dans le réseau Talentcoin tout en les ajoutant dans un bloc. Cette fonctionnalité est celle qui permet de créer des novelles monnaies et trouver le prochain block. Ces monnaies créées sont une récompense de la validation. Présentée dans la figure ci-dessous.

44

Figure 17: diagramme de séquence " Miner talentcoins "

Diagramme de déploiement.

Un utilisateur est enregistré au moins dans une DHT pour participer aux fonctionnalités du réseau Talentcoin.

45

Figure 18: Diagramme de déploiement du réseau Talentcoin

? DHT : celle-ci possède la liste d'adresse IP des pairs connectés au réseau « dht.xml»

? Utilisateurs : Ceux-ci possèdent tous :

- Toutes les transactions valides regroupées par bocks puis celui-ci est ajouté à la chaine

de blocks« blockchains.xml»

- Les notifications des transactions auxquelles il est lié ainsi que du
système « notifications.xml».

- La configuration de l'application « configurations.xml»

Diagramme de classe.

Règles de gestion fonctionnelle.

Les Règles de gestion fonctionnelle sont des normes qui s'appliquent systématiquement dans le système lorsque l'acteur effectue une opération quelconque (DIGALLO, 2001).

1. Un utilisateur possède un nom d'utilisateur, un mail et un mot de passe qui lui
permettent de s'identifier au niveau applicatif et enfin il possède une adresse lui permettant de recevoir des nouvelles monnaies. ; une adresse IP qui lui attribuée pour chaque connexion ;

2.

46

Un utilisateur peut ou ne pas effectuer des transactions ; celle-ci possède une date de transaction, une adresse du destinateur, la somme et la signature de l'émetteur de la transaction ;

3. Il existe deux type de transactions ; les entrées et les sorties.

4. Une transaction réalisée est automatiquement ajoutée dans un bloc.

5. Un block possède un index permettant de savoir le numéro du bloc, un nonce qui sert lors du minage du bloc, un timeStamp qui stock la date de création du bloc, un hash pour assurer l'intégrité du bloc, un previousHash pour lier le block courant au précédent et une signature pour signaler l'utilisateur ayant trouvé le bloc et ne coinbase.

6. En fin, un utilisateur peut ou ne pas avoir une notification, qui possède la date, la description, un identifiant et un type.

Diagramme de classe de conception.

Figure 19: Diagramme de classe

47

Base des données.

Afin de constituer notre base de données, nous sommes parti de quelques six principes

de transformation (Transformation des classes, Transformation de l'héritage, Association un-

à-plusieurs, Associations plusieurs-à-plusieurs ou classes-associations, Associations un-à-un,

Composition) (Masivi, 2018).

Ces règles nous ont permis d'avoir ce qui suit :

Utilisateurs (userName, password, adressIp, adressTalentcoin) ;

Transactions (adresseDestinataire, dateTransaction, signature, somme) ;

Blocks (index, hash, coinbase, previousHash, nonce, timeStamp, Transaction);

Notifications (id, date, type, description) ;

recevoirNotification(idNotification#, idUtilisateurs#) ;

CHAPITRE QUATRIEME : LES PROTOTYPES DES RESULTATS ET
IMPLEMENTATION

Dans ce chapitre nous allons présenter le système que nous avons développé(Talentcoin), quelques interfaces d'implémentation de l'application Talentcoin et leurs algorithmes, et nous achèverons le chapitre par une discussion de résultats.

Architecture du système.

Le schéma ci-dessous représente l'architecture du système et les services qui lui sont intégrés :

Figure 20: Architecture du système

49

Dans ce qui suit, nous allons présenter d'une manière séquentielle comment les scénarios se suivent dans notre système de payement. Vu que le système marche selon le protocole P2P, quand on lance l'application cliente sur une machine, celle-ci commence par partager avec sa DHT une paire de clé pour le chiffrement des données puis procède à sa consultation tout en déchiffrant avec la clé publique de la DHT pour se connecter à l'ensemble du réseau.

Demande de connexion au réseau d'un pair à la DHT

Figure 21: Demande de connexion au réseau d'un pair à la DHT Connexion d'un utilisateur à un autre

Figure 22: Connexion en P2P

50

Réalisation du système

Interface et algorithme d'envoie des talentcoins.

Figure 23: Interface d'envoie des talentcoins

Figure 24: Algorithme d'envoie des talentcoins

Pour effectuer l'envoie des talentcoins, il est impératif d'avoir au moins une quantité disponible dans son portefeuille en fournissant l'adresse de destination et le montant d'envoie ; la description est facultative.

51

Interface et algorithme de notification de réception.

Ici nous montrons l'interface de réception d'une quantité de talent coin envoyée par une adresse figurant sur la figure ici-bas, ainsi que son algorithme.

Figure 25:Interface de notification de réception

Figure 26: Algorithme de réception

52

Interface et algorithme pour minage.

Cette interface est celle qui représente la fonctionnalité du minage, pour miner des talentcoin et participer à la sécurité du réseau, l'utilisateur doit activer cette fonctionnalité en cliquant sur le bouton d'activation. La partie algorithme nous montre le schéma du minage.

 
 

Figure 27: Interface de minage

 

Figure 28: Algorithme pour minage

53

Protocole d'experimentation et discussion du resultat du travail.

Notre experimentation était réalisée dans un réseau local de quatre machines :deux machines sous windows 8 et deux autres sous seven. Pour arriver arriver a faire fonctionner la communication de ces machines, nous avons pû desactiver leur système de par feu.

Dans le domaine de monnaies électroniques et sur internet en RDC, la plupart des systèmes sont réalisés avec une architecture centralisée. Ce qui rend la gestion très facile surtout la validation des transactions, mais ce genre de système cours des très grands dangers au niveau sécurité informatique. Cette centralisation leur donne une autorité sur la fixation de frais des transactions, ce qui fait que ces systèmes ont un frais de transaction très élevé.

Quant à notre système, qui avait pour objectif principal de concevoir un système pair-à-pair de payement sur internet basé sur la devise monétaire congolaise; bref une cryptomonnaie. En particulier nous avons voulu réduire les frais de transactions réalisées existant à un frais dérisoire ; supprimer la faiblesse du model basé sur la confiance en le remplaçant par un model basé sur la preuve de travail cryptogaraphique. Et en fin permettre aux deux parties d'effectuer des transactions sans aide d'une tierse de confiance.

C'est ainsi que nous sommes parvenus à offrir les exigences fonctionnelles d'une crypto monaie, nous avons proposer un modèle informatique pour le système ainsi les technologies appropriées au contexte de la RDC pour implémenter et tester le système.

Tout ceci en respectant le protocole de payement sur internet en pair-à-pair.

C'est ainsi que nous sommes parvenus à atteindre nos objectifs après le test des algorithmes que nous avons implanté dont : l'algorihme d'envoie de valeur en p2p, l'algrithme de reception et de minage des blocks.

Néamoins, pendant la réalisation de notre travail, nous nous étions affrontés à certains problèmes ; la banque centrale du congo ne reconnait pas la valeur que contient une cryptomonnaie .

54

Nous sommes parvenu à réaliser une transaction entre deux noeuds sur un réseau local sans serveur central et effectuer sa validation en P2P. Pour que le réseau fonctionne, il faut une participation des noeuds de minage, qui jouent le role de chambre de compensation comme pour les banques traditionnelles et qui sont recompensées par une somme de talentcoin.

Conclusion partiel

Dans ce chapitre, nous sommes partis en présentant en détail la réalisation de notre projet. Premièrement nous avons commencé par la présentation du Protocol développé(Talentcoin). Nous avons aussi réalisé une navigation dans notre application en présentant des captures d'écran de quelques fonctionnalités témoignant les différentes tâches ainsi leurs algorithme ; Ensuite nous avons fini par une discussion des résultats obtenus.

CONCLUSION GENERALE

Notre travail portant sur la simulation d'une cryptomonnaie basée sur la devise monétaire congolaise a été motivé par le fait que la centralisation des données est l'une des faiblesses que possèdent les systèmes de payement virtuel de notre pays, du point de vue sécurité informatique même si pour le moment celui-ci semble mieux fonctionner ; le frais de transaction très élevé et la confiance à un tiers pour réaliser ses transactions.

Pour résoudre ces problèmes, nous sommes partis des questions qui cherchent à savoir : quelles sont les exigences fonctionnelles d'une monnaie non bancaire couplant intégrité et confidentialité ? Quel serait le modèle informatique représentant le mieux ce système ? Quelles sont les technologies adaptées pour l'implémentation de ce système dans le contexte de la RDC

En vue de répondre aux questions que nous nous étions posées, nous nous sommes fixés quelques objectifs qui nous ont permis d'arriver à notre fin ; nous avons recueilli les exigences fonctionnelles d'une crypto monaie dans le contexte de la RDC ; proposer un modèle informatique pour le système ainsi que les technologies appropriées au contexte de la RDC pour implémenter et tester le système.

Pour atteindre ces objectifs, nous sommes parti de la méthode de documentation qui nous a permis d'avoir une vue d'ensemble sur la technologie blockchain et le système de décentralisation P2P ; nous avons utilisé le langage UML pour la modélisation en utilisant la méthode PU (processus Unified) qui nous a permis de réaliser un système qui répond aux exigences de nos objectifs. La méthode de prototypage qui a consisté à donner une maquette de notre modèle à partir duquel nous avons démontré que l'implémentation de notre modèle

56

est possible ; enfin la simulation nous a permis de faire le test du système réalisé dans notre laboratoire.

Bibliographie

BENSLIMANE, Y., & OUAKKOUCHE, K. (2016). Conception et Réalisation d'un Réseau Social Distribué. Algérie: Université Abderrahmane Mira de béjaia.

Antonopoulos, A. (2016). Mastering Bitcoin.

arstechnica. (2013, Mai 26). Wary of Bitcoin? A guide to some other crypt ocurrencies. Consulté le Janvier 10, 2018, sur https://arstechnica.com: https://arstechnica.com/business/2013/05/wary-of-bitcoin-a-guide-to-some-other-cryptocurrencies/

AUSIM. (2017). Livre Blanc AUSIM LA BLOCKCHAIN - THE DESCRIPTION. Maroc.

Baccino, T. (2009). PROTOTYPAGE. Paris.

Bartlomiej, S., Kshemkalyani, A., & Singhal, M. (2004). On the Security of Polling Protocols in Peer-to-Peer System.

Benoit, A. (2006). Algorithmique des r'eseaux et des t'el'ecoms.

blockchainfrance. (2016). Découvrir la blockchain. Consulté le Mars 10, 2019, sur blockchainfrance.net: http://blockchainfrance.net/decouvrir-la-blockchain/c-est-quoi-la-blockchain

BRODIN, O. (2000). LES COMMUNAUTÉS VIRTUELLES Un potentiel marketing encore peu exploré. Association Française du Marketing.

BUDAN, N., TEDESCHI, B., & VAUBOURG, S. (2003). Nouvelles Technologies Réseau.

Cervelle, J. (2019, Juin 12). eclipse. Récupéré sur enseignement.polytechnique: // www.enseignement.polytechnique.fr/informatique/profs/Julien.Cervelle/eclipse/

coinmarketcap. (2012). Crypto-Currency Market Capitalizations. Consulté le Avril 18, 2019, sur http://www.coinmarketcap.com: http://www.coinmarketcap.com/#USD

DIGALLO. (2001). Méthodologie Merise. Paris.

DOROTHE, C. (2017). BLOCKCHAIN la revolution de l'economie de partage. Ile-de-France: SMILE.

Dumas , J.-G., & Lafourcade, P. (2010). Les Big Data à l'échelle de la société. Dumont, R. (2010). Cryptographie et Sécurité informatique. Liège.

58

Fayçal, M. (2010). Routage Efficace pour les Réseaux Pair-à-Pair utilisant des Tables de Hachage Distribuées. Paris.

FERRADI, H. (2016). Initiation à la cryptographie : théorie et pratique. Paris.

futura-sciences. (s.d.). informatique-simulation-informatique. Consulté le Avril 17, 2019, sur https://www.futura-sciences.com/: https://www.futura-sciences.com/tech/definitions/informatique-simulation-informatique-11319/

Gérard, P. (2008). Pro cessusdeDévelopp ementLogiciel. Paris.

Goessens, M. (2012). Étude bibliographique : Diffusion de contenu en pair-à-pair. Jacques, V. (2018). Paypite la cryptomonnaie des francophones. Paris.

Kas, C. (2017, octobre 26). PayWebPhone, le mini PayPal Congolais. Consulté le Juin 12, 2019, sur Waza-tech.com: http://www.waza-tech.com/2015/11/commerce-electronique-paywebphone-le-mini-paypal-made-in-congo/

KEMP, S. (2018, janvier 30). Digital in 2018: world's internet users pass the 4 billion mark. Consulté le avril 3, 2019, sur https:\\www.wearesocial.com: https:\\www.wearesocial.com/blog/2018/01/global-digital-report-2018

Laplante, A. (2011). METHODOLOGIE DE LA RECHERCHE DOCUMENTAIRE.

Masivi, O. M. (2018). Analyse et conception des systèmes orientés Objets Avec UML. Editions universitaires européennes.

morebus.free.fr. (2009). historique. Consulté le Avril 3, 2019, sur morebus.free.fr: http :// morebus.free.fr/siteMemoire/historique02.html

Müller, D. (2007). Les Codes secrets décryptés. City Editions. Nakamoto, S. (2008). Bitcoin: A Peer-to-Peer Electronic Cash System.

Pareyre, J.-C. (2018, Avril 23). Actualites. Consulté le Mars 19, 2019, sur http://www.actucrypto.info: http://www.actucrypto.info/actualites/linteret-de-crypto-monnaie-selon-christine-lagarde/

pcmag. (2019, Juin 12). JDK. Récupéré sur pcmag: http :// www.pcmag.com/encyclopedia/term/45608/jdk

populationdata. (2019, juin 22). République démocratique du comngo. Récupéré sur populationdata: www.populationdata.net/pays/republique-démocratique-du-congo/

publications.banque-france. (2018, Mars 05). lemergence-du-bitcoin-et-autres-crypto-actifsenjeux-risques-et-perspectives. Consulté le Janvier 10, 2019, sur https://publications.banque-france.fr: https://publications.banque-france.fr/lemergence-du-bitcoin-et-autres-crypto-actifsenjeux-risques-et-perspectives

59

Steffenel, L. A. (2008). Programmation des Applications Réparties. Reims.

techopedia. (2019, Juin 12). java-runtime-environment-jre. Récupéré sur techopedia: www.techopedia.com/definition/5442/java-runtime-environment-jre

techopedia. (2019, Juin 12). netbeans. Récupéré sur techopedia: https :// www.techopedia.com/denition/24735/netbeans

THOMAS, V. (2000). LE RESEAU DES RESEAUX : INTERNET.

VAUPLANE, H. D. (2014). L'ANALYSE JURIDIQUE DU BITCOIN. TECHNOLOGIE ET COMPLEXITÉ, 353.

Vercy, I. (2018, Juillet 04). cryptomonnaies-cryptoactifs. Consulté le Janvier 10, 2019, sur https://www.economie.gouv.fr:

https://www.economie.gouv.fr/particuliers/cryptomonnaies-cryptoactifs

VODISLAV, D. (s.d.). Architectures distribuées P2P.






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Un démenti, si pauvre qu'il soit, rassure les sots et déroute les incrédules"   Talleyrand