Vous êtes sur la page 1sur 42

CHAPITRE 2 : METHODOLOGIE DE

RECHERCHE

Introduction
La recherche scientifique est un processus dynamique ou une démarche rationnelle qui
permet d’examiner des phénomènes, des problèmes à résoudre, et d’obtenir des réponses précises
à partir d’investigations. Cette partie est particulièrement importante car c’est dans celle-ci que
nous décrirons les méthodes permettant de résoudre le problème énoncé au chapitre précédent. Il
sera donc question dans cette partie tout d’abord de parler des inconvénients de sauvegarder les
données dans le cloud ensuite présenter la blockchain EOS que nous allons utiliser pour mettre sur
pied notre solution, les concepts de l’internet des objets dans la ville intelligente et enfin
l’architecture de notre solution et de sa mise en œuvre.

2.1 Sauvegarde des données


2.1.1 Inconvénients des données IoT dans le cloud
Le stockage en nuage s’avère être une alternative intéressante et puissante aux solutions de
stockage traditionnelles à bien des égards. Cependant, il existe des scénarios dans lesquels la
sauvegarde des données dans le Cloud est associée à des inconvénients. D’abord, il y a la
dépendance de la connexion Internet ou de la connexion intranet respective au serveur cloud privé
interne. D’une part, la stabilité joue ici un rôle important, car si la connexion ne fonctionne pas,
l’accès au stockage Cloud est également refusé. D’autre part, la bande passante disponible est
cruciale pour la bonne transmission des données, qui peut devenir problématique, en particulier un
accès au réseau mobile. Le stockage en nuage présente également les inconvénients suivants :
 Dépendance du fournisseur : lorsque vous choisissez une solution de stockage Cloud
externe, vous dépendez automatiquement du fournisseur choisi. Des modifications non
souhaitées de l’offre ou l’interruption du service sont des éventualités à ne pas exclure.
 Sécurité : l’envoi de données à travers les frontières du réseau pose des risques de sécurité,
tous les fournisseurs n’offrent pas le cryptage des données stockées. En outre,

1
l’infrastructure informatique utilisée (par le fournisseur) est une cible attrayante pour les
attaques.
 Protection des données : En matière de protection des données, le stockage des données
dans le cloud est fondamentalement problématique. Etant donné que les serveurs des
fournisseurs sont situés dans différents pays, le stockage des données des utilisateurs n’est
souvent pas compatible avec les directives légales applicables de tels ou tels pays. [44]

2.1.2 Blockchain et son utilité dans le stockage


La technologie Blockchain sera utilisée pour créer de nouveaux réseaux décentralisés de
stockage de données, redonnant ainsi à l’utilisateur final le pouvoir de choisir. La décentralisation
du stockage de la blockchain peut avoir plusieurs avantages financiers supplémentaires, tels que
la possibilité pour l’utilisateur d’économiser de la bande passante puisque les fichiers sont stockés
et téléchargés à partir de plusieurs nœuds au lieu d’un seul serveur. Ceci est dû au fait que les
données sont stockées sur des dizaines de nœuds individuels, répartis intelligemment dans le
monde entier, sans qu’aucune entité centrale n’ait besoin de contrôler l’accès aux fichiers d’un
utilisateur, ce qui améliore la sécurité et réduit les coûts grâce au stockage décentralisé des fichiers.
Bien que l’évolutivité actuelle du réseau doive encore évoluer pour s’adapter à des infrastructures
de stockage à grande échelle, nous pouvons facilement envisager une industrie où les données
fragmentées et cryptées sont supportées par un réseau de nœuds décentralisés d’une manière
beaucoup plus conviviale et rentable que les solutions actuelles de base de données centrale. Une
autre façon dont les cas d’utilisation de la blockchain pourraient révolutionner les systèmes de
stockage de fichiers actuels est d’utiliser ce que l’on appelle une ” couche incitative “. Cela signifie
que bien que les données ne soient pas réellement stockées dans un ledger décentralisé, le réseau
de stockage concerné les utilise pour traiter les paiements d’abonnement, éviter les taux de change
fixes et stocker les informations d’accès. L’utilisation de ce grand livre pour interagir avec un
projet de blockchains de stockage bénéficierait à l’utilisateur final en améliorant les temps de
règlement ainsi qu’en augmentant la confidentialité et la fiabilité grâce à un réseau décentralisé et
à une tenue des dossiers transparente. Une telle flexibilité et la possibilité de réseaux de stockage
centrés sur l’utilisateur signifient qu’en déplaçant leurs données vers un stockage de données en
chaîne bloquée, les utilisateurs pourraient également bénéficier d’un système plus agile et
personnalisable, en étant capables de manipuler des paramètres tels que la vitesse de récupération
2
ou la redondance qui est adjacente à leurs besoins particuliers. Avec un système de jeton de
stockage, l’économie de réseau peut être mise à profit pour inciter les nœuds individuels à
maintenir le réseau et à partager une partie des capacités de stockage. Tout comme le stockage de
contenu à des fins personnelles, la technologie de la chaîne en bloc dans le stockage de fichiers
peut également permettre aux utilisateurs de télécharger et de partager et de monétiser facilement
leur contenu, tout en réduisant les coûts liés au recours à une tierce partie centralisée ou à d’autres
intermédiaires coûteux. [45]

2.1.3 Différents types de blockchain


Il existe plusieurs types de blockchain à savoir :

 Bitcoin : Lancée en 2009 par Satoshi Nakamoto, pseudonyme de la personne ou du


groupe ayant créé le bitcoin, pour sécuriser les paiements via un réseau peer-to-peer.
Le bitcoin vise à mettre un terme à la nécessité d’un tiers de confiance, à
démocratiser les monnaies et à assurer l’anonymat des transactions.
 Litecoin : Lancée en 2011 son objectif est d’instaurer une alternative aux devises
traditionnelles, exploitable au quotidien pour les utilisateurs. Pour pouvoir réaliser
des paiements instantanés dans le monde, elle améliore le bitcoin en gommant
certaines lacunes notamment les lenteurs du processus de validations des
transactions
 Ripple : C’est un réseau pair-à-pair décentralisé qui fournit un protocole de paiement
numérique aux institutions financières. Il permet un transfert d'argent numérique
transparent, que vous souhaitiez envoyer des fonds conventionnels en dollars ou des
crypto-devises comme le Bitcoin. Le réseau a son jeton désigné : le XRP. En termes
de capitalisation boursière, Ripple est actuellement la quatrième crypto-devise la
plus importante. L'une des particularités de XRP est que tous les jetons sont pré-
minés.
 Stellar : Réseau de paiement qui fonctionne de la même manière que RippleNet et
peut traiter des transactions dans plusieurs devises. Il est soutenu par la
cryptomonnaie Lumens (XLM), communément appelée. Le Lumens peut être utilisé
pour réaliser des paiements sur le réseau mais joue également un rôle anti-spam,

3
puisque chaque transaction exige des frais minimes, qui sont versés dans la
cryptomonnaie.
 Ethereum : Permet aux utilisateurs de coder et d’émettre leurs propres applications
décentralisées (dApps) et de créer des contrats « intelligents » qui appliquent leurs
clauses automatiquement. De petits montants d’ether sont détruits lorsque les
transactions sont traitées, protégeant ainsi le réseau contre les hackers.
 BitcoinCash : Créée en août 2017 suite à une scission du bitcoin. Elle a eu lieu en
réponse au ralentissement de la vitesse des transactions bitcoin et à l’incapacité du
réseau de parvenir à un consensus sur les améliorations proposées. La taille de bloc
minimum du bitcoin cash est de 8 Mo, par rapport à 1 Mo pour le bitcoin, permettant
de traiter un plus grand nombre de transactions par seconde.
 EOS : Propose des outils et des services aux développeurs pour leur permettre de
créer des dApps, avec des comptes d’utilisateurs, authentification et bases de
données. La responsabilité du traitement et des autres opérations est répartie sur
l’ensemble du réseau, ce qui selon les concepteurs permettra de traiter plusieurs
millions de transactions par seconde à l’avenir.
 Tron : vise à établir un système de partage pour les différentes industries de
divertissement et l’avenir des plateformes des médias sociaux distribués. Tout
comme Ethereum ou EOS, toutes les transactions Tronix sont enregistrées dans un
grand livre public et peuvent être suivies via l’explorateur Tronix. TRX est utilisé
pour voter pour les Supers Représentants et pour obtenir de la bande passante.
Lorsqu’un utilisateur gèle un TRX de lui-même, il reçoit la Tron Power (TP), avec
laquelle il peut voter pour un super-représentant. En principe, les transactions sur le
réseau Tron sont gratuites. Il est important de noter, cependant, que chaque compte
sur le réseau n’est autorisé qu’une seule transaction gratuite toutes les 10 secondes
pour assurer le bon fonctionnement du réseau. La bande passante est nécessaire pour
envoyer des transactions plus fréquemment.
 Steem : Il s’agit d’une blockchain qui permet de partager des contenus médias écrits
(blogs, articles, commentaire) et qui récompense ses contributeurs. Le paiement des
récompenses s’effectue via la blockchain de Steem, là où sont stockés tous les écrits.
Chaque fois qu’un utilisateur vote pour un contenu, le créateur du contenu est

4
récompensé. Si vous figurez parmi les premiers membres à interagir avec un article,
via un vote ou un commentaire, vous êtes également rémunéré. Le réseau Steem
récompense tous ses membres pour chaque action effectuée sur le réseau. [46]
 Ethereum Classic : Née en 2016 suite au piratage d’un smart contract sur le réseau
Ethereum qui a provoqué le détournement de plus de 10% des tokens ETH en
circulation. C’est une blockchain modulaire sans autorisation, décentralisée,
sécurisée et résistante à la censure. L'objectif sous-jacent et l'infrastructure
d'Ethereum Classic sont les mêmes : fournir une plateforme publique pour gérer des
contrats intelligents et des applications décentralisées ou dApps. Le jeton de cette
blockchain est donc Ethereum Classic (ETC). [47]
 BitShares : Fournit un échange d'actifs décentralisé intégré, similaire à celui de la
Bourse de New York, mais pour les crypto-monnaies et sans qu'il soit nécessaire de
faire confiance à une autorité centrale pour gérer tous les fonds, qui peut effectuer
des transactions à l'aide d'un réseau international d'ordinateurs auquel n'importe qui
peut participer. BitShares fournit également un jeton de crypto-monnaie appelé
"BTS", qui peut être transféré entre comptes et est utilisé pour collecter des frais
pour les opérations du réseau et comme garantie pour des prêts. Elle fonctionne
grâce à l’algorithme de consensus preuve d’enjeu déléguée en abrégé DPoS
(delegated proof of stake). Les membres votent pour élire 101 délégués qui
deviendront les nœuds validateurs du réseau. [48]
Tableau 1 : Récapitulatifs des différentes blockchains

Lancement Algorithme de Cryptomonnaie Transactions


consensus associée maximales
par secondes
Bitcoin 2009 PoW Bitcoin 7
LiteCoin 2011 PoW Litecoin 56
Ripple 2012 / Ripple 1500
Bitshares 2014 DPoS BTS 100.000
Stellar 2014 / Stellar 1000
Ethereum 2015 PoW Ether 20

5
Ethereum Classic 2016 PoW ETC
Steem 2016 DpoS Smart Media 10.000
Token
BitcoinCash 2017 PoW BitcoinCash 60
(BCH)
Tron 2017 DPoS Tronix 1000
EOS 2018 DPoS EOS 1000+

2.2 Blockchain EOS


EOS est une plateforme blockchain ultrascalable qui permettra de déployer des smart
contracts et des applications décentralisées, à l'instar d'Ethereum. Elle est développée par la firme
Block.one, fondée par Daniel Larimer. Pour comprendre la blockchain EOS évoqué tout au long
de ce document nous mettrons un accent sur son fonctionnement, ensuite les fonctions de hachage
et enfin la signature numérique.

2.2.1 Fonctionnement d’EOS


Dans la blockchain EOS nous avons 21 délégués qui valident les blocs. Les détenteurs de tokens
élisent leurs délégués en votant via une transaction spéciale. Ce vote est pondéré au prorata de la
quantité de tokens qu’ils consacrent à cet effet dans le cas d’EOS, un token donne droit à trente
votes différents. Plus vous avez de tokens plus votre vote est important. Les producteurs de blocs
potentiels soumettent leur candidature. Ils doivent bien sur prouver que leur matériel est
suffisamment robuste pour assurer un fonctionnement continu et que leur engagement envers
l’écosystème est maximal. Les candidatures sont libres et chacun peut proposer la sienne. La liste
des candidats pour EOS est régulièrement mise à jour.

6
Figure 1 : Scénario d’élection des délégués
Les détenteurs de tokens votent pour leurs délégués favoris selon les modalités suivantes :
- Les tokens servant à voter sont mis sous séquestre pour une durée minimale de 3jours.
- Chaque token mis sous séquestre pour une durée de 3 jours maximum. Il donne accès
à un droit de vote. Il n’est pas possible de voter deux fois pour le même délégué avec
le même token.
- A chaque ronde de production de blocs, les participants peuvent voter à nouveau pour
les délégués de leur choix. Les votes sont reconductibles tant que les tokens de votants
sont sous séquestre
- Le nombre de candidatures pour devenir délégué est illimité mais seuls les producteurs
de blocs qui forgent au moins 100 EOS par jour (environ 0,49 % des votes) toucheront
une récompense pour leur rôle. Les 21 délégués ayant reçu le plus de votes de la part
de la communauté ont alors le droit d’inscrire les blocs sur la chaine.
- Si un des délégués est éjecté de la liste pour un mauvais comportement ou n’est pas
capable de produire un bloc dans un intervalle de temps donné alors le délégué potentiel
placé le plus haut de la liste prendra sa place.

7
Une fois que le réseau a déterminé les producteurs de blocs, la ronde de production se déroule
ainsi :
- L’algorithme va sélectionner de manière aléatoire les séquences des producteurs de
blocs à venir. Ceux-ci ont 3 secondes chacun pour produire leur bloc. Produire un bloc
consiste à réunir les transactions des utilisateurs et signer ce bloc (avec la clé privée du
délégué producteur).
- Une fois le bloc produit, il est soumis à la validation des autres délégués. (2/3+1) des
délégués doivent approuver un bloc pour qu’il soit valide et inscrit sur la chaine.

Si un des délégués produit un bloc hors de l'intervalle temporel pour lequel il est désigné, ce bloc
est invalide. Dans le cas d'un fork de la blockchain, à l'instar de la preuve de travail, c'est la chaîne
la plus longue qui sera considérée comme valide par l'ensemble du réseau. Pour cette illustration,
le nombre de producteurs de blocs est réduit à trois : les producteurs A, B et C. Chaque bloc sera
donc produit de manière aléatoire par A, B ou C, et validé par l'ensemble des trois délégués (c'est
une simplification, en réalité les délégués sont au nombre de 21 et les blocs doivent être approuvés
par les deux-tiers des délégués plus un). Ici, c'est le producteur C qui départage les cas limites.

 Fonctionnement normal
Lorsque le réseau opère normalement, l'algorithme assigne un intervalle temporel de trois
secondes à chaque producteur de bloc, durant lequel il peut créer un bloc et le soumettre aux
autres validateurs. Tout bloc soumis aux validateurs hors de l'intervalle temporel assigné à son
producteur sera rejeté. Si aucun producteur ne rate son tour, ce sera toujours la chaîne la plus
longue qui sera produite ainsi.

Figure 2: Fonctionnement normal


 Fork minoritaire
Dans le cas où une partie minoritaire des acteurs - jusqu'à 1/3 des producteurs de blocs - produit
une chaîne de blocs différente (comportement malicieux ou dysfonctionnement technique), le
temps passé à produire ces blocs sera toujours plus élevé que le temps que passera le reste des

8
participants à construire la chaîne majoritaire (1 bloc toutes les 9 secondes dans cet exemple, contre
2 blocs toutes les 9 secondes pour la chaîne "honnête"). Ce sera donc toujours la chaîne "honnête"
qui sera la plus longue, et le reste du réseau considérera donc cette dernière comme valide. [49]

Figure 3: Fork minoritaire


 Double production par une minorité déconnectée
Ici encore, si une minorité produit plusieurs forks, le temps passé à créer ces blocs sera toujours
supérieur à celui qui est requis pour que la majorité des producteurs construise une chaîne valide.
Ces forks seront donc toujours invalides.

Figure 4: Double production par minorité déconnectée


 Fragmentation du réseau
En cas de mauvaise connectivité entre les producteurs, il est possible de se retrouver avec plusieurs
chaînes. Si aucune d'entre elles n'a la majorité des votes des producteurs, c'est la chaîne minoritaire
la plus longue qui prend le dessus. Si deux chaînes majoritaires sont de longueur équivalente, lors
de la reconnexion, les producteurs ayant forgé une chaîne minoritaire choisiront de rejoindre l'une
des chaînes majoritaires, et seule l'une d'entre elle prendra alors le dessus.

9
Figure 5: Fragmentation du reseau
 Double production par une minorité connectée
Dans ce cas de figure, une minorité de producteurs décide de produire plusieurs blocs dans le
même intervalle temporel. Lors de la prochaine ronde, le producteur suivant devra alors choisir
n'importe laquelle des chaînes alternatives proposées, en faisant alors la chaîne la plus longue. Le
reste des nœuds choisira donc cette dernière : cela permet de s'assurer que, quel que soit le nombre
de blocs "alternatifs" produits par la minorité malicieuse, ils ne feront partie de la plus longue
chaîne que durant un unique intervalle temporel.

Figure 6: Double production par une minorité connectée


 Gouvernance et mise à jour du protocole EOS

La gouvernance d'EOS repose sur les délégués élus par les détenteurs du token. La mise à jour du
protocole est effectuée selon les modalités suivantes :

1. Un changement est proposé par un producteur de bloc. Il doit recueillir l'approbation de 17


délégués sur 21.
2. L'approbation de 17 délégués sur 21 doit être maintenue durant 30 jours.
3. Les producteurs de blocs doivent alors adopter les changements du code source et
soumettre ce dernier sur la blockchain.

10
4. Le changement doit encore être approuvé par au moins 17 délégués sur 21 durant 30 jours
consécutifs de plus.
5. Tous les nœuds complets ont alors une semaine pour adopter les changements.
6. À la fin de ce délai, les nœuds qui ne suivent pas le nouveau protocole sont
automatiquement exclus.

2.2.2 Preuve d’enjeu déléguée (DPoS)


Mécanisme de consensus reposant sur le vote démocratique des détenteurs du token. L’idée est
de confier la validation des blocs à un groupe restreint d’entités appelés les délégués ou témoins.
Seuls les délégués ont la possibilité de valider les blocs. Ces délégués sont élus par les détenteurs
du token natif de la blockchain. Seuls ceux qui possèdent la monnaie EOS peuvent voter. Ces
derniers élisent les nœuds au pouvoir suprême : celui, de valider et d’inscrire des blocs sur la
chaine. Ils vont élire les délégués. Il a été imaginé pour répondre au trilemme des blockchains.
Dans DPoS, toute personne qui détient des jetons sur une blockchain intégrée au logiciel EOS peut
sélectionner les producteurs de blocs à travers un système de vote d'approbation continue.
N'importe qui peut participer à l'élection des producteurs en bloc et on leur donnera la possibilité
de produire des blocs proportionnels au total des votes qu'ils reçoivent par rapport à tous les autres
producteurs.
2.2.3 Horodatage
Les blocs ainsi constitués de plusieurs transactions « signées » par clés publiques sont ensuite
horodatés par leur auteur. Cet aspect, appelé horodatage, est essentiel car il permet la datation
relative des blocs ainsi constitués, la blockchain formant à cet égard une sorte de chronologie dans
laquelle les transactions sont classées les unes après les autres. L'accès à l'historique du registre
étant totalement ouvert, les auteurs de tel ou tel bloc peuvent se trouver à n'importe quel point tout
autour du globe. Plusieurs blocs pourraient donc être constitués au même moment, de sorte que la
même transaction ou deux transactions incompatibles puissent se diffuser de pair à pair. [50]
2.2.4 Fonctions de Hachage
Chaque bloc, outre les transactions et l'horodatage, possède un identifiant qui prend la forme
d'un « hash » permettant de relier les blocs les uns aux autres. Cet hash est toujours le résultat du
« hachage » du bloc précédent. En informatique, les fonctions de hachage permettent de convertir
n'importe quel ensemble de données numériques en un hash, c'est-à-dire en une courte suite binaire

11
qui lui est propre. L'algorithme de compression utilisé à cet effet est appelé fonction de hachage
cryptographique.

Figure 7: La structure d'une blockchain et le rôle des hashs [51]

Dans le cas d'une blockchain, le hachage est effectué à partir du contenu du bloc, c'est-à-dire le
hash du bloc précédent, un certain nombre de transactions et un horodatage. Il est impossible
de prévoir quelle valeur aura le hash d'un certain ensemble de données même en ayant
connaissance des hashs d'ensembles de données extrêmement proches. La simple rupture de casse
d'une lettre, sur un texte comprenant plusieurs dizaines de milliers de caractères, produit un
nouveau hash ne présentant aucune proximité avec le précédent. Cette caractéristique des
fonctions de hachage rend toute modification du contenu d'un bloc immédiatement visible dans
les blocs suivants, même si cette modification est minime. En effet, le hash d'un bloc modifié est
nécessairement très différent. Étant donné que ce nouveau hash est intégré au bloc suivant, son
hash varie lui aussi. Comme l'indique le graphique ci-après, la modification d'une simple
transaction au sein d'un bloc suffit à changer les hashs de tous les blocs suivants.

12
Figure 8: Rôle du hachage dans l’intégrité des données [52]
La modification étant visible dans l'ensemble des blocs suivants, les blocs sont tous liés entre eux
cryptographiquement. En conséquence, modifier le contenu d'un bloc suppose de recalculer les
hashs de tous les blocs qui le suivent. Les algorithmes de hachage les plus utilisés actuellement
sont :

- MD5 (Message Digest 5) : développé en 1991 par Rivest il permet de créer une empreinte
digitale de 128 bits à partir d’un texte de taille arbitraire en le traitant par blocs de 512 bits.

13
Il est courant de voir des documents en téléchargement sur Internet accompagnés d’un
fichier MD5, il s’agit du condensé du document permettant de vérifier de ce dernier.
- SHA (Secure Hash Algorithm) crée des empreintes d’une longueur de 160 bits SHA-1 est
une version améliorée datant de 1994 et produisant une empreinte de 160 bits à partir d’un
message d’une longueur maximale de 264 bits en le traitant par blocs de 512 bits.

2.2.5 Utilisation d’algorithmes asymétriques


Un système reposant sur une paire de clés, publique et privée
Chaque transaction a recours à la cryptographie asymétrique, pour sécuriser les échanges
d'informations car elle permet d'assurer l'origine des données tout en préservant leur
confidentialité. Elle fonctionne, pour chaque utilisateur, avec une paire de clés, l'une privée et
l'autre publique. Cette paire de clés présente le double intérêt de chiffrer ou de signer un message.
Dans le cadre du Bitcoin, seule sa fonction de signature est utilisée. Dans ce système, un utilisateur
crée une suite aléatoire de chiffres, appelée clé privée. À partir de celle-ci un algorithme
permet de produire une seconde clé appelée clé publique. Pour le bitcoin, il s'agit d'un
algorithme de signature numérique à clé publique dit à courbes elliptiques, appelé Elliptic Curve
Digital Signature Algorithm (ECDSA). Par la suite, cette clé privée permettra de signer un
message. Les autres utilisateurs du réseau qui connaissent la clé publique correspondante pourront
alors vérifier qu'il est bien l'auteur de ce message.

Figure 9: Schéma explicatif de la paire clé publique/clé privée

Même si elles sont liées de manière unique, la clé publique ne permet pas de retrouver la clé
privée qui en est à l'origine. La clé publique peut donc être diffusée largement. Ainsi, lors d'une

14
transaction sur le réseau, l'émetteur va utiliser la clé publique du récepteur pour lui transférer un
certain nombre de Satoshi. Ces derniers représentent la plus petite fraction de bitcoin, un Satoshi
équivalent à 0,00000001 bitcoin. Tous les membres du réseau pourront alors lire la transaction et
vérifier que l'émetteur était effectivement le dernier possesseur. Seul le récepteur pourra signer la
transaction avec sa clé privée pour en prouver la possession.

2.2.6 Signature numérique

La signature numérique aussi appelé Signature électronique est un procédé permettant de


garantir l’authenticité de l’expéditeur et de vérifier l’intégrité du message reçu. Elle utilise à la
fois la cryptographie asymétrique et les fonctions de hachage. C’est en effet par l’association de
ces deux techniques que nous pouvons obtenir les cinq caractéristiques d’une signature :
authentique, infalsifiable, non réutilisable, inaltérable, irrévocable. [53]

Scénario : Alice souhaite envoyer un document signé à bob.

 Tout d'abord, elle génère l'empreinte du document au moyen d'une fonction de hachage.

 Puis, elle crypte cette empreinte avec sa clé privée.

Figure 10 : Cryptage d’un document

 Elle obtient ainsi la signature de son document. Elle envoie donc ces deux éléments à Bob

Figure 11: Envoie du document à Bob

 Pour vérifier la validité du document, Bob doit tout d'abord déchiffrer la signature en
utilisant la clé publique d'Alice. Si cela ne fonctionne pas, c'est que le document n'a pas été
envoyé par Alice.

15
 Ensuite, Bob génère l'empreinte du document qu'il a reçu, en utilisant la même fonction de
hachage qu'Alice (On supposera qu'ils suivent un protocole établi au préalable).

 Puis, il compare l'empreinte générée et celle issue de la signature.

Figure 12: Comparaison entre l’empreinte et celle issue de la signature


 Si les deux empreintes sont identiques, la signature est validée. Cela signifie que :
o C'est Alice qui a envoyé le document,
o Le document n'a pas été modifié depuis qu'Alice l'a signé.
 Dans le cas contraire, cela peut signifier que :
o Le document a été modifié depuis sa signature par Alice,
o Ce n'est pas ce document qu'Alice a signé

2.2.1 Modèle de Sécurité d’EOS

Figure 13 : Modèle de sécurité de la blockchain eos

16
2.3 Concepts de l’Internet des objets dans une ville intelligente
La Smart City, ou ville intelligente, consiste globalement à offrir un mode de vie plus efficace
et une meilleure qualité de vie à leurs résidents. Ce concept d’origine anglo-saxon n’est pas
nouveau, mais commence à se développer de plus en plus en Europe. Les pionnières dans le
domaine sont les mégalopoles d’Asie, comme Singapour ou Hong-Kong. Les villes intelligentes
utilisent des dispositifs de l’Internet des objets tels que des capteurs, des lumières et des compteurs
connectés pour collecter et analyser les données des habitants. Les villes en question utilisent
ensuite ces données pour améliorer l’infrastructure, les services publics, négocier des prix auprès
des fournisseurs.

2.4 Architecture de la solution


 Architecture générale de la solution

Cette figure montre la structure de base de la solution à mettre en œuvre. Au centre de


l’architecture générale se trouve un dispositif d’internet des objets tel qu’un micro-ordinateur
capable de communiquer sur Internet. Des capteurs sont connectés au micro-ordinateur. Ils
peuvent être de simples transducteurs pour des propriétés physiques telles que la température,
l’humidité, la luminosité, la pression ou des propriétés chimiques telles que le PH ou la force
ionique ou pour d’autres propriétés telles que la vitesse ou propriétés matériaux. Le micro-
ordinateur stocke temporairement les données de mesure collectées par les capteurs. Ces données
de mesure sont dotées d’un horodateur pour identifier clairement l’heure de mesure. Ces ensembles
de données sont envoyées via internet à une blockchain pour être stockées de manière permanente.

17
Figure 14 : Architecture générale de la solution

 Architecture détaillée de la solution


Le capteur de température DHT11 collecte les données et les envoie au PC via l’arduino. Une fois
que c’est fait les données sont stockées dans un fichier texte. Une variable est créée et c’est dans
celle-ci que la dernière valeur du fichier texte est stockée. Par la suite cette variable est stockée de
manière permanente dans la blockchain EOS.

Figure 15: Stockage des données dans un fichier texte


Le Raspberry Pi 3+ permet de récupérer les données qui sont stockées à la blockchain EOS. Pour
se faire, un client se connecte à celle-ci via le Raspberry Pi3+.

18
Figure 16 : Récupération des données par un client

2.4.1 Mise en œuvre


Cette section explique le matériel et les logiciels utilisés pour mettre en œuvre l’architecture.
L’ordinateur monocarte Raspberry Pi3+, un capteur de température et d’humidité DHT11, un
serveur et Arduino sont utilisés. Le logiciel ‘’eosio’’ est utilisé pour simuler la chaine de blocage
EOS. Une interface utilisateur graphique est utilisée car elle présente des avantages par exemple
en termes de lisibilité des blocs ou des transactions. En outre l’environnement de développement
‘’cdt’’ est utilisé pour l’implémentation afin d’écrire de compiler et de migrer les smart contracts
dans le langage de programmation ‘’c++’’. Les commandes du shell linux et le langage de
programmation ‘’c++’’ sont utilisés pour écrire le script qui exécute les principales tâches du
composant. La bibliothèque ‘’eospy’’ doit être incluse pour utiliser le capteur et est nécessaire
pour communiquer avec la blockchain EOS.
2.4.1.1 Outils de travail
L’exécution automatique des tâches a nécessité que nous fassions usage des connaissances
acquises tout au long de la formation notamment en assemblage et microcontrôleur.

 Raspberry Pi version 3+ : Un Raspberry Pi version 3+ de la fondation Raspberry Pi est


utilisé comme dispositif pour accéder aux données se trouvant dans la blockchain.
Grâce à son processeur relativement puissant et à d’autres caractéristiques, le Raspberry

19
Pi peut être considéré comme un ordinateur à part entière malgré sa petite taille, et peut
exécuter plusieurs logiciels complexes en parallèle. En outre le Raspberry Pi est équipé
d’une barre avec des broches General Purpose entrée /sortie (GPIO). Une large gamme
de périphériques peut être connectée à ces broches. Cela fait du Raspberry Pi un
ordinateur plus que convenable.

Figure 17 : Raspberry pi3+

 Un capteur de température DHT11 : Le capteur de température et d’humidité DHT11


est responsable de l’acquisition des données, ces données sont envoyées au serveur via
un Arduino. Le serveur récupère les données de mesure des capteurs et les stockent
temporairement dans un fichier texte. Il est disponible dans la version 3 broches. La
documentation du DHT11 indique qu’une résistance de 10 kilos ohm doit être
connectée comme résistance de pull-up entre les broches de données et de tension
d’alimentation.

Figure 18: Capteur DHT11

 Arduino

20
C’est une carte électronique équipé d’un microcontrôleur. Dans notre solution,
Arduino nous permet de faire transités les données de mesure provenant des
capteurs vers l’ordinateur dans lequel est implémenté la blockchain EOS.

Figure 19: Arduino


Les modules utilisés sont récapitulés dans le tableau ci-dessous :
Tableau 2: Récapitulatif des équipements

Nom du Module Rôle Image


Arduino Passerelle entre le capteur
de température et le
serveur. C’est par lui que
transite les données
collectées par le capteur.
Capteurs de Collectent les données de
température mesures

Serveur Stocke les données


temporairement et les
envoient à la blockchain
via internet

Raspberry Pi 3 Dispositif central


d’exécution et de
communication et permet
d’exécuter plusieurs
logiciels en parallèle

21
2.4.2.2 Environnement de travail
Pour notre prototype nous avons utilisé les logiciels et langages suivants :

 Python : Un langage de programmation dynamique de haut niveau, interprété et


polyvalent qui se concentre sur la lisibilité du code. Largement utilisé dans les grandes
organisations en raison de ses multiples paradigmes de programmation. Ils impliquent
généralement une programmation fonctionnelle impérative et orientée objet. Il a des
applications diversifiées dans les sociétés de développement de logiciels telles que les jeux,
les cadres et applications Web, le développement de langage, le prototypage etc. Cela
fournit au langage une pléthore plus élevée que les autres langages de programmation
utilisés dans l'industrie. Certains de ses avantages sont : Il fournit de grandes bibliothèques
standard qui incluent des domaines tels que les opérations de chaîne, Internet, les interfaces
et les protocoles du système d'exploitation. Offre des opportunités IoT Étant donné que
Python constitue la base de nouvelles plates-formes comme Raspberry Pi, il trouve l'avenir
brillant pour l'Internet des objets. C'est un moyen de connecter la langue avec le monde
réel.
 Ubuntu version 16.04 : est un système d’exploitation basé sur Debian GNU/Linux et
sponsorisé par la société Canonical. Il est une distribution GNU/Linux, c’est-à-dire un
regroupement de logiciels libres qui forment un tout cohérent, modulable et adapté à
l’utilisateur.
 EOS.IO : Offre une plateforme permettant de déployer et héberger les applications
décentralisées via l'utilisation de contrats intelligents
 Langage de programmation C++ : est un langage de programmation le plus utilisé par
les développeurs. Il permet d'aborder le développement sous plusieurs paradigmes :
programmation générique, procédurale et orientée objet. C'est un langage compilé, ce qui
signifie que le code source est traduit en code objet, ou binaire pour que la machine puisse
l'exécuter. Il offre des avantages pour ses utilisateurs:
- Il fait partie des langages les plus puissants et les plus rapides. Cela explique son
succès dans le secteur concurrentiel des applications pour smartphone
- Très populaire, il est abondamment commenté et enseigné sur le web, à travers les
forums spécialisés et les plateformes de formation en ligne. Bien que ce ne soit pas

22
le langage le plus simple, il reste, de ce fait, accessible à des débutants en auto-
formation

2.4.2 Intégration basée sur C++ et la blockchain EOS


Pour interagir avec une chaine de blocage EOS en C++ nous avons besoin de la
bibliothèque eospy. Cette bibliothèque fournit un grand nombre de fonctions requises. Tout
d’abord l’adresse IP de la machine doit être saisie. Ceci est fait en utilisant Ubuntu. Nous devons
entrer l’adresse et le port, qui sont utilisés dans les paramètres du cdt. Ensuite le premier compte
dans le cdt est défini comme compte par défaut à partir duquel toutes les transactions sont
exécutées. Au début, le contrat intelligent doit être initialisé. Ce n’est qu’après qu’une instance du
contrat intelligent peut être appelée. Ensuite la fonction …. est utilisée pour s’assurer que la
transaction a été réussi. Pour obtenir l’heure de la création d’un bloc ainsi qu’un ensemble
d’informations du bloc, la commande ’’ $ pycleos—url http://192.168.100.4:8888 get account—
account alice’ ’est utilisée et stockée dans la variable ‘’$t ‘’.

 Pourquoi utilise-t-on la blockchain comme solution ?


La technologie de la chaîne de production fait désormais l'objet d'une grande attention. Elle
peut révolutionner, optimiser l'infrastructure mondiale des technologies reliées entre elles par
l'internet. Cette technologie comporte essentiellement 4 composantes :

- Réseau de nœuds : Tous les nœuds connectés par l'internet, maintiennent toutes
les transactions effectuées sur un réseau de chaînes de blocs en collaboration et
l'authenticité d'une transaction est vérifiée par un protocole. Lorsqu'une nouvelle
transaction a lieu, ses enregistrements sont ajoutés au registre des transactions
passées, ce qui est connu sous le nom de "mining". Les autres nœuds présents sur
le réseau, vérifient la preuve de travail.
- Système de base de données distribuées : La base de données est composée de
blocs d'informations et est copiée sur chaque nœud du système. Chaque bloc
comporte une liste de transactions, un horodatage et les informations qui se
rapportent au bloc précédent.
- Grand livre partagé : Le grand livre est mis à la disposition du public et est
incorruptible, c'est-à-dire qu'il est mis à jour chaque fois qu'une transaction est
effectuée.

23
- Cryptographie : les données sont liées par un mécanisme de cryptage qui empêche
les utilisateurs non autorisés d'y accéder ou de les altérer.

2.5 Méthodes d’évaluation


Entre les différents tests, une période d’attente est prévue pour s’assurer que tous les
participants au processus sont prêts pour le prochain test de mesure. L’ensemble du test consiste
en huit interactions différentes. Les données sont demandées au capteur puis communiquées en
retour, et les interactions appropriées ont lieu pour lancer et achever une transaction visant à
stocker les données dans la blockchain EOS. Grâce à l’instrumentation du code, le code du script
python est prolongé par les lignes nécessaires pour enregistrer les temps de mesure. Pour les tets
généraux, 1000 échantillons sont enregistrés afin de pouvoir faire une déclaration représentative.

 Vérifions que le système fonctionne


Trois conditions permettent de dire que notre solution fonctionne :

1. Le lancement du nœud avec keosd et nodeos fonctionne à travers les deux captures ci-après

Figure 20: Lancement des noeuds


24
2. La récupération de la variable $t qui représente la température dans le fichier output.txt est
bien insérée dans la table.
3. La lecture de la table est faite avec la dernière valeur récupérée qui est 27

Figure 21 : Lecture de la valeur de la température

Conclusion :

Nous avons tout au long de ce chapitre présenté le processus de mise en place d’un
prototype de sécurisation des données ainsi que les différents éléments qui entrent en jeu dans son
élaboration que sont la blockchain et l’internet des objets. Nous avons également décrit comment
les données sont stockées dans la blockchain ainsi que la manière dont les données sont récupérées.
Enfin les méthodes d’évaluation de notre prototype. Les résultats obtenus sur cette partie feront
l’objet du chapitre suivant.

25
CHAPITRE 3 : RESULTATS ET
INTERPRETATIONS

Introduction

La partie résultat est celle qui est la plus importante car elle permet de connaître si notre
solution fonctionne et si elle remplit entièrement les objectifs fixés. Le travail que nous avons
effectué avait pour but de mettre en place un prototype d’internet des objets pour la sécurisation
des données à l’aide de la blockchain. Dans ce chapitre nous allons décrire le processus de stockage
des données dans la blockchain EOS, ensuite expliquer comment ces données peuvent être
récupérées par un utilisateur autorisé et enfin mettre en place une attaque et voir le comportement
de notre solution face à celle-ci. Nous étofferons enfin cette présentation par des interprétations ou
commentaires pour une meilleure compréhension.

3.1 Rappels des résultats attendus


Notre travail doit offrir les fonctionnalités suivantes :

 Crypter les données avant de les envoyer dans la blockchain


 Stoker les données de façon permanente dans la blockchain
 Récupérer les données dans une blockchain

3.2 Présentation
Au niveau des transactions, nous avons besoin de trois ressources pour utiliser le réseau EOS :
1. Du CPU
2. De la bande passante (bandwidth)
3. De la RAM
La RAM est une ressource payante, mais nous n’en avons besoin que pour le premier transfert
(pour occuper l’espace RAM qui enregistre le solde de votre compte). Le CPU et la bande
passante sont attribués à tous ceux qui ont des jetons EOS .

26
Il existe plusieurs types de Portefeuille à savoir :

 Wallet desktop : SimplEOS est un wallet dédié EOS pour PC, Mac ou Linux. Scatter
permet de gérer bien d’autres aspects de la chaîne de blocs EOS. Les portefeuilles multi
cryptos populaire que sont Exodus, imToken, Jaxx et Atomic Wallet supportent ce jeton
 Wallet physique : vous pouvez utiliser votre Ledger ou votre Trezor pour stocker vos jetons
EOS. Si vous n’avez pas encore de portefeuille physique et que vous comptez acheter une
quantité substantielle d’EOS, il est fortement conseillé de réaliser d’abord ce petit
investissement
 Wallet pour mobile : la plupart des portefeuilles desktop cités ci-dessus sont également
disponibles en version mobile (Android et Apple). Ajoutons à ces options Infinito, Lumi,
Guarda ou encore Freewallet

Nous utiliserons le portefeuille dédié au PC. La première étape pour envoyer des données dans la
blockchain est de disposé d’un portefeuille. La création du portefeuille se fait comme suit:

Figure 22 : création d’un porte feuille


Sur cette figure on liste d’abord les portefeuilles à l’aide de la commande ‘’ cleos wallet list’’ Une
fois que c’est fait nous constatons qu’il n’y a pas de portefeuille dans cette liste. Un portefeuille
par défaut est créé pour cela on doit entrer le mot de passe donné par Ubuntu. Ensuite on crée un
jeu de clés : une clé publique et une clé privée à l’aide de la commande ‘’cleos wallet keys’’. Nous

27
avons deux
clés :‘’EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGyqET5GDW5CV’’et
‘’EOS7tWp93h8HwryeiZQ6ueMNXieCFghqgtwaxRNxM6SMZw2Vz6PqL’’.Nous nous
servirons de l’une d’entre elle pour créer le compte utilisateur.
 Démarrage du nœud EOSIO dans la machine
Ce nœud est divisé en deux sous nœuds : Keosd et nodeos. Nous allons au préalable démarrer le
nœud Keosd

Figure 23: Illustration du démarrage du nœud keosd


Nous avons les informations liées au portefeuille ainsi que l’ensemble des commandes qu’on
utilisera.

Ensuite démarrage du nœud nodeos

28
Figure 24: Illustration du nœud nodeos
Cette figure montre comment les blocs sont produits et ces données sont stockées dans des fichiers

- Vérification de l’effectivité du serveur

Figure 25: Informations liées au serveur


Sur cette figure, nous allons dans le navigateur de notre machine virtuelle et nous saisons l’adresse
IP de notre machine physique : 192.168.100.4. Pour avoir cette adresse IP nous saisissons en invite

29
de commande : ifconfig. Les informations liées aux nœuds sont : Version des serveurs, limite
maximale que le nœud peut supporter

 Création du compte utilisateur Alice

Figure 26 : Création d’un compte


Sur cette figure nous allons créer un compte pour interagir avec la clé publique obtenue dans le
portefeuille. A l’aide de la commande ‘’cleos create eosio alice clé publique’’. Par la suite nous
allons vérifier que la création du compte a été bien faite grâce à la commande ‘’ cleos get account
alice’’.

Figure 27: Vérification du compte utilisateur

30
Sur cette figure nous avons le jour de la création du compte Alice ainsi que l’heure. Nous
retrouvons également la clé publique associée au compteur Alice ainsi que les ressources allouées
à ce compte : Mémoire, CPU et le net. Ces ressources sont illimitées.

 Création du compte pour le contrat de la température

Figure 28 : Création du compte lié à la température


Sur cette figure nous créons un compte pour le contrat de température. C’est dans celui-ci qu’on à
la base de données.

 Création du contrat de la température

Figure 29: Création du contrat de la température


Sur cette figure la création du contrat de la température est faite à partir du compte utilisateur. Ici,
il s’agit de l’utilisateur alice. Son id et la température sont précisés.

 Insertion de la variable de la température dans la table


Elle se fait au moyen de la commande ‘’ cleos push action temp upsert’’.

31
Figure 30: Variable de la température
La variable ici c’est : $t. Le but de cette variable est de stocker les données de mesures des capteurs
afin d’être stockée par la suite dans la blockchain eos. C’est la raison pour laquelle à la place de la
valeur de la température 27 nous avons la variable $t. Par la suite nous vérifions que l’insertion est
effective au moyen de la commande : ‘’cleos get table temp temp sensors’’

Figure 31 : Vérification de la variable


Lorsque nous affichons les informations liées au compte alice nous constatons que la température
est 27 par conséquent elle a bien été insérée dans la table.

3.3 Récupération des valeurs du DHT11 dans le port série


Dans Arduino nous allons télécharger la librairie DHT Sensor et Adafruit. Celle-ci permet de lire
les valeurs de la température.

Figure 32: Librairie DHT11

32
Ensuite nous allons télécharger le code temps.ino afin de récupérer les valeurs chaque une minute.

Figure 33: code de récupération des valeurs


Dans un fichier Python, on crée un fichier pour ouvrir et lire le contenu du port série, lire la valeur
de la température et stocker dans le fichier output.txt chaque valeur. La figure suivante montre un
code python pour la réception des valeurs et insertion dans le fichier output.txt :

33
Figure 34 : Insertion des valeurs dans le fichier output.txt

Dans le shell linux, on crée un fichier bash pour la lecture et la récupération de la dernière ligne
du fichier output.txt, ensuite on affecte la valeur lue dans une variable du shell : $t. Les différentes
valeurs de la température sont stockées dans le fichier texte suivant :

Figure 35 : Différentes valeurs de la température

34
3.4 Lecture de la table à partir du Raspberry
Un client se connecte au Raspberry pour pouvoir récupérer les données qui sont dans la
blockchain. Pour se faire, la bibliothèque de EOSPY doit être installée à partir du repositery
Github, ensuite nous devons activer l’environnement de eospy et enfin nous vérifions que la
connexion du Raspberry au compte Alice dans le nœud EOSIO est effective.

Figure 36 : Informations liées au compte


Sur cette figure nous avons les informations suivantes :

 Nom du compte : Alice


 Numéro du bloc : 108860
 Date et heure de la création d’un bloc : 10 novembre 2020 à 10 :15
 Dernière mise à jour du code
 Les ressources allouées : mémoire, CPU et net
Par la suite nous récupérons la dernière valeur de la température à partir de la table temp.

35
Figure 37: Dernière valeur de la température

3.4 Discussion

 Problème de Scalabilité :
Selon Niclas Kullig, dans la blockchain Ethereum la vitesse des participants doit être adaptée aux
uns et aux autres en vue du déploiement dans le monde réel. Cela signifie d’une part le temps de
blocage avec la limite de gaz par bloc et d’autre part la vitesse avec laquelle les données des
capteurs sont envoyées dans la blockchain. Nous observons également qu’à long terme et avec
l’augmentation du nombre de valeurs stockées dans celle-ci, le temps de stockage augmente de
manière linéaire en raison de la complexité croissante et de la consommation des ressources de
l’exploitation minière du PoW.

Nous constatons également que la blockchain Ethereum ne supporte pas toutes les données IoT.Si
nous changeons les données de température par des données de … Il y’aura un disfonctionnement.
Ce qui n’est pas le cas de la blockchain EOS. Celle-ci a la capacité de mise à l’échelle. C’est-à-
dire, si le nombre d’utilisateurs augmentent ou si les données IoT changent la blockchain EOS sera
capable de continuer à assumer sa fonction sans qu’il y’ait un disfonctionnement.

 Mécanisme de consensus :
La blockchain Ethereum utilise la preuve de travail communément appelé proof of Work (PoW)
alors que La blockchain EOS utilise la preuve d’enjeu déléguée (DPoS). Le PoW doit être utilisé
avec précaution et il ne convient pas pour de grandes quantités de données IoT au sein d’Ethereum.
Une solution avec la blockchain Ethereum a été mise en place nous avons constaté qu’avec
l’augmentation du nombre de transactions et de blocs, la chaine de blocs de notre centre de données
a été vidée avant le début de chaque série d’essai. Le temps d’exécution du contrat intelligent

36
augmente de manière linéaire et peut atteindre les 9000 secondes ou 2,5 heures. Cette augmentation
du temps peut être clairement expliquée par l’utilisation de l’algorithme PoW dans la blockchain
Ethereum. De plus l’algorithme de PoW ne s’adapte pas bien à l’Internet des objets dans Ethereum
sur le long terme.

Par contre la blockchain EOS, arrive parfaitement à gérer une montée de charge importante. Nous
constatons que nous n’avons pas besoin de vider notre centre de données car la blockchain EOS
peut sauvegarder un important nombre de transactions et de blocs sans que le système ne devienne
lent et les frais de transactions disproportionnées.

 Transactions
Dans la blockchain Ethereum chaque transaction est payante et pas très rapide. Son nombre
maximal de transactions par secondes s’élève à 20. Alors que dans la blockchain EOS les
transactions sont gratuites et très rapide du fait d’une grande puissance de calcul (1,5secondes).
Elle a également une bande passante élevée ce qui a pour conséquence une forte réactivité du
réseau et effectue plus de 1000 transactions par secondes.

 Vulnérabilités aux attaques


La blockchain Ethereum est vulnérable aux attaques de dénis de service Alors que la blockchain
EOS

 Stockage
Dans la blockchain Ethereum la quantité de données sauvegardées est limitée alors que dans
EOS

37
Bien que EOS et Ethereum semblent assez similaires, il existe certaines différences entre les deux.
Elles sont présentées dans le tableau suivant :

Tableau 3 : Comparaison entre EOS et Ethereum

Mécanisme Transactions Pièces en Lancement Equipe Frais de


de par seconde circulation transaction
consensus
EOS DPoS 1000+ 896000 Juin 2017 Block.one Aucun
Ethereum PoW 15 100000 Juillet Ethereum < 1$
2015 Foundation

38
CONCLUSION GENERALE

Ce travail a porté sur l’élaboration d’un système de sécurisation des données fondé sur la
technologie blockchain afin de pouvoir garantir la fiabilité et l’intégrité des données. Notre but
était d’aboutir à la conception d’un prototype de composant de clients permettant de stocker les
données de manière permanente et de les récupérer à l’aide d’un Raspberry pi3+. Sur ce prototype
des scripts en python interrogent les valeurs d’un capteur de température DHT11 et les transfèrent
à une chaine de blocage EOS simulée via Arduino. En outre, un contrat intelligent a été rédigée en
cdt et migré en utilisant le langage de programmation ‘’C++’’. Lorsque les fonctions définies dans
le contrat intelligent ont été appelées, les données des capteurs ont été stockées avec un horodatage
dans la blockchain. Divers tests ont été conçus et réaliser pour évaluer ce prototype.

Pour atteindre cet objectif nous avons dans un premier temps présenté, les notions de base
indispensables à la compréhension du travail effectué, le fonctionnement, les concepts, les types
de blockchain, Par la suite le concept de l’internet des objets, l’architecture et ses protocoles. Après
avoir survolé le concept d’internet des objets nous avons présentés les critères et avantages d’une
ville intelligente ainsi que les différentes solutions qui ont été mises en place pour sécuriser les
données. Dans un second temps, nous avons présenté les différentes étapes pour mettre sur pied
notre prototype ainsi que les différents éléments entrant dans son élaboration que sont la
blockchain EOS, les contrats intelligents, création des portefeuilles, des comptes utilisateur et celui
pour le contrat de la température. Enfin nous avons procédé à des tests pour évaluer le prototype.
L’évaluation des résultats des tests devrait aider à clarifier les questions de ce projet. L’utilisation
de la technologie blockchain dans le contexte de l’internet des objets est réalisable dans la pratique
et peut donner des résultats et des optimisations significatifs. Les tests effectués ont prouvé que la
technologie blockchain dans le contexte de l’internet des objets est fondamentalement réalisable.
Néanmoins il faut noter que des problèmes peuvent survenir lors de l’utilisation. Par exemple le
fait que la blockchain eos soit considéré comme trop centralisé par rapport à d’autres.

39
Comme perspective nous avons en projet de simuler une attaque et voir comment le système réagit.
Dans la littérature nous avons constaté qu’aucun auteur n’a encore

40
references

[1] Mathilde Borel, La sécurisation des données : Quels enjeux pour les entreprises ,9 Mai 2018.

[2] Danièle DROMARD, Dominique SERET, Université de Paris-VI-Pierre-et-Marie-Curie,


Internet-Histoire, 11 pages.
[3] Red Hat Enterprise Linux 4 : Guide de sécurité, 2005,
[4-9] Oussama Abderraouf Ayadi ,Blockchain and IoMT,Université Constantine 2,Juillet 2019,
96P.

[10-12] Shuai Ren, The Application of blockchain and its advantage to the Field of Art , Janvier
2020 January 2020; DOI: 10.1088/1742-6596/1437/1/012063

[13] Oussama Abderraouf Ayadi ,Blockchain and IoMT,Université Constantine 2,Juillet 2019,
96P.
[14] Marine Debelloir, Qu’est-ce que le trilemme des blockchains et pourquoi les altcoins essaient
tous de le résoudre ? 1er Janvier 2020

[15] PETRE, ANCA, Haï, NASSIMA, Opportunités et enjeux de la technologie blockchain dans
le secteur de la santé, Med Sci (Paris), 852-856P ; DOI : 10.1051/medsci/2018204
[16] NGOUAHA MBIKAKEU Ronald, Implémentation de la blockchain pour la traçabilité des
transactions financières ; Ecole Nationale Supérieur des postes et des TIC, Yaoundé- Cameroun,
année ,108P.

[17] Applications of Blockchain Technology in Medicine and Healthcare: Challenges and Future
Perspectives, DOI: 10.3390/cryptography3010003

[18] Thomas Wohrer, Application de la blockchain à la sécurité informatique,


https://www.nomios.fr/application-blockchain-securite/ (consulté le 03 septembre 2020)

[19] NGOUAHA MBIKAKEU Ronald, Implémentation de la blockchain pour la traçabilité des


transactions financières ; Ecole Nationale Supérieur des postes et des TIC, Yaoundé- Cameroun,
année ,108 P.

41
[20] Numérique et Santé,Volume 34,Med Sci(Paris),19 novembre 2018 , 852-856
P.DOI : https ://doi.org/10.1051/medsci/2018204

42

Vous aimerez peut-être aussi