Analyse, valorisation et protection des réseaux pair-à-pair de blockchains publiques
Auteur / Autrice : | Jean-Philippe Eisenbarth |
Direction : | Olivier Perrin, Thibault Cholez |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 13/12/2022 |
Etablissement(s) : | Université de Lorraine |
Ecole(s) doctorale(s) : | École doctorale IAEM Lorraine - Informatique, Automatique, Électronique - Électrotechnique, Mathématiques de Lorraine (1992-....) |
Partenaire(s) de recherche : | Laboratoire : Laboratoire lorrain de recherche en informatique et ses applications |
Jury : | Président / Présidente : Vincent Chevrier |
Examinateurs / Examinatrices : Olivier Perrin, Thibault Cholez, Arnaud Legout, Radu State, Emmanuelle Anceaume, Maryline Laurent | |
Rapporteurs / Rapporteuses : Arnaud Legout, Radu State |
Mots clés
Résumé
Les blockchains reposent sur des réseaux P2P essentiels à leur bon fonctionnement puisqu'ils assurent la dissémination des transactions et des blocs à l'ensemble des parties. Alors que Bitcoin et Ethereum - les deux principales blockchains publiques - capitalisent aujourd'hui des milliers de milliards de dollars, attirant chaque jour de nouveaux utilisateurs, peu d'études s'intéressent aux aspects réseau bien que la littérature montre que de nombreux problèmes peuvent réduire la fiabilité des réseaux P2P publics. Dans cette thèse, nous nous sommes intéressés dans un premier temps à la supervision des réseaux P2P des blockchains Bitcoin et Ethereum. Nous avons implanté un crawler pour chaque réseau capable de découvrir tous les pairs connectés et avons analysé les données issues de campagnes de mesure de plusieurs mois. Différents critères pouvant affecter la fiabilité du réseau ont été étudiés, tels que le nombre de pairs, leur distribution du point de vue géographique ou du réseau IP, leur taux d'attrition, la proportion de clients aux vulnérabilités connues, l'existence de motifs journaliers de connexion ou encore la capacité d'inférer la topologie. Il apparaît que les deux réseaux montrent de bonnes propriétés sur tous ces points. Partant du constat que, d'une part, le réseau P2P d'Ethereum basé sur une table de hachage distribuée (DHT) est largement inexploité, car aucune donnée n'est stockée dans la DHT, et que, d'autre part, le stockage des données de la blockchain ne fait que croître (ce qui posera des problèmes à terme), nous avons étudié dans un second temps le stockage des données du principal client d'Ethereum (Geth) et sa manière de synchroniser l'état de la blockchain entre les pairs. Nous avons conçu une nouvelle architecture distribuée de stockage pour Ethereum tirant parti de la DHT, rétrocompatible avec les clients actuels et pouvant réduire l'espace disque, utilisé pour le stockage long terme, de 95% (58% du stockage total) sans impact sur les garanties ou les performances de la blockchain Ethereum. Le stockage des données sur la DHT la rend cependant plus intéressante à attaquer, en particulier par des attaques Sybil localisées. Nous avons donc analysé les pairs d'Ethereum à la recherche de motifs pouvant traduire des attaques Sybil et montré l'existence de milliers de nœuds suspects regroupant un grand nombre d'identifiants pour une même adresse IP (jusqu'à 10000/IP). Nous avons finalement conçu et implanté une architecture de protection contre les attaques Sybils. Celle-ci se base sur un crawler détectant les nœuds suspects en temps réel, un smart contract structurant l'information et la distribuant à tous les pairs, et enfin une révocation complètement distribuée, chaque pair constatant lui-même l'attaque et coupant ses connexions aux nœuds Sybils. La mise en œuvre sur un réseau de test Ethereum a montré l'efficacité de l'architecture proposée.