VIII.5. Réseau décentralisé

email Facebook Twitter
Màj : 7 déc. 2022   –   # pages : 11

Définitions

https://democratiedirecte.net/reseau-decentralise#definition
Types de réseau

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é".

Il existe donc deux modèles possibles de réseau : 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 directement relié (avec ou sans câble) à au moins deux autres, et est à la fois client et serveur (on parle alors de "noeuds" plutôt que de machines clientes ou serveurs) ; certaines applications et données peuvent alors être distribuées entre les noeuds selon deux possibles modalités :

    • 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érentes composants d'un même service (stockage, calcul, ...) sont réparties/partagées entre différents noeuds.

      N.B. Nous verrons plus loin, avec la notion de cloud, que la relation entre les notions "p2p" et "division" n'est pas biunivoque () mais p2p ⇒ division. Autrement dit, la division n'implique par nécessairement décentralisation en termes technico-juridiques. C'est notamment le cas de la sous-traitance, encore appelée externalisation.

L'animation supra reflète un phénomène fréquent voire systématique : en pratique, dans un réseau dit "pair-à-pair" :

  • la plupart des noeuds n'assument pas de fonction serveur (mais ils ont la possibilité de le faire, ce qui caractérise la nature décentralisable d'un réseau) ;
  • 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é.
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"). Un élément important de cette situation est qu'il est plus facile (moins coûteux) de déplacer ou remplacer du logiciel et des données que du matériel au sein d'un réseau.

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. Pour un type de réseau déterminé, ces facteurs sont variables dans l'espace et le temps.

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.

Un réseau "100% décentralisé" est donc une vue de l'esprit. La distinction dichotomique "centralisé vs décentralisé" est essentiellement théorique. Dans la pratique la réalité est plutôt un continuum allant de 0% décentralisé à 100% décentralisé. 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).

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 une 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 neutraliser ce risque (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 et la gestion du risque.

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). La réponse à cette question est subtile : le développement du Cloud suggère une décentralisation ... sauf que celle-ci est gérée par un oligopole : les GAFAM. Ainsi la décentralisation logicielle masque en réalité une hyper-centralisation économique et politique.

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 logiciels 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 est facilement configurable en mode décentralisé. 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 de bitcoins – un système d'incitation à assurer le fonctionnement décentralisé des noeuds (moteurs) d'un réseau gérant une chaîne de blocs – a des effets nuisibles pour l'environnement [approfondir], et 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.

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 (un registre distribué) 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 (paiement, votation, ...).

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 garantir que l’information une fois stockée ne peut plus être modifiée (immutabilité).

La modification n'est pas impossible mais seulement rendue coûteuse par le fait qu'il faut aussi modifier tous les blocs en aval pour la masquer.

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 (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 à devenir mineurs un moyen 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. Une méthode de validation alternative est la preuve d'enjeu, supposée moins énergivore mais aussi moins efficace en terme de sécurité.

D'autres méthodes de validation existent, comme 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 ne sont pas signés [source].
  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].

Utilisation ("front office"). Pour simplement utiliser le Bitcoin 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é.

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-konfederal

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

Les autres articles du dossier "Cyberdémocratie" :

  1. Référendum automatique 6 p.
  2. Vote par Internet 25 p.
  3. Identification et authentification sur Internet 32 p.
  4. Adresse IP dynamique 5 p.
  5. Réseau décentralisé11 p.
  6. Citoyenneté numérique 16 p.
COMMENTAIRES

0 commentaires.


Publier un commentaire



democratiedirecte.net
menu.jpg

Une publication de François Jortay

top-of-page.png