Explications à propos des réseaux Peer-to-Peer ou Pair à Pair
Accueil
Articles
Explications à propos des réseaux Peer-to-Peer ou Pair à Pair

Explications à propos des réseaux Peer-to-Peer ou Pair à Pair

Intermédiaire
Publié le Sep 30, 2019Mis à jour le Nov 16, 2022
7m

Qu'est-ce que le peer-to-peer (P2P; pair à pair)?

En l'informatique, un réseau peer-to-peer (P2P) est constitué d'un groupe d'appareils qui stockent et partagent collectivement des fichiers. Chaque participant (nœud) agit comme un pair individuel. Généralement, tous les noeuds ont une puissance égale et exécutent les mêmes tâches.

Dans la technologie de la finance, le terme peer-to-peer fait habituellement référence à l'échange de crypto-monnaies ou d'actifs numériques via un réseau distribué. Une plateforme P2P permet aux acheteurs et aux vendeurs d'exécuter des opérations sans avoir besoin d'intermédiaires. Dans certains cas, des sites Web peuvent également fournir un environnement P2P qui relie les prêteurs et les emprunteurs.

Les architectures P2P peuvent convenir à plusieurs cas d'utilisation, il devinrent particulièrement populaires dans les années 90 lorsque les premiers logiciels de partage de fichier furent créés. Aujourd'hui, les réseaux P2P sont au cœur de la plupart des crypto-monnaies existantes, servant ainsi une grande partie de l'industrie de la blockchain. Cependant, il sont également dérivés dans d'autre applications de type informatique, comme les moteurs de recherche, les plateformes de streaming, les magasins en ligne, et le protocole web InterPlanetary File System (IPFS), littéralement traduit par "système de fichier interplanétaire".


Comment fonctionne le P2P ?

En substance, un système P2P est maintenu par un réseau distribué d'utilisateurs. Habituellement, ils n'ont pas d'administrateur ou de serveur central parce que chaque nœud possède une copie des fichiers - agissant à la fois en tant que client et en tant que serveur pour d'autres nœuds. Ainsi, chaque nœud peut télécharger ou envoyer des fichiers à d'autres nœuds. C'est ce qui différencie les réseaux P2P des systèmes clients plus traditionnels, dans lesquels les périphériques clients téléchargent des fichiers à partir d'un serveur centralisé.

Sur les réseaux P2P, les périphériques connectés partagent des fichiers stockés sur leurs disques durs. En utilisant des applications logicielles conçues pour arbitrer le partage de données, les utilisateurs peuvent interroger d'autres périphériques sur le réseau pour trouver et télécharger des fichiers. Une fois qu'un utilisateur a téléchargé un fichier donné, ils peut alors agir comme source pour ce fichier.

Dit autrement, lorsqu'un nœud agit en tant que client, il télécharge des fichiers à partir d'autres nœuds du réseau. Puis, lorsqu'il travaille en tant que serveur, il devient la source à partir de laquelle d'autres noeuds peuvent télécharger des fichiers. En pratique, les deux fonctions peuvent être exécutées en même temps (par exemple, télécharger le fichier A, et transmettre le fichier B).

Sachant que chaque noeud stocke, transmet et reçoit des fichiers, les réseaux P2P tendent à gagner en vitesse et en efficacité au fur et à mesure que leur communauté d'utilisateur s'accroît. De plus, leur architecture distribuée rends les systèmes P2P très résistants aux cyberattaques. Contrairement aux modèles traditionnels, les réseaux P2P n'ont pas de point de défaillance unique.

Nous pouvons classer les systèmes peer-to-peer selon leur architecture. Les trois types principaux sont les réseaux P2P non-structurés, structurés et hybrides.


Réseaux P2P non structurés

Les réseaux P2P non-structurés ne présente aucune organisation spécifique des nœuds. Les participants communiquent entre eux de manière aléatoire. Ce type d'organisation est considéré comme robuste face à un taux élevé d'attrition (par exemple, lorsque de nombreux nœuds rejoignent et/ou quittent de le réseau).

Bien que plus facile à construire, les réseaux P2P non-structurés peuvent nécessiter une utilisation plus élevée du CPU et de la mémoire, car les requêtes de recherche sont envoyées au plus grand nombre de pairs possible. Cela tend à inonder le réseau avec des requêtes, surtout dans le cas où seul un petit nombre de nœuds possède le contenu souhaité.


Réseaux P2P structurés

Par contraste, les réseaux P2P structurés présentent une architecture organisée, permettant aux nœuds de rechercher efficacement des fichiers, même si le contenu en question n'est pas disponible sur une grande partie du réseau. Dans la plupart des cas, cela est réalisé par l'utilisation de fonctions de hachage qui facilitent les recherches au sein de bases de données.

Bien que les réseaux structurés se révèlent souvent plus efficace, ils ont tendance à présenter des niveaux de centralisation plus élevés, et nécessitent généralement des coûts de mise en place et d'entretien plus élevés. Par ailleurs, les réseaux structurés sont moins robustes face à des taux élevés d'attrition.


Réseaux P2P hybrides

Les réseaux P2P hybrides combinent le modèle de serveur client conventionnel avec certains aspects de l'architecture peer-to-peer. Par exemple, on peut intégrer dans ce modèle un serveur central qui facilite la connexion entre les pairs.

En comparaison avec les deux autres types, les modèles hybrides ont tendance à présenter une performance globale améliorée. Ils combinent généralement les principaux avantages de chaque approche, en obtenant des degrés d'efficacité et de décentralisation significatifs simultanément.


Distribué vs. Décentralisé

Bien que l'architecture P2P soit intrinsèquement distribuée, il est important de noter qu'il existe différent degrés de décentralisation. Ainsi, tous les réseaux P2P ne sont pas décentralisés.

En fait, de nombreux systèmes dépendent d'une autorité centrale pour guider l'activité du réseau, les rendant quelque peu centralisés. Par exemple, certains systèmes de partage de fichiers P2P permettent aux utilisateurs de rechercher et de télécharger des fichiers à partir d'autres utilisateurs, mais ils ne peuvent pas participer à d'autres processus, comme par exemple la gestion des requêtes de recherche.

En outre, les réseaux de petite taille contrôlés par une base utilisateur limitée partageant les même objectifs, pourraient également être considérés comme centralisés à un certain degré, malgré l'absence d'une infrastructure réseau centralisée.


Le rôle du P2P dans les blockchains

Lorsqu'il créa le Bitcoin, Satoshi Nakamoto le définit en tant que Système de Cash Electronique de Pair à Pair. Le Bitcoin fut créé en tant que monnaie digitale, il peut être transféré d'un utilisateur à l'autre au travers d'un réseau P2P qui gère un registre distribué que l'on nomme blockchain.
Dans ce contexte, l'architecture P2P inhérente à la technologie blockchain est donc ce qui permet de transférer du Bitcoin et d'autres crypto-monnaies dans le monde, sans avoir besoin d'intermédiaires ni de serveur central. En outre, tout le monde peut configurer un nœud Bitcoin s'il veut participer au processus de vérification et de validation de blocs.

Il n'y a donc pas de banques traitant ou enregistrant les transactions dans le réseau Bitcoin. Au lieu de cela, la blockchain agit comme un registre numérique qui enregistre publiquement toutes les activités. En résumé, chaque nœud possède une copie de la blokchain et la compare à d'autres nœuds pour s'assurer que les données sont exactes. Le réseau rejette rapidement toute activité malveillante, ou toute inexactitude.

Dans le contexte des blockchains crypto-monnaies, les noeuds peuvent jouer une variété de rôles différents. Les nœuds complets, par exemple, sont ceux qui fournissent la sécurité au réseau via la vérification des transactions, en appliquant les règles de consensus du système.
Chaque nœud complet préserve et maintient une copie complète et à jour de la blockchain — ce qui lui permet de participer à la tâche collective de vérification de l'état véritable du registre distribué. Il est important de noter que tous les noeuds complets ne sont pas des mineurs.


Avantages

L'architecture des blockchains peer-to-peer offre de nombreux avantages. Parmi les plus importants, le fait que les réseaux P2P offrent une meilleure sécurité que les arrangements traditionnels de serveur client. La distribution de blockchains sur de nombreux nœuds les rend virtuellement immunisés aux attaques par Deni-de-Service (DoS) qui frappent de nombreux systèmes.
De même, parce qu'une majorité de nœuds doit établir un consensus avant d'ajouter des données à une blockchain, il s'avère presque impossible pour un attaquant de modifier ou d'altérer ses données. Ceci est particulièrement vrai pour les grands réseaux comme Bitcoin. Les petites blockchains sont plus susceptibles d'être attaquées parce qu'une personne ou un groupe pourrait éventuellement obtenir le contrôle sur une majorité de noeuds (phénomène connu sous le nom d'attaque à 51 pourcent).
Par conséquent, le réseau distribué de pair à pair, associé à une exigence de consensus majoritaire, donne aux blockchains un degré relativement élevé de résistance aux activités malveillantes. Le modèle P2P est l'une des raisons pour lesquelles Bitcoin (et d'autres blockchains) a pu atteindre ce que l'on appelle la Tolérance aux Pannes Byzantine.

Au-delà de la sécurité, l'utilisation de l'architecture P2P dans les blockchains crypto-monnaie les rend également résistantes à la censure par les autorités centrales. Contrairement aux comptes bancaires standard, les portefeuilles crypto ne peuvent pas être gelés ou vidés par les gouvernements. Cette résistance s'étend également aux efforts de censure de la par des plateformes de traitement de paiement privées et les plateformes de contenu. Certains créateurs de contenu et marchands en ligne ont adopté les paiements en crypto-monnaie pour éviter de se retrouver bloqués par des tiers.


Limites

Malgré leurs nombreux avantages, l'utilisation de réseaux P2P sur les blockchains entraîne également certaines limitations.

Parce que les registres distribués doivent être mis à jour sur chaque nœud au lieu d'un seul serveur central, ajouter des transactions à une blockchain nécessite une quantité massive de puissance informatique. Bien que cela apporte une sécurité accrue, cela réduit considérablement l'efficacité et constitue l'un des principaux obstacles en matière d'évolutivité et d'adoption généralisée. Néanmoins, les cryptographes et les développeurs blockchain enquêtent sur des alternatives qui peuvent être utilisées comme solutions de scalabilité. Les exemples importants incluent le Réseau Lightning; L'Ethereum Plasma, et le protocole Mimblewimble.
Une autre limitation potentielle concerne les attaques qui peuvent survenir pendant les événements de  Hard Fork. Étant donné que la plupart des blockchains sont décentralisées et open source, les groupes de noeuds sont libres de copier et de modifier le code, afin de se séparer de la chaîne principale pour former un nouveau réseau parallèle. Les hard forks sont tout à fait normaux et ne représentent pas une menace en eux-mêmes. Mais si certaines méthodes de sécurité ne sont pas adoptées correctement, les deux chaînes peuvent devenir vulnérables aux attaques de réécriture.

De plus, la nature distribuée des réseaux P2P les rend relativement difficiles à contrôler et à réglementer. Ce fait n'est pas seulement propre à la niche de la blockchain, plusieurs application et entreprises P2P se sont retrouvées impliquées dans des activités illégales ainsi que des violations de copyright.


Pour conclure

L'architecture Peer-to-peer peut être développée et utilisée de différentes manières, et elle est au cœur des blockchains qui rendent possible l'existence des crypto-monnaies. En distribuant des registres de transactions sur de grands réseaux de nœuds, l'architecture P2P offre la sécurité, la décentralisation et la résistance à la censure.

En plus de leur utilité dans la technologie de la blockchain, les systèmes P2P peuvent également servir d'autres applications de calcul distribués, allant des réseaux de partage de fichiers aux plateformes de trading d'énergie.