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

En informatique, un réseau peer-to-peer, ou réseau peer-to-peer (P2P), consiste en un groupe d'appareils qui stockent et partagent collectivement des fichiers. Chaque participant (nœud) agit comme un pair individuel. Habituellement, tous les nœuds ont la même puissance et effectuent les mêmes tâches.

Dans la technologie financière, le terme peer-to-peer est souvent utilisé pour décrire le processus d'échange de crypto-monnaies ou d'actifs numériques sur un réseau distribué. Les plateformes P2P permettent aux acheteurs et aux vendeurs d’effectuer des transactions sans avoir recours à des intermédiaires. Dans certains cas, les sites Web peuvent également fournir un environnement P2P pour mettre en relation 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 programmes de partage de fichiers ont été créés. Aujourd’hui, les réseaux P2P constituent l’élément central de la plupart des crypto-monnaies et constituent une grande partie de l’industrie de la blockchain. Cependant, ils sont également exploités dans d'autres applications informatiques distribuées, notamment les moteurs de recherche Web, les plateformes de streaming, les marchés en ligne et le protocole Web Interplanetary File System (IPFS).


Comment fonctionne un réseau peer-to-peer ?

Essentiellement, un système peer-to-peer est géré par un réseau distribué d'utilisateurs. Ce réseau n'a généralement pas d'administrateur central ni de serveur car chaque nœud stocke une copie des fichiers et chaque nœud agit en tant que client et serveur pour les autres nœuds. Par conséquent, chaque nœud peut télécharger des fichiers depuis d’autres nœuds ou télécharger des fichiers vers d’autres nœuds. C'est ce qui différencie les réseaux peer-to-peer des systèmes serveur-client plus traditionnels, dans lesquels les appareils clients téléchargent des fichiers à partir d'un serveur centralisé.

Sur un réseau peer-to-peer, les appareils connectés partagent des fichiers stockés sur leurs disques durs. À l'aide d'applications logicielles conçues pour faciliter le partage de données, les utilisateurs peuvent interroger d'autres appareils sur le réseau pour rechercher et télécharger des fichiers. Une fois qu'un utilisateur a téléchargé un fichier, il peut agir en tant que source de ce fichier.

En d’autres termes, lorsqu’un nœud agit en tant que client, il télécharge des fichiers depuis d’autres nœuds du réseau. Mais lorsqu’ils agissent comme serveur, ils constituent la source à partir de laquelle d’autres nœuds peuvent télécharger des fichiers. Cependant, en réalité, les boutons peuvent remplir deux fonctions en même temps (par exemple, télécharger le fichier A et télécharger le fichier B).

Étant donné que chaque nœud dispose de fonctions permettant de stocker, transmettre et recevoir des fichiers, les réseaux peer-to-peer ont tendance à fonctionner plus rapidement et plus efficacement à mesure que leurs communautés d'utilisateurs s'agrandissent. De plus, leur architecture distribuée rend 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 trois styles architecturaux principaux : les réseaux peer-to-peer non structurés, structurés et hybrides.


Les réseaux peer-to-peer (P2P) ne sont pas structurés

Les nœuds d'un réseau P2P non structuré ne sont organisés selon aucune structure particulière. Les participants communiquent entre eux de manière aléatoire. Ces systèmes sont considérés comme robustes face au désabonnement des utilisateurs (où certains nœuds rejoignent et quittent fréquemment le réseau).

Bien que plus faciles à construire, les réseaux P2P non structurés peuvent nécessiter une utilisation plus importante de la mémoire et du processeur, 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 n'y a qu'un petit nombre de nœuds fournissant le contenu souhaité.


Réseau peer-to-peer structuré (P2P)

En revanche, les nœuds d'un réseau P2P ont une architecture organisée, permettant aux nœuds de rechercher des fichiers efficacement, même lorsque le contenu n'est pas largement disponible. Dans la plupart des cas, cela est réalisé grâce à l'utilisation de fonctions de hachage qui permettent des recherches dans la base de données.

Même si les réseaux structurés peuvent être plus efficaces, ils présentent généralement un degré plus élevé de centralisation et nécessitent souvent des coûts de configuration et de maintenance plus élevés. De plus, les réseaux sont structurellement moins robustes lorsqu’ils sont confrontés à un taux de désabonnement élevé des utilisateurs.


Réseau hybride peer-to-peer (P2P)

Les réseaux P2P hybrides combinent une architecture client-serveur traditionnelle avec certains aspects d'une architecture peer-to-peer. Par exemple, ce réseau peut concevoir un serveur central pour créer des connexions entre les ordinateurs homologues du réseau.

Par rapport aux deux autres architectures, les modèles hybrides affichent souvent des performances opérationnelles supérieures. Elles combinent les principaux avantages de chaque méthode, offrant un degré significatif d’efficacité et de décentralisation.


Distribué versus décentralisé

Bien que l’architecture P2P soit de nature distribuée, il est important de noter qu’il existe différents niveaux de décentralisation. Tous les réseaux P2P ne sont donc pas décentralisés.

En fait, de nombreux systèmes s'appuient sur un système central pour exécuter les opérations du réseau, ce qui les rend quelque peu centralisés. Par exemple, certains systèmes de partage de fichiers peer-to-peer permettent aux utilisateurs de rechercher et de télécharger des fichiers auprès d'autres utilisateurs, mais cet utilisateur ne peut pas participer à d'autres processus, tels que la gestion des requêtes de recherche.

De plus, les petits réseaux contrôlés par une petite communauté d’utilisateurs ayant des objectifs communs peuvent également être considérés comme ayant un degré plus élevé de centralisation, même s’ils ne disposent pas d’une infrastructure réseau centralisée.


Le rôle du P2P dans la blockchain

Au début du Bitcoin, Satoshi Nakamoto l'a défini comme un « système de paiement électronique peer-to-peer ». Bitcoin a été initialement créé comme une forme de monnaie numérique. Il peut être transféré d'un utilisateur à un autre via un réseau peer-to-peer, qui gère un registre distribué appelé blockchain.

Dans ce contexte, c’est l’architecture peer-to-peer, technologie au cœur de la blockchain, qui permet aux utilisateurs d’échanger du Bitcoin et d’autres cryptomonnaies partout dans le monde sans avoir besoin d’intermédiaires ni de serveurs. Quel centre ? De plus, n’importe qui peut devenir un nœud sur le réseau Bitcoin s’il souhaite participer au processus de vérification et de validation des blocs.

Il n’existe donc aucune banque pour traiter ou enregistrer les transactions sur le réseau Bitcoin. Au lieu de cela, la blockchain agit comme un grand livre numérique qui enregistre publiquement toutes les activités. Essentiellement, 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 nie rapidement toute activité malveillante ou incorrecte.

Dans le contexte des blockchains de cryptomonnaies, les nœuds peuvent assumer différents rôles. Par exemple, les nœuds complets sont des nœuds qui contribuent à maintenir la sécurité du 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 leur permet de participer à un travail commun pour vérifier l'état réel du grand livre distribué. Cependant, il convient de noter que tous les nœuds pleinement validés ne sont pas des mineurs.


Avantages des réseaux peer-to-peer

L’architecture peer-to-peer de la Blockchain offre de nombreux avantages. L’avantage le plus important est que les réseaux peer-to-peer sont plus sécurisés que les architectures client-serveur traditionnelles. La répartition des blockchains sur un grand nombre de nœuds les rend pratiquement résistantes aux attaques par déni de service (DoS) qui ont été utilisées pour attaquer de nombreux systèmes.

De même, étant donné que la majorité des nœuds doivent parvenir à un consensus avant que de nouvelles données ne soient ajoutées à la blockchain, il est presque impossible pour un attaquant de modifier les données. Cela est particulièrement vrai pour les grands réseaux comme le réseau Bitcoin. Les blockchains plus petites sont plus vulnérables aux attaques, car une personne ou un groupe peut prendre le contrôle de la majorité des nœuds (c'est ce qu'on appelle une attaque à 51 %).

Par conséquent, les réseaux peer-to-peer distribués, combinés à l’exigence d’un consensus majoritaire, rendent les blockchains très résistantes aux activités malveillantes. C’est le modèle P2P qui permet au Bitcoin (et à d’autres blockchains) d’atteindre ce qu’on appelle la tolérance aux pannes byzantine.

Outre la sécurité, l’utilisation de l’architecture P2P dans les blockchains de cryptomonnaies les rend également résistantes à la censure des autorités centrales. Contrairement aux comptes bancaires standards, les gouvernements ne peuvent pas geler ou vider les portefeuilles de cryptomonnaies. De plus, l’architecture P2P aide également les blockchains à résister à la censure des plateformes de contenu privées et des plateformes de traitement des paiements. Certains créateurs de contenu et commerçants en ligne ont adopté les paiements en crypto-monnaie comme moyen d'éviter le blocage des paiements par des tiers.


Limites des réseaux peer-to-peer

Malgré de nombreux avantages, l’utilisation des réseaux P2P sur blockchain présente également certaines limites.

Étant donné que le registre distribué doit être mis à jour sur chaque nœud plutôt que sur un serveur central, l’ajout de transactions à la blockchain nécessite une grande puissance de calcul. Bien que cela augmente la sécurité, cela réduit considérablement les performances et constitue l'un des principaux obstacles à l'évolutivité et à l'adoption généralisée du réseau. Cependant, les cryptographes et les développeurs de blockchain travaillent sur des alternatives pouvant être utilisées comme solutions de mise à l’échelle. Les exemples marquants incluent les protocoles Lightning Network, Ethereum Plasma et Mimblewimble.

Une autre limitation possible concerne les attaques qui peuvent survenir lors d’événements de fractionnement de chaîne (hard fork). Étant donné que la plupart des blockchains sont décentralisées et open source, les groupes de nœuds sont libres de copier et de modifier le code et de se séparer de la chaîne principale pour former un nouveau réseau parallèle. Les ruptures de chaîne (hard forks) sont tout à fait normales et ne constituent pas une menace en soi. Cependant, si certaines méthodes de sécurité ne sont pas appliquées correctement, les deux chaînes peuvent facilement devenir la cible d’attaques par rejeu.

En outre, la nature distribuée des réseaux P2P les rend relativement difficiles à contrôler et à réguler, notamment dans le segment de la blockchain. Certaines applications et entreprises P2P se sont livrées à des activités illégales et au piratage.


Conclure

L’architecture peer-to-peer est l’élément central de la technologie blockchain – le fondement de la crypto-monnaie. Il existe de nombreuses façons de développer et d’utiliser une architecture peer-to-peer. En répartissant les registres de transactions sur un vaste réseau de nœuds, l'architecture P2P assure la sécurité, la décentralisation et la résistance à la censure.

En plus de leurs avantages dans la technologie blockchain, les systèmes P2P peuvent également être appliqués à d’autres applications informatiques distribuées, depuis les réseaux de partage de fichiers jusqu’aux plateformes d’échange d’énergie.