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
|