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 à la fois client et serveur (et est alors appelé "noeud"), de sorte qu'il peut communiquer avec n'importe quel autre noeud du réseau, via un tunnel virtuel par lequel les données privées voyagent de façon cryptée, via d'autres noeuds. Sur un tel réseau, les applications peuvent y être distribuées sur un grand nombre de noeuds. On peut distinguer deux types de distribution :
L'animation supra reflète un phénomène fréquent voire systématique : en pratique, dans un réseau dit "pair-à-pair" :
Enfin, la sous-traitance, encore appelée externalisation, ne relève pas de la décentralisation, mais de la délocalisation..
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
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 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 :
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.
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
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 :
Centralisé | P2P | |
---|---|---|
Efficacité | + | – |
Résilience | – | + |
Démocratie | – | + |
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é".
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.
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 :
Site | Wikipedia | Debian |
---|---|---|
Nextcloud
OpenStack |
Nextcloud
OpenStack |
Nextcloud
OpenStack |
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].
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.
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.
Chaîne de blocs
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 :
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.
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).
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 :
Problématiques juridiques :
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 :
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é).
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.
Site | Wikipedia | Debian | |
---|---|---|---|
Réseau pair-à-pair | GNUnet | GNUnet | GNUnet |
Serveur domestique | FreedomBox | FreedomBox | FreedomBox |
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" :
Auteur : F. Jortay | Contact : | Suivre : infolettre