Dans l’esprit du développeur blockchain: la crise de l’évolutivité

Dans l’esprit du développeur blockchain: la crise de l’évolutivité

Crypto panel

Il s’agit de la première partie d’une série en trois parties dans laquelle Andrew Levine décrit les problèmes auxquels sont confrontées les blockchains héritées et propose des solutions à ces problèmes. Lisez la partie 2 sur la crise de la mise à l’échelle verticale et la partie 3 sur la crise de la gouvernance au moment de leur mise en service les 24 et 25 septembre.

Nous pensons qu’il existe trois problèmes fondamentaux, ou crises, qui font obstacle à l’adoption de la blockchain: l’évolutivité, la mise à l’échelle verticale et la gouvernance. Dans cet article, nous allons explorer la crise de l’évolutivité et comment les systèmes d’exploitation informatiques pourraient servir d’analogie utile qui détient le secret pour résoudre cette crise et permettre aux blockchains de parvenir à l’adoption par le grand public.

Le concept le plus puissant pour comprendre le problème de l’évolutivité est «l’antifragilité». Proposé par Nassim Taleb, l’antifragilité est une propriété des systèmes qui s’améliorent lorsqu’ils sont stressés. Les systèmes fragiles peuvent sembler fonctionner très bien la plupart du temps, mais lorsqu’ils sont stressés, ils s’effondrent ou «explosent».

L’antifragilité est une propriété qui émerge de systèmes hiérarchiques multicouches qui contiennent des sous-unités fragiles qui, en se cassant / mourant / explosant, aboutissent à un système globalement plus sain. Dans la nature, nous appelons ce processus évolution. L’évolution se produit lorsqu’une espèce remplace un trait moins efficace par un trait plus efficace. En informatique, nous appelons ces améliorations des «mises à niveau».

Le problème avec les principales blockchains que nous connaissons aujourd’hui est qu’elles n’ont pas été conçues pour être mises à niveau, ce qui signifie qu’elles ne peuvent pas évoluer. La raison pour laquelle l’évolution est si importante est qu’elle permet aux systèmes de survivre aux «cygnes noirs», qui sont des événements hautement imprévisibles aux conséquences graves. Les systèmes antifragiles peuvent non seulement survivre aux cygnes noirs, mais ils s’en tirent mieux.

Dans les blockchains, il n’y a pratiquement pas de couches séparées avec des sous-systèmes fragiles qui permettent une adaptation saine aux facteurs de stress. Au lieu de concevoir dans une perspective d’humilité, les créateurs essaient de se présenter comme des visionnaires infaillibles qui ont conçu un système parfait qui mérite immédiatement une haute valorisation.

Cartes dessinées avant l’exploration du territoire

Il n’y a pas de meilleure preuve de cela que le recours à des fourches dures pour les mises à niveau du système. Un hard fork est l’opposé d’un chemin de mise à niveau. Il jette l’ancien système et le remplace par un nouveau.

Il y a cependant un côté positif à cette analyse, à savoir que la solution consiste moins à franchir les barrières techniques qu’à franchir les barrières psychologiques. Nous ne concevons pas de blockchains à partir des premiers principes, mais continuons principalement à itérer au-dessus des architectures préexistantes comme celles de Bitcoin et Ethereum.

Il existe de nombreuses façons de mettre en œuvre une blockchain, mais nous supposons souvent que la manière dont ces protocoles implémentent certains composants de la blockchain est par défaut la «bonne manière». Ces protocoles encadrent totalement la façon dont nous regardons ces questions, nous amenant à créer des «cartes» mentales des problèmes qui ont été «dessinés» avant même que nous ayons commencé à explorer ce nouveau territoire.

Bitcoin et Ethereum étaient essentiellement les premiers ordinateurs décentralisés. Comme pour tout nouveau paradigme informatique, dans les premiers stades, les ingénieurs et les développeurs se concentrent sur la question de savoir s’ils peuvent même utiliser la technologie pour résoudre un problème spécifique et, le cas échéant, l’utiliser pour créer leur application. Il n’ya pas d’outillage ni de plate-forme dont ils peuvent tirer parti, ils doivent donc tout créer à partir de zéro et optimiser leur pile pour leur application spécifique.

Le résultat final est un morceau de code monolithique alimentant une application conçue pour résoudre un problème spécifique.

Premiers pas et systèmes fragiles

Ces premières applications peuvent être assez fructueuses grâce à l’avantage du premier venu, mais en matière de développement logiciel, le succès qui vient d’être un premier venu est illusoire. Les premiers acteurs du logiciel trouvent les fonctionnalités, ou «comportements», que les utilisateurs trouveront les plus précieux, validant ainsi la nouvelle technologie.

Mais maintenir cet avantage est presque impossible car l’application est construite sur une montagne de vieux code que peu de gens comprennent ou sont capables de mettre à niveau. Les bogues sont un cauchemar à corriger, et le simple maintien du code existant devient une tâche Sisyphean; oubliez de l’améliorer.

À ce stade, les applications peuvent mourir pour un certain nombre de raisons, mais la cause sous-jacente du décès est qu’elles sont fragiles. Le cygne noir qui fait des ravages sur les applications existantes est le développement du système d’exploitation. Les systèmes d’exploitation permettent aux développeurs de lancer plus facilement le même type d’applications, avec les mêmes comportements de base que ceux des premiers utilisateurs.

L’avènement des systèmes d’exploitation permet à la technologie de passer au niveau supérieur en permettant aux développeurs de publier plus facilement et plus rapidement de meilleurs programmes qui pénètrent davantage le marché et atteignent plus d’utilisateurs. De plus, cela nous donne une autre couche dans la pile. Désormais, si une application explose, les couches inférieures les plus critiques restent inchangées.

Alors, problème résolu, non? Si les systèmes d’exploitation de première génération offrent un énorme avantage concurrentiel aux développeurs d’applications qui adoptent les bons, ils souffrent également du même problème d’évolutivité des applications de première génération. Ils émergent comme un moyen de fournir des fonctionnalités de base, la sécurité et une base d’utilisateurs partagée, mais pas pour maximiser l’évolutivité. Ainsi, ils finissent par devenir remplis de fonctionnalités, complexes et difficiles à mettre à niveau.

L’analogie du système d’exploitation

La mise à niveau du système nécessite un processus de redémarrage et de rechargement du système qui devient plus long et plus perturbateur à mesure que cela devient plus gros et plus compliqué. Alors qu’une couche (l’OS) est isolée des erreurs commises dans une autre (la couche application), l’OS lui-même reste fragile.

Les blockchains comme Ethereum et EOS ont été conçues comme ces premiers systèmes d’exploitation. Ils fournissent des fonctionnalités de base, la sécurité, une base d’utilisateurs partagée et un «espace utilisateur» programmable que les développeurs peuvent exploiter pour ajouter les fonctionnalités personnalisées dont ils ont besoin pour alimenter leurs applications spécifiques.

Dans le cas des blockchains, les problèmes qui affligent les systèmes d’exploitation de première génération sont amplifiés en raison de l’immuabilité; leur taille ne cesse de croître, ce qui impose une contrainte supplémentaire sur l’infrastructure et crée un défi d’évolutivité distinct.

De plus, du fait qu’elles sont décentralisées, les mises à niveau doivent passer par un processus de gouvernance qui se termine, dans le meilleur des cas, par l’exécution d’un effort coordonné dans lequel tous les ordinateurs arrêtent d’exécuter l’ancien logiciel et commencent à exécuter le nouveau logiciel ( une nouvelle «fourche») exactement au même moment. C’est loin d’être facile, c’est pourquoi l’appeler un fork «dur» est particulièrement approprié.

Lorsque certains changements nécessitent un hard fork, les utilisateurs sont obligés de regrouper ces changements car leur implémentation au coup par coup entraînerait un temps d’arrêt supplémentaire du réseau. Il en résulte un «problème de cavalier» similaire à ce que nous voyons dans les systèmes gouvernementaux où des changements sans rapport se rattachent à des changements importants. En d’autres termes, il y a une centralisation dans le temps problème. Parce que chaque chose importante doit être faite en même temps, et parce que les gens ne sont pas d’accord sur ce qui est important, le moment où ces changements doivent être mis en œuvre crée un vecteur d’attaque.

Quoi qu’il en soit, les hard fork finissent par être gros, politiques, risqués et, surtout, ils détruisent le réseau! Cela ralentit considérablement le rythme des progrès et, comme chaque blockchain majeure fonctionne de cette manière, le secteur dans son ensemble stagne.

Antifragilité grâce à l’évolutivité

Ce dont nous avons besoin, c’est d’une autre couche sous le système d’exploitation qui permet à l’ensemble du système d’évoluer. Dans les systèmes d’exploitation, cette couche s’appelle un BIOS – un système d’entrée / sortie de base. Mais il est important de se rappeler que nous n’utilisons les systèmes d’exploitation que par analogie. Nous devons construire cette couche à partir des premiers principes spécifiquement pour une utilisation dans les blockchains. Cette couche, comme toutes les autres couches, doit être constituée de sous-unités fragiles qui peuvent en quelque sorte «casser» sans faire exploser le système dans son ensemble.

La création du BIOS a été une étape critique pour l’intégration des ordinateurs car elle a permis aux développeurs de créer, tester et itérer rapidement sur les applications qui rendraient les ordinateurs personnels utiles aux consommateurs ordinaires.

Si nous voulons traverser ce même gouffre, nous n’avons pas seulement besoin d’un meilleur système d’exploitation blockchain, nous avons besoin d’un système d’exploitation basé sur un équivalent BIOS dans le but spécifique de la mise à niveau.

Nous devons pouvoir en ajouter fonctionnalité à la blockchain sans nécessiter de hard fork. Cela permettra à la blockchain de s’adapter aux facteurs de stress (attaques, bugs, fonctionnalités manquantes, etc.), de s’améliorer et de s’adapter aux besoins des masses.

Jusqu’à ce que ce jour vienne, la qualité des applications basées sur la blockchain continuera de stagner et l’espace restera dominé par des projets qui pourraient sembler travailler en surface mais qui ne sont pas largement adoptés, sont intrinsèquement fragiles et le seront jour «exploser».

Les opinions, pensées et opinions exprimées ici sont la seule de l’auteur et ne reflètent ni ne représentent nécessairement les vues et opinions de Crypto.

Andrew Levine est le PDG d’OpenOrchard, où lui et l’ancienne équipe de développement derrière la blockchain Steem créent des solutions basées sur la blockchain qui permettent aux gens de s’approprier et de contrôler leur moi numérique. Leur produit fondamental est Koinos, une blockchain haute performance construite sur un tout nouveau cadre conçu pour donner aux développeurs les fonctionnalités dont ils ont besoin afin de fournir les expériences utilisateur nécessaires pour étendre l’adoption de la blockchain aux masses.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *