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é
Décentralisé
Il existe donc deux modèles de réseau fondamentaux : centralisé (modèle dit "client-serveur") vs décentralisé (modèle dit "pair-à-pair" que l'on désigne souvent par l'acronyme anglophone P2P pour "pear-to-pear") :
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).
Alors que pour n terminaux, un réseau centralisé comportera n lignes de connexion, un réseau décentralisé comportera n * ( n - 1 ) / 2 noeuds (au maximum). Le graphique suivant montre que dans un réseau décentralisé (P2P), le nombre de connexion augmente exponentiellement avec le nombre de noeuds.
#connexions = F(#noeuds)
Exercice : vérifiez graphiquement avec un réseau de 4 noeuds puis de 5 noeuds.
Une caractéristique naturelle des (très rares) réseaux décentralisés, c'est la possibilité de distribuer (ou encore répartir, partager) les matériels, applications et données sur tout ou partie des noeuds. On peut distinguer deux types de distribution :
Soit n le nombre total de noeuds, et d le facteur de distribution, tel que d ≤ n ⇒ le taux de distribution d / n ≤ 1. Autrement dit, il existe un continuum entre deux extrêmes théoriques :
"Décentralisé" et "distribué" sont donc synonymes.
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).
Cet exemple illustre le fait que la frontière entre "décentralisé" et "centralisé" n'est pas dichotomique, mais constitue plutôt un continuum.
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 :
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 < 1 ⇔ d < 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.
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 :
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
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). 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).
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 :
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 – 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].
La blockchain est une technologie de stockage et de gestion de données décentralisée dans laquelle les transactions sont enregistrées, validées et stockées par un réseau de nœuds (ordinateurs). Chaque transaction est ajoutée à un bloc, lequel est lié au bloc précédent, formant ainsi une chaîne continue, sécurisée et transparente. Cela permet d'assurer l'intégrité et la transparence de toutes les transactions sans avoir besoin d'une autorité centrale.
Les nœuds jouent un rôle essentiel dans le fonctionnement de la blockchain : ils valident les transactions pour en assurer la légitimité, mais ils servent également de lieux de stockage distribués, chacun conservant une copie complète ou partielle de toute la chaîne de blocs. Cette redondance garantit que les données sont résistantes aux modifications ou falsifications, car une tentative de modification de la blockchain nécessiterait la manipulation d’une majorité de nœuds pour être validée.
Des risques théoriques de modifications ou falsifications typiques aux chaînes de blocs sont l'attaque des 51% et l'attaque Sybil.
Ce système distribué assure donc une forte résilience, car même si certains nœuds sont défaillants ou compromis, le réseau peut continuer de fonctionner grâce aux copies de la blockchain conservées par les autres nœuds. La sécurité repose en grande partie sur cette décentralisation et sur le consensus entre nœuds, qui permet d’établir la fiabilité et l’intégrité des données de transaction.
Le système de blockchain comprends trois fonctions fondamentales :
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 ce qui est en réalité une minimisation du risque : 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.
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, il existe des méthodes de validation, qui visent à résoudre les problèmes dits des généraux byzantins). Il s'agit d'un concept théorique en informatique qui illustre les défis de la communication et du consensus dans des systèmes distribués, où des parties (les "généraux") doivent coordonner leurs actions malgré la possibilité que certains d'entre eux soient défaillants ou malveillants. Cela est particulièrement pertinent dans le contexte des blockchains et des réseaux décentralisés.
En l'occurrence, il s'agit de garantir que tous les participants d'un réseau décentralisé (comme une blockchain) peuvent parvenir à un accord fiable même en présence de nœuds défaillants ou malveillants. Ces méthodes cherchent à assurer que :
Ces méthodes de validations 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). Concrètement, les validateurs (étrangement appelés "mineurs") sont en compétition pour être le premier à trouver le bloc suivant. 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 ...).
Puisque chaque noeud héberge une copie du registre des transactions, celles-ci doivent être synchronisées (mises à jour collectivement). Si la synchronisation révèle un dédoublement de la chaîne, une des deux branches doit être supprimée (les blocs mauves du schéma ci-dessous). 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.
Chaîne de blocs
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.
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 écologique : 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.
Problématique économique : 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 :
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" ...
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 :
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é).
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 | |
---|---|---|---|
Seveur domestique | FreedomBox | FreedomBox | FreedomBox |
Réseau pair-à-pair | GNUnet | GNUnet | GNUnet |
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
Auteur : F. Jortay | Contact : | Suivre : infolettre