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

En informatique, un réseau pair à pair (P2P) est un ensemble d'appareils qui stockent et partagent des fichiers de manière collective. Chaque participant (nœud) agit comme un pair individuel. Chaque nœud a généralement une puissance égale et effectue les mêmes tâches.

Dans les technologies financières, le terme pair à pair fait généralement référence à l'échange de devises ou d'actifs numériques à travers un réseau distribué. Les plateformes P2P permettent aux acheteurs et aux vendeurs d'exécuter des transactions directement sans intermédiaires. Dans certains cas, des sites web peuvent également fournir un environnement P2P reliant les prêteurs et les emprunteurs.

L'architecture P2P peut convenir à de nombreux cas d'utilisation différents, mais elle est devenue particulièrement populaire dans les années 1990 lorsque les premiers logiciels de partage de fichiers ont été créés. Aujourd'hui, les réseaux P2P sont au cœur de la plupart des cryptomonnaies, qui constituent une part importante de l'industrie de la blockchain. Actuellement, ils sont également soutenus dans d'autres applications de calcul distribué, y compris les moteurs de recherche Web, les plateformes de streaming, les marchés en ligne et le protocole InterPlanetary File System (IPFS).


Comment fonctionne le P2P ?

Essentiellement, les systèmes P2P sont maintenus par un réseau distribué d'utilisateurs et n'ont généralement pas d'administrateur central ou de serveur car chaque nœud détient une copie des fichiers et fonctionne à la fois comme client et serveur pour d'autres nœuds. Par conséquent, chaque nœud peut télécharger des fichiers à partir d'autres nœuds ou télécharger des fichiers vers d'autres nœuds. C'est ce qui distingue les réseaux P2P des systèmes de serveurs traditionnels où les appareils téléchargent des fichiers à partir d'un serveur central.

Les appareils connectés sur des réseaux P2P partagent les fichiers stockés sur leurs disques durs à l'aide d'applications logicielles conçues pour faciliter le partage de données et de fichiers. Les utilisateurs peuvent également interroger d'autres appareils connectés sur le réseau pour trouver et télécharger des fichiers, et une fois qu'un utilisateur a téléchargé un fichier particulier, il peut ensuite agir comme source pour ce fichier.

En d'autres termes, lorsque le nœud agit en tant que client, il télécharge des fichiers à partir des nœuds du réseau. Mais lorsque le nœud agit en tant que serveur, il devient la source à partir de laquelle d'autres nœuds peuvent télécharger des fichiers. Cependant, en pratique, les deux fonctions peuvent être exécutées simultanément (comme télécharger le fichier A et télécharger le fichier B).

Les réseaux P2P tendent à être plus rapides et plus efficaces à mesure que leur base d'utilisateurs croît, car chaque nœud stocke, transfère et reçoit des fichiers. De plus, leur architecture distribuée rend les systèmes P2P très résistants aux cyberattaques car les réseaux P2P n'ont pas de point de défaillance unique contrairement aux modèles traditionnels.

Nous pouvons classer les systèmes de pair à pair en fonction de leur architecture. Les trois types principaux de réseaux P2P sont : non organisés, organisés et hybrides.


Réseaux P2P non organisés

Les réseaux P2P non organisés ne présentent aucune organisation spécifique des nœuds. Les participants y communiquent de manière aléatoire entre eux. Ces systèmes sont considérés comme efficaces lorsqu'il y a une forte activité (par exemple, de nombreux nœuds rejoignent et quittent le réseau fréquemment).

Bien qu'il soit facile de construire des réseaux P2P non organisés, ils 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 possible de pairs. Cela a tendance à inonder le réseau de requêtes, surtout s'il y a peu de nœuds offrant le contenu recherché.


Réseaux P2P organisés

En revanche, les réseaux P2P organisés offrent une structure organisée comme leur nom l'indique. Cela permet aux nœuds de rechercher efficacement des fichiers même si le contenu n'est pas largement disponible. Dans la plupart des cas, cela est réalisé en utilisant des fonctions de hachage qui facilitent les recherches dans la base de données.

Bien que les réseaux organisés puissent être plus efficaces, ils ont tendance à présenter des niveaux plus élevés de centralisation et nécessitent généralement des coûts d'installation et de maintenance plus élevés. Par ailleurs, les réseaux organisés sont également moins robustes lorsqu'ils sont confrontés à des taux élevés de perturbation.


Réseaux P2P hybrides

Les réseaux P2P hybrides combinent le modèle client-serveur traditionnel avec certains aspects de l'architecture pair à pair. Par exemple, ils conçoivent un serveur central qui facilite la communication entre les pairs.

Comparé aux deux autres types de réseaux de pair à pair, le type hybride a tendance à offrir de meilleures performances globales. Il combine généralement certains des principaux avantages de chaque type, réalisant ainsi de grands niveaux d'efficacité et de décentralisation simultanément.


Distribué et décentralisé

Bien que l'environnement P2P soit par nature distribué, il est important de noter qu'il existe des degrés variés de décentralisation. Ainsi, tous les réseaux P2P ne sont pas décentralisés.

En réalité, de nombreux systèmes dépendent d'une autorité centrale pour diriger l'activité du réseau, ce qui les rend quelque peu centralisés. Par exemple, certains systèmes P2P de partage de fichiers permettent aux utilisateurs de rechercher et de télécharger des fichiers d'autres utilisateurs, mais ils ne peuvent pas participer à d'autres opérations telles que la gestion des recherches.

De plus, nous pouvons dire que les petits réseaux contrôlés par une base d'utilisateurs limitée avec des objectifs communs ont un degré de centralisation plus élevé, même sans infrastructure centrale au sein du réseau.


Le rôle du pair à pair (P2P) dans la blockchain

Au début de Bitcoin, Satoshi Nakamoto l'a défini comme "un système de monnaie électronique de pair à pair". Bitcoin a été créé comme une forme numérique d'argent. Il peut être transféré d'un utilisateur à un autre via un réseau P2P qui gère un grand livre distribué appelé blockchain.

Dans ce contexte, l'architecture P2P intégrée à la technologie blockchain permet de transférer/converser des bitcoins et d'autres cryptomonnaies à travers le monde facilement sans intermédiaires ou serveur central. Quiconque peut également configurer un nœud sur la blockchain Bitcoin s'il souhaite participer au processus de vérification et de validation des blocs.

Il n'y a donc pas de banques traitant ou enregistrant les transactions sur le réseau Bitcoin. Au lieu de cela, la blockchain fonctionne comme un grand livre numérique distribué qui enregistre toutes les activités publiquement afin que d'autres participants puissent les visualiser. Fondamentalement, chaque nœud conserve une copie de la blockchain et la compare avec d'autres nœuds pour garantir l'exactitude des données. Le réseau rejette rapidement toute activité nuisible ou inexacte.

Dans le domaine de la blockchain des cryptomonnaies, les nœuds peuvent remplir une variété de rôles différents. Par exemple, les nœuds complets sont ceux qui fournissent la sécurité au réseau en vérifiant les transactions conformément aux règles de consensus du système.

Chaque nœud complet conserve une copie complète et à jour de la blockchain, ce qui lui permet de participer au travail collectif de vérification de l'état actuel du grand livre distribué. Cependant, il convient de noter que tous les nœuds de validation complets ne sont pas représentés par les mineurs.


Les caractéristiques

L'architecture P2P de la blockchain offre de nombreux avantages. Parmi les plus importants de ces avantages, il y a le fait que les réseaux P2P offrent une sécurité accrue par rapport aux arrangements traditionnels client-serveur. Le fait que la blockchain soit distribuée sur un grand nombre de nœuds la rend pratiquement immunisée contre les attaques par déni de service (DoS) qui touchent de nombreux systèmes.

De plus, comme la majorité des nœuds doivent parvenir à un état de consensus avant d'ajouter des données à la blockchain, il est presque impossible pour un attaquant de modifier les données. Cela s'applique particulièrement aux grands réseaux comme le réseau Bitcoin. Les réseaux blockchain de plus petite taille sont plus vulnérables aux attaques car une seule personne ou un groupe peut finalement contrôler la majorité des nœuds (c'est ce qu'on appelle une attaque 51% ou une attaque de majorité).

En conséquence, le réseau P2P distribué associé aux exigences de consensus majoritaire confère aux réseaux blockchain 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 réseaux blockchain) a pu atteindre ce qu'on appelle la tolérance aux fautes byzantines.

En plus de la protection qu'il offre, l'utilisation de l'architecture P2P dans les cryptomonnaies la rend également résistante à la censure par les autorités centrales. Contrairement aux comptes bancaires traditionnels, où les portefeuilles de cryptomonnaies ne peuvent pas être gelés ou saisis par les gouvernements. Cette résistance s'étend également aux efforts de censure réalisés par des systèmes de paiement privés et des plateformes de contenu. Certains créateurs de contenu et commerçants en ligne ont adopté les paiements en cryptomonnaie comme moyen d'éviter que leurs paiements ne soient bloqués par des tiers.


Les limitations

Bien qu'il existe de nombreux avantages, l'utilisation des réseaux P2P sur la blockchain a également des limitations certaines.

Puisque le grand livre distribué doit être mis à jour sur chaque nœud participant plutôt que sur un serveur central, l'ajout de transactions à la blockchain nécessite une quantité énorme de puissance de calcul. Bien que cette procédure offre une sécurité accrue, elle réduit considérablement l'efficacité et représente l'un des principaux obstacles en matière d'évolutivité et d'adoption à grande échelle. Cependant, les passionnés de cryptographie et les développeurs de blockchain recherchent actuellement des alternatives pouvant servir de solutions à cette mise à l'échelle. Des exemples notables incluent : le réseau Lightning (Lightning Network), Plasma Ethereum et le protocole Mimblewimble.

Une autre limitation potentielle concerne les attaques qui peuvent survenir lors d'événements de Hard Fork. Étant donné que la plupart des réseaux blockchain sont décentralisés et open source, les groupes de nœuds sont libres de copier et de modifier le code, de se diviser de la chaîne principale et de former un nouveau réseau parallèle. Le hard fork est tout à fait normal et ne constitue pas une menace en soi, mais si certaines mesures de sécurité ne sont pas appliquées correctement, les deux chaînes peuvent devenir vulnérables aux attaques de réinjection.

De plus, la nature distribuée des réseaux P2P rend relativement difficile leur contrôle et leur légitimation, pas seulement dans le domaine de la blockchain. De nombreuses applications et entreprises P2P ont été impliquées dans des activités illégales et des violations de droits d'auteur.


Idées finales

L'architecture pair à pair peut être développée et utilisée de différentes manières. C'est le cœur de la blockchain qui a rendu les cryptomonnaies possibles. L'architecture P2P offre sécurité, décentralisation et résistance à la censure en distribuant les livres de transactions à travers de grands réseaux de nœuds.

En plus de son utilité dans le domaine de la technologie blockchain, les systèmes P2P peuvent également être utilisés dans d'autres applications de calcul distribué, allant des réseaux d'échange de fichiers aux plateformes de négociation d'énergie.