IX.4. Réseau décentralisé

email Facebook Twitter
Màj : 16 fév. 2020   –   # pages : 5 [?]

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, ...). Celles-ci sont conçues sur base de deux types possibles de réseau :

  • client-serveur c-à-d centralisé (exemple : Facebook) : une machine "serveur" fournit des services à des machines "clientes" ;
  • pair à pair c-à-d décentralisé (exemple : Bitcoin) : chaque client a la possibilité d'assumer des fonctions serveur (c'est pourquoi on parle alors de "noeuds" plutôt que de clients/serveurs), avec deux options possibles :
    • un même service est fourni par plusieurs noeuds interchangeables ;
    • les différentes composants d'un même service (stockage, calcul, ...) sont opérées par différents noeuds (ou groupes de noeuds selon l'option précédente).

L'animation ci-dessus 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 ;
  • parmi les noeuds serveurs il y en a presque toujours un qui se distingue des autres par un nombre de connexions substantiellement plus élevé.

La raison en est qu'en matière de topologie des noeuds il n'y a pas nécessairement correspondance entre matériels ("hardware") et logiciels ("software") : les applications sont généralement moins décentralisées (ont dit souvent "distribuées" en matière d'applications) que les noeuds physiques. En outre il est plus facile de déplacer du code que du matériel au sein d'une 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 économique et politiques.

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 à partir de 100% centralisé : on peut juste dire que tel réseau est "moins centralisé" ou "plus décentralisé" que tel autre.

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.

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 (utile notamment pour la communication) : 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.

En revanche une application en réseau pair à pair est confrontée à une plus grande complexité, et même – selon le théorème CAP – à des limitations induisant d'inévitables arbitrages entre critères de performance des fonctionnalités de l'application. Il en résulte 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 le coût la formation des utilisateurs et la gestion du risque).

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.

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

Chaîne de blocs

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

La chaîne de bloc est une technologie logicielle permettant d'opérer de façon décentralisée des applications transactionnelles. Nous allons étudier ses principes, son fonctionnement, sa problématique. Enfin nous évoquerons son application la plus célèbre : le Bitcoin.

Principes

https://democratiedirecte.net/reseau-decentralise#principes-chaine-de-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-de-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 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 ...).

Types d'algorithme de consensus visant à résoudre les problèmes des généraux byzantins :

Problématiques

https://democratiedirecte.net/reseau-decentralise#problematique-chaine-de-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.

Exemple : 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 centralisé.

É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.

Économie. On notera que les théories des réseaux décentralisés (exemple) présentent de fortes similarités avec la (très controversée) théorie économique classique des marchés parfaits.

Ainsi 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].

Les autres articles du dossier "Cyberdémocratie" :

  1. Référendum automatique 4 p.
  2. Vote par Internet 15 p.
  3. Identification et authentification sur Internet 20 p.
  4. Réseau décentralisé5 p.
  5. Groupware (théorie) 5 p.
  6. Logiciel libre vs open source 3 p.
n_check

Sommaire

Infos


top-of-page.png