VIII.4. Réseau décentralisé (ou pair-à-pair)

email Facebook Twitter
Màj : 18 nov. 2023   –   # pages : 14

Définitions

https://democratiedirecte.net/reseau-decentralise#definition

De plus en plus de logiciels concernent des applications de réseau (mail, navigateur, Facebook, Bitcoin, ...). La quasi totalité de ces applications fonctionnent sur base d'un type de réseau dit "centralisé".

Centralisé

client-serveur.gif

Décentralisé

p2p.gif

Il existe donc deux modèles de réseau fondamentaux : centralisé (modèle dit "client-serveur") vs décentralisé (modèle dit "pair-à-pair") :

  • client-serveur c-à-d centralisé : des ordinateurs "serveurs" (automatiques, donc sans clavier) fournissent des services (applications et données) à votre ordinateur "client" (encore appelé "terminal", car il ne dispose que d'une seule connexion au réseau) ;

    Les routeurs sont des serveurs très spécifiques, en l'occurrence ce sont des postes relais, fournissant un service de routage des données, pour les acheminer de l'expéditeur au destinataire.

  • pair-à-pair c-à-d décentralisé : chaque ordinateur du réseau est à la fois client et serveur (et est alors appelé "noeud"), de sorte qu'il peut communiquer "directement" avec n'importe quel autre noeud du réseau, via d'autres noeuds (qui assument la fonction de routage), et au travers d'un tunnel virtuel par lequel les données privées voyagent de façon cryptée (ce qui est aussi, le cas dans la communication client-serveur).

Distribution

Une caractéristique naturelle des réseaux décentralisés, c'est la possibilité de distribuer les applications et les données sur tout ou partie des noeuds. On peut distinguer deux types de distribution :

  • multiplication : un même type de service est fourni par tous les noeuds (par exemple les utilisateurs hébergent leur site web sur leur propre machine, plutôt que sur celle d'un hébergeur) ;
  • division : les différents composants d'un même service (stockage, calcul, ...) peuvent être répartis/partagés entre tout ou partie des noeuds.

Soit n le nombre total de noeuds, et d le facteur de division, dès lors que d ≤ n ⇒ le taux de distribution d / n ≤ 1. Autrement dit, il existe un continuum entre deux extrêmes théoriques :

  • réseau (100 %) centralisé (≡ 0 % décentralisé) : d = 0d / n = 0
  • réseau (100 %) décentralisé (≡ 0 % centralisé) : d = nd / n = 1

"Décentralisé" et "distribué" sont donc synonymes.

p2p.gif

L'illustration ci-contre d'un réseau "pair-à-pair" illustre un phénomène fréquent voire systématique pour les réseaux décentralisés :

  • parmi les noeuds assumant leurs fonctions serveurs il y en a généralement quelques-un un qui se distinguent des autres par un nombre de connexions substantiellement plus élevé ;

  • le point précédent résulte généralement du fait que la plupart des noeuds assument un nombre très limité de fonctions serveurs (souvent identiques, à commencer par le routage).

Topologie

En matière de topologie des noeuds il n'y a pas nécessairement correspondance spatiale entre matériels ("hardware"), logiciels ("software") et données ("data"). Une caractéristique importante dans la gestion de la structure d'un réseau est qu'il est plus facile (moins coûteux) de déplacer ou remplacer du logiciel et des données que du matériel.

Plus généralement, un réseau n'est pas seulement déterminé par des contraintes et potentialités techniques, mais également par des considérations économiques, politiques, stratégiques et culturelles.

  • Exercice : identifiez les différences entre un réseau "décentralisé" et un marché de réseaux clients-serveur fournissant en concurrence un service de même type.

  • La sous-traitance (encore appelée externalisation) ne relève pas de la décentralisation, mais de la délocalisation (nous reviendrons sur ce point).

En outre, ces divers facteurs sociologiques sont variables dans l'espace et le temps. Ainsi on peut juste dire que :

  • tel réseau est "plus ou moins décentralisé" que tel autre (comparaison spatiale) ;
  • tel réseau est "plus ou moins décentralisé" qu'avant (comparaison temporelle).

Dans la section suivante, nous évoquerons notamment la thèse selon laquelle il existerait une impossibilité physique/logique à l'existence d'un réseau 100 % décentralisé, c-à-d que d / n < 1d < n. Ainsi, à l'instar de la démocratie directe, la décentralisation intégrale serait un idéal vers lequel on peut tendre indéfiniment.

Avantages et inconvénients

https://democratiedirecte.net/reseau-decentralise#avantages-et-inconvenients

Dans un réseau pair-à-pair, aucun des noeuds n'est indispensable, contrairement au modèle centralisé qui ne peut fonctionner sans serveur. Mais c'est encore là une simplification théorique : en pratique il serait plus exacte de dire que le coût collectif de remplacement d'un noeud serveur est inférieur à celui d'un serveur.

Le coût total d'une machine serveur (matériel, local, maintenance, sécurité, ...) est bien plus élevé que celui d'une machine client.

La plus grande facilité de coordination du réseau est un avantage du serveur central, mais d'autre part le réseau centralisé est plus sujet au phénomène de goulot d'étranglement (précisément au niveau du serveur) alors qu'un réseau décentralisé peut minimiser ce risque plus efficacement ... mais au prix d'une plus grande complexité.

Une application en réseau pair-à-pair est donc caractérisée par une plus grande complexité, et même – selon le théorème CAP – par des limitations induisant d'inévitables arbitrages entre critères de performance des fonctionnalités de l'application.

Exemple. Un moteur de recherche décentralisé est confronté à la difficulté d'opérer de façon décentralisée les fonctions suivantes :

  1. apprendre la topologie des nœuds du réseau (annuaire des utilisateurs, ...) ;
  2. rechercher l’information sur tous les nœuds ;
  3. recevoir une réponse d’un nœud répondant aux critères de recherche.

Exemple d'arbitrage : garantir que toute recherche obtient un résultat peut impliquer que deux mêmes recherches n'obtiendront pas le même résultat.

Il résulte de ces limitations que le coût global d'une application décentralisée peut être plus élevé que celui d'une application mixte, notamment lorsqu'on intègre dans les coûts la consommation énergétique (cf. infra), la formation des utilisateurs, ou encore la gestion du risque.

Sécurité. Une question fondamentale concernant la sensibilité aux attaques (et aux erreurs) est : l'inconvénient que le niveau de sécurité d'un réseau décentralisé peut dépendre de celui du plus faible de ses noeuds, est-il compensé par la plus grande résilience du réseau décentralisé (notamment par le remplacement automatique d'un noeud corrompu, par un noeud équivalent sain) ? Ce n'est pas le cas du vol de données privées, sauf si le vol provoque la destruction des données, ce qui, selon nous, pourrait être possible avec l'informatique quantique (NB : laquelle ne requiert pas nécessairement des ordinateurs quantiques).

La notion de résilience renvoie de manière générique à une capacité à résister, absorber et/ou rebondir face à un choc traumatisant, que cela soit à un niveau individuel, organisationnel, territorial voire sociétal. Sur le plan organisationnel, la résilience implique des capacités dynamiques visant à anticiper, résister, s’adapter ou encore se transformer, se réinventer. Appliquée au domaine des technologies du numérique, la résilience implique à la fois des mesures de sauvegarde, de protection des données, mais aussi de maintien de l’activité. Selon une étude conjointe du cabinet de consulting KPMG et l’entreprise informatique Oracle, il convient de définir ces mesures de manière préventive afin qu’elles puissent être déployées efficacement et rapidement le cas échéant [source].

Approfondir : en.bitcoin.it/wiki/Weaknesses

Réseau mixte

https://democratiedirecte.net/reseau-decentralise#reseau-mixte

La stratégie optimale en matière de réseau peut-être une solution mixte. Selon le business modèle ou l'orientation politique, on pourra choisir :

  • soit de maximiser la décentralisation ;
  • soit de maximiser la centralisation ;
  • soit de déterminer un équilibre par arbitrage entre centralisation (souvent associée à l'efficacité) et décentralisation (souvent associée à la résilience et à la démocratie).
CentraliséP2P
Efficacité+
Résilience+
Démocratie+
Évolution

Dans une approche dynamique, constatons qu'Internet fut historiquement une mise en réseau (connexion) de réseaux originellement isolés (et centralisés), ce qui se traduit par une certaine décentralisation. L'étape suivante de cette décentralisation essentiellement matérielle est la décentralisation logicielle, consistant à indifférencier serveurs et clients en leur substituant la notion de noeud d'un réseau dit "distribué".

evolution-reseau.jpeg

Ce serait cependant une erreur de penser que l'évolution d'Internet depuis sa naissance dans les année 1970 se décrirait de gauche à droite dans le schéma ci-dessus. La réalité serait plutôt que son origine est la mieux décrite par l'image centrale, la question étant de savoir si le "taux de distribution" d'Internet augment (vers la droite) ou diminue (vers la gauche). Le développement du Cloud pourrait faire penser à une décentralisation ... sauf qu'il s'agit de délocalisation (par sous-traitance) plutôt que de décentralisation. En outre, ce phénomène de délocalisation est le fait d'une petit nombre de grandes entreprises privées (surtout US).

Informatique en nuage

https://democratiedirecte.net/reseau-decentralise#cloud

L'informatique en nuage ("cloud computing") consiste en la distribution de services informatiques au travers d'un réseau. S'agit-il de décentralisation ?

L'informatique en nuage peut-être pratiquée par une organisation centralisée ou décentralisée. Cependant, il semble qu'actuellement les systèmes de "cloud computing" sont essentiellement conçus par et pour des organisations centralisées (et commerciales). il serait donc plus pertinent de parler d'externalisation de services informatiques, par une organisation (dont le centre de décision subsiste donc).

Ce n'est que lorsque le centre de décision de l'organisation est également décentralisé, que l'on peut parler de décentralisation. Dans le choix d'un système d'informatique en nuage à des fins de DD, il importe donc de déterminer si le système logiciel est facilement configurable en mode décentralisé (donc sur des machines généralement non identiques ...). Il y a donc ici intrication entre considérations techniques et juridiques (droit de propriété, responsabilité juridique, ...), ce qui complexifie l'analyse des business modèles.

Deux systèmes libres d'informatique en nuage sont NextCloud et OpenStack :

SiteWikipediaDebian
Nextcloud
OpenStack
Nextcloud
OpenStack
Nextcloud
OpenStack

Écosystème

https://democratiedirecte.net/reseau-decentralise#modeles-de-choix

Un réseau purement pair-à-pair est difficilement compatible avec un modèle d'entreprise privée, dont l'organisation est pyramidale (sauf les véritables coopératives). D'autre part, les applications dite de "réseau social" ont tendance à évoluer vers une situation de monopole car les utilisateurs préfèrent logiquement le réseau le plus populaire (cf. loi de Metcalfe).

Il importe donc de ne pas limiter l'analyse à la seule problématique technologique, qu'il convient de compléter par des considérations économiques, sociologiques, environnementales et juridiques, car celles-ci déterminent le comportement et les choix des développeurs et des utilisateurs.

Ainsi l'activité de minage – un système d'incitation à assurer le fonctionnement décentralisé des noeuds (moteurs) d'un réseau gérant une chaîne de blocs (un registre distribué) – a des effets nuisibles pour l'environnement, notamment en raison de sa gigantesque consommation énergétique (cf. infra #bitcoin). D'autre part, le minage requiert des capacités financières de plus en plus élevées (énergie, matériel, logiciel) de sorte que cette activité n'est rentable que pour de grandes entreprises, ce qui est en contradiction avec l'objectif de décentralisation (étant donné que les "utilisateurs élémentaires" d'un réseau décentralisé – au sens où nous l'entendons dans le contexte d'un système de DD – ce sont les personnes physiques, et non des personnes morales).

Les mineurs sont en compétition pour être le premier à trouver le bloc suivant (et être ainsi récompensé en bitcoins). D'autre part, les utilisateurs d'une chaîne de bloc peuvent payer les mineurs pour les inciter à inscrire leurs transactions avant celles des autres utilisateurs [source p. 5], ce qui privilégie à nouveau les plus riches.

Politique. Dricot et Peireira font l'analogie suivante entre Bitcoin et pouvoirs constitutionnels : « les nœuds connectés au réseau décident quel code exécuter (pouvoir législatif) tandis que les mineurs créent de nouveaux blocs qui suivent ces règles (pouvoir exécutif) ». Selon eux la séparation de ces pouvoirs, avec les incitants économiques, sont des conditions nécessaires pour garantir que le système demeure relativement décentralisé ("soft uncentralisability") [source p. 5].

Chaîne de blocs

https://democratiedirecte.net/reseau-decentralise#chaine-de-blocs
 6.1. Principes
 6.2. Fonctionnement
 6.3. Problématique
 6.4. Réseau Bitcoin

Principes

https://democratiedirecte.net/reseau-decentralise#principes-chaine-blocs
Définition

Une chaîne de blocs est une base de données distribuée sur un réseau pair-à-pair dont les nœuds de stockage gèrent une liste d'enregistrements protégés – au moyen de techniques d'encryptage – contre la falsification et la modification (dont en particulier le dédoublement). La chaîne de bloc constitue donc un moyen de gérer de façon décentralisée des applications transactionnelles (paiements, votations, ...).

Pour neutraliser le risque de dédoublement, certaines conditions doivent être vérifiées, notamment que la moitié de la puissance de calcul du réseau que consititue la blockchain ne soit pas détenue par un seul acteur (cf. attaque des 51%).

Pour valider chaque transaction, deux opération sont requises : la condensation et la synchronisation.

Condensation
(hashage)

Un bloc est un fichier répertoriant une série de transactions ayant été opérées durant un certain laps de temps. Avant d'être lié à la chaîne, un bloc et tous ses prédécesseurs sont hachés. Autrement dit, chaque bloc contient le hash (on dit aussi condensat ou empreinte) du bloc précédent. Par conséquent, si n'importe quel bloc était modifié, tous les blocs en aval le seraient aussi. Cette caractéristique permet à la blockchain de minimiser le risque qu'une information soit modifiée en aval de son enregistrement. Le terme d'immutabilité" pour décrire cette minimisation du risque est évidemment abusive (commerciale ?), car la modification n'est pas impossible mais seulement rendue coûteuse par le fait que, pour la masquer, il faut aussi modifier tous les blocs en aval.

blockchain.png

Chaîne de blocs

Synchronisation

Pour que les blocs puissent être validés, ils doivent en outre être synchronisés : si la synchronisation révèle un dédoublement de la chaîne, une des deux branches doit être supprimée (les blocs mauves ci-dessus). Plus la fréquence de cette validation est élevée plus rapide sera la validation, mais aussi plus élevée sera la consommation d'énergie par la chaîne.

La fonction d'horodatage joue donc un rôle central dans une chaîne de blocs. Elle permet :

  • de certifier l’antériorité d’une information sur une autre, et donc d’ordonner les transactions ;
  • de synchroniser toutes les copies de la base de données, après chaque transaction (du moins idéalement, mais en pratique après chaque paquet de transactions).

    Il y a donc un arbitrage optimal à opérer entre taille des paquets et vitesse de règlement d'une transaction.

Voici un excellent glossaire de la blockchain.

Fonctionnement

https://democratiedirecte.net/reseau-decentralise#fonctionnement-chaine-blocs

Le stockage des copies de la base de données est répartis entre tous les utilisateurs du système.

La validation des transactions (synchronisation et hashage) est plus complexe. En effet si l'on veut préserver la décentralisation du système il faut que la validation soit aussi décentralisée. Pour ce faire, une technique appelée preuve de travail (cas du Bitcoin) consiste à lier la validation à la résolution d'un défi mathématique sous la forme d'une série d’algorithmes. Concrètement, les validateurs (étrangement appelés "mineurs") sont en compétition pour être le premier à trouver le bloc suivant. Or la résolution de ces algorithmes requiert des ordinateurs puissants (et donc consommant beaucoup d'énergie). Pour inciter des utilisateurs à exercer la fonction de minage, une méthode consiste à les rétribuer au moyen d'une monnaie générée automatiquement par le système lui-même, pour chaque validation.

À noter que dans une chaîne de blocs privée le défi mathématique n'est pas indispensable : la fonction de validation pouvant être confiée à un membre du réseau (ce qui constitue une perte de décentralisation ...).

Le problème est que la validation par preuve de travail est extrêmement énergivore, à tel point que certains états l'interdisent. Des méthodes de validation alternatives – supposées moins énergivores mais aussi peut-être moins efficaces en terme de sécurité – sont la preuve d'enjeu, ou encore la preuve d'espace.

Toutes ces méthodes de validation, qui visent notamment à résoudre les problèmes des généraux byzantins, reposent sur des algorithmes de de consensus distribué, lesquelles sont fondées sur le principe de compétition entre validateurs, ceux-ci étant amenés à accumuler soit de la capacité de calcul (preuve de travail) soit des unités de la cryptomonnaie (preuve d'enjeu).

Problématiques

https://democratiedirecte.net/reseau-decentralise#problematique-chaine-blocs

Les problématiques que nous allons évoquer illustrent le fait qu'un système transactionnel décentralisé est plus complexe qu'un système centralisé, ce qui peut avoir des conséquences sur les performances relatives.

Problématique idéologique : La validation assurée par minage requiert des capacités financières de plus en plus élevées (énergie, matériel, logiciel) de sorte que le minage n'est rentable que pour de grandes entreprises, ce qui est en contradiction avec l'objectif de décentralisation.

Problématiques techniques :

  1. La durée de validation d'une transaction en Bitcoin (chaîne de blocs) est en moyenne trois cents fois plus longue que pour les paiements par carte bancaire (système centralisé).
  2. Si le disque dur d'un utilisateur du réseau Bitcoins devient inuilisable, ses Bitcoins sont irrémédiablement perdus (équivalent à des billets brûlés).

Problématiques juridiques :

  1. Les protocoles Internet de certification du temps de référence (exemple : NTP) ne sont pas signés [source, 2017].

    Dans la vidéo mentionnée en source, Jean-Jacques Quisquater dit que "n'étant pas signés, ces protocoles ne sont pas authentiques, et sont donc manipulables" ...

  2. La cryptographie évolue --> quid des transactions archivées au moyen de techniques cryptographiques devenues obsolètes ? [source].
  3. Si une chaîne de blocs cesse son activité, qu'advient-il des transactions qu'elles comportent ? Faut-il un blockchain de blockchain ? Mais qui d'autre qu'un État peut en garantir la pérennité ? [approfondir].
  4. En permettant un DNS décentralisé, la technologie des blockchains rend-elle impossible les frontières numériques ?
  5. En termes juridiques, l'absence d'autorité centrale dans un blockchain pose la question de la responsabilité en cas d'accident ou de malversation.

Réseau Bitcoin

https://democratiedirecte.net/reseau-decentralise#bitcoin

Les applications de chaînes de blocs ayant dépassé le stade expérimental sont encore rares de nos jours. Les cryptomonnaies sont probablement les plus avancées en la matière. La plus célèbre d'entre-elles est le Bitcoin.

Historiquement le Bitcoin (monnaie électronique décentralisée) est à la fois une application de chaîne de blocs et une fonctionnalité de celle-ci ayant pour objectif d'inciter le travail des mineurs et d'ainsi, supposément, neutraliser (ou du moins réduire) le risque de recentralisation de l'application-réseau construite sur une chaîne de blocs [source1, source2].

Monnaie ? Le bitcoin est donc « un système d'incitation à assurer le fonctionnement décentralisé des noeuds (moteurs) d'un réseau gérant une chaîne de blocs ». Mais peut-on affirmer que le bitcoin est une monnaie ? Non, tout au plus un instrument financier de spéculation (approfondir : allocation-universelle.net/principes-monetaires#valeur-usage-monnaie).

Utilisation ("front office"). Pour utiliser le Bitcoin (hors minage), il faut installer sur votre ordinateur :

  • une copie de la chaîne de blocs (PS : exige une mémoire de stockage qui peut vite dépasser la capacité d'un téléphone mobile) ;
  • un portefeuille électronique ;
  • une clé privée, une clé publique (cryptographie asymétrique) ;
  • l'adresse Bitcoin (équivalent du numéro de compte bancaire).

Fonctionnement ("back office"). Le fonctionnement du réseau Bitcoin est assuré par le travail des mineurs, qui sont rémunérés en Bitcoins pour opérér la validation des transactions. Pour ce faire, il doivent résoudre un défi mathématique sous la forme d'une série d’algorithmes), ce qui requiert l'achat et la maintenance de (puissants) ordinateurs. C'est pourquoi, bien qu'en principe n'importe quel utilisateur de Bitcoin peut devenir mineur, en pratique seules de grandes entreprises sont en mesure d'opérer cette fonction sans pertes financières (économies d'échelle). Ce phénomène, parfois qualifié de recentralisation, illustre la difficulté pratique (l'impossibilité ?) de réaliser un système intégralement décentralisé (PS : ce qui ne ne justifie pas de ne pas tendre vers cet idéal).

Une transaction bitcoin (réseau décentralisé) consomme 20.000 fois plus d'énergie qu'une transaction VISA (réseau centralisé).

bitcoin-visa-consommation-energie.jpg

Ces données datent de 2017, cependant si l'on considère que le progrès technologique vaut autant pour ces différentes technologies, il est alors probable que l'ordre de grandeur de ce rapport de 20.000 pour un est relativement constant. Autrement dit, il est moins déterminé par la technologie que par les business modèles.

Technologies libres p2p

https://democratiedirecte.net/reseau-decentralise#technologies-libres-p2p
SiteWikipediaDebian
Réseau pair-à-pair GNUnet GNUnet GNUnet
Serveur domestique FreedomBox FreedomBox FreedomBox
  • Réseau pair-à-pair : un site mesurant la taille et l'activité du Fédiverse : the-federation.info
  • Serveur domestique : un serveur-noeud doit en principe être connecté 24h/24, n'est idéalement pas mobile, et enfin est préférablement séparé physiquement du client-noeud ; ⇒ le serveur-noeud est installé sur un mini PC.

Pratiquer et participer

https://democratiedirecte.net/reseau-decentralise#reseau-p2p-wifi

Comment chacun peut participer à la création d'un réseau décentralisé, tout en se libérant de l'analphabétisme informatique : linux-debian.net/reseau-wifi-decentralise

democratiedirecte.net
menu.jpg

Auteur : F. Jortay   |   Contact :   |   Suivre : infolettre

top-of-page.png