Rejoignez-Nous sur

Les dernières avancées d’Ethereum 2.0

News

Les dernières avancées d’Ethereum 2.0

Ben Edgington

La phase 0 spec est gelée. Les clients testent interop. La phase 2 des recherches a explosé. Qu'est-ce que tout cela signifie pour l'avenir d'Ethereum?

J'ai récemment relu Eric Raymond essai classique de 1997 sur le développement open source, «La cathédrale et le bazar». C’est un regard convaincant sur ce qui se passe lorsque vous permettez à un large groupe de «tout venus» de participer au développement d’un projet logiciel. Il appelle cela le modèle «bazar» du développement de logiciels open source. C'est bruyant et apparemment chaotique, mais extrêmement productif et énergisant – et, surtout, il donne de meilleurs résultats. Il oppose l’approche du bazar à un modèle plus traditionnel de «cathédrale» dans lequel tout développement est effectué par un petit groupe fermé d’individus. Une vingtaine d'années plus tard, la puissance du bazar est indéniable. Le système d'exploitation Linux qui maintenant domine Une grande partie de l’informatique dans le monde n’est qu’un exemple du bazar du développement de logiciels en action.

J’ai trouvé cet objectif intéressant pour visualiser le développement de la blockchain Ethereum 2.0. Un an après le lancement du projet Ethereum 2.0 dans sa forme actuelle, le moment est propice à la réflexion.

Le projet Ethereum 2.0 a très bien adopté le style de développement ouvert, semblable à un bazar. Cependant, nous augmentons considérablement les enjeux de la vision de Raymond: dans Ethereum 2.0, nous ne construisons pas que des logiciels; nous concevons un protocole entier de cette manière radicalement ouverte. Je ne suis pas sûr que quelque chose de semblable ait été essayé auparavant.

Ce n’est pas de l’anarchie. Conformément au concept de Raymond, les travaux sont en grande partie dirigés par une petite équipe de la fondation Ethereum, qui donne le ton et gère le référentiel principal. Mais tout se fait de manière transparente et ouvertement, avec la participation la plus large possible. Soixante-deux personnes ont contribué à la spécification, beaucoup d’autres sont impliqués dans les neuf mises en œuvre clients en cours, d’autres dans les discussions de R & D sur ethresear.ch site, d’autres encore sur les appels bimensuels des développeurs (plus de cinquante lors d’un appel récent), pour ne citer que quelques exemples.

Oui, le processus est parfois apparu chaotique, désorganisé, inefficace. Il y a eu beaucoup de remaniements, de révisions et de réécritures. Pourtant, de tout ce tumulte de bazar, quelque chose de merveilleux est en train d'émerger. Quelque chose d'extraordinaire. Quelque chose que les communautés de développeurs moins ouvertes auront du mal à concurrencer.

J'ai argumentéet continuera à soutenir que ce modèle de développement est la superpuissance d’Ethereum. L’ouverture radicale engendre un immense niveau d’engagement et d’engagement de la part de la communauté. Pour une technologie comme la nôtre qui repose fondamentalement sur des «effets de réseau» pilotés par la communauté, cela est essentiel. Cet engagement à lui seul distingue Ethereum de nombreux autres.

Voici un exemple de cette superpuissance au travail que je médite souvent, et Vitalik a récemment tweeté à propos de: c’est frappant de voir combien de fois, quand un besoin est apparu, quelqu'un a simplement pris la mesure de le résoudre. À la fin de 2017, Justin Drake est apparu sur la scène et a revigoré l'effort de recherche Ethereum 2.0 après une période de jachère. À la mi-2018, il y avait un besoin évident d'améliorer la coordination et la planification: Danny Ryan a intensifié ses efforts. Au début de 2019, Diederik Loerakker apparu de nulle part où assumer le rôle critique de création de suites de tests clients pour Ethereum 2.0. Notre prochain défi est l’expertise en réseautage entre pairs, et déjà les gens s’impliquent. Je pourrais donner des dizaines d’autres exemples, mais c’est bien compris. Les gens aiment le bazar.

Les bazars ont-ils des feuilles de route? (crédit Microsoft)

Une question intéressante qui m'est parfois posée, généralement par les entreprises intéressées par Ethereum, est la suivante: Où est la feuille de route? Il est juste de dire que, même s’ils partagent une vision commune de la direction que nous prenons et de la façon dont nous y arriverons, il n’existe tout simplement pas un document publié, détaillé, engagé, «officiellement sanctionné». ”Feuille de route. Les bazars n’ont pas vraiment de feuilles de route «appropriées». Un vieil or article de Linux Weekly News lutte avec le même problème. Leur conclusion: "Essayer d'imposer une feuille de route à ce processus a peu de chances de l'améliorer."

Cela dit, rappelons qu'il y a est un plan pour livrer le système Ethereum 2.0 en trois phases distinctes, chacune s'appuyant sur la phase précédente. La phase 0 est la chaîne de balises, qui implémente le protocole Proof of Stake, une alternative à Proof of Work pour la sécurisation du réseau blockchain. La phase 1 offre une extensibilité massive sous la forme de chaînes de fragments, augmentant la capacité de traitement des transactions du réseau de plus de mille. La phase 2 est la couche d'exécution qui fournira les comptes d'utilisateurs et les contrats intelligents, et soutiendra la gamme complète d'applications distribuées nécessaires à notre avenir décentralisé.

Après exactement un an du développement intensif décrit ci-dessus, la spécification de la chaîne de balises Ethereum 2.0 a été gelée le 30 juin: la recherche et la conception sont terminées; nous sommes pleinement dans la phase de livraison.

La chaîne de balises est la base du système Ethereum 2.0. Il est responsable de la gestion du protocole de preuve de participation et de la coordination de tous les fragments indépendants parallèles. Il s'agit de la partie la plus complexe du développement. Si vous êtes nouveau dans la chaîne de balises ou avez besoin d’une mise à jour, j’en ai écrit un blog précédent.

La chaîne de balises a été conçue à Berlin en juin dernier comme direction future de Ethereum 2.0 (j’ai écrit à ce sujet ainsi que). Commençant par une feuille de papier plus ou moins vierge, mais tissant des idées qui remontent aux tout premiers jours d'Éthereum, la spécification a été battu à travers un processus itératif d’information, de discussion, de révision et de test.

En parallèle, pas moins de neuf équipes de différents milieux et lieux ont implémenté la spécification dans différents langages de programmation, tout en ajoutant l’infrastructure d’ingénierie qui le fait fonctionner (réseau, bases de données, outils) – la spécification est le moteur, mais nous devons en ajouter beaucoup plus pour obtenir une véhicule en état de marche). Certaines équipes ont déjà lancé des réseaux de test publics de validation de concept permettant aux utilisateurs de se familiariser avec les fonctions de validateur dans Ethereum 2.0, tels que celui de Prysmatic Labs.

Parfois, les spécifications ont changé rapidement et nous avons couru pour suivre. Le gel récent des spécifications est une étape importante, avec deux conséquences intéressantes.

La première est que la spécification peut maintenant être soumise à une vérification formelle. Cela implique de le traduire dans une langue à usage spécifique appelé K cela permet une analyse rigoureuse et des preuves d'exactitude. La vérification de l'exécution sera faire ce travail. Ils ont déjà terminé une analyse du contrat de dépôt du validateur qui sera déployé sur Ethereum 1.0 pour les validateurs embarqués dans Ethereum 2.0.

La deuxième conséquence du gel des spécifications est qu’elle permet à tous les clients de se rattraper exactement au même point et de passer à la prochaine étape critique: l’interopérabilité. Les clients de la chaîne de balises Ethereum 2.0 sont analogues aux noeuds Ethereum actuels tels que Geth, Parity et Pantheon. Ces nœuds exécutent le réseau. Ils communiquent entre eux et il est essentiel qu'ils soient d'accord à tout moment. Tout désaccord, peut-être dû à un bug, même minime, entraîne une scission de réseau.

Travailler ensemble sur l'interopérabilité à Brooklyn (photo de l'auteur)

L'interopérabilité est un voyage en soi. Pour commencer, tous les clients doivent réussir les tests de référence courants. Une caractéristique très intéressante de la spécification est qu’elle a été faite exécutable – il est possible d'exécuter la spécification elle-même afin de générer directement les tests du client. Certains préférerais un style plus narratif à la spécification, mais, néanmoins, c'est une installation très utile. Le «test fuzz» est un autre type de test qui a très bien réussi à détecter les problèmes avec les clients Ethereum 1.0. C’est là que les clients reçoivent à plusieurs reprises des données brisées de manière aléatoire afin de détecter les incidents graves dans lesquels ils se comportent mal. Des outils pour cela sont en cours de développement pour la chaîne de balises.

Une fois que chaque équipe client est convaincue que son implémentation se comporte correctement, l'étape suivante consiste à les faire dialoguer via un réseau. Il est difficile de diagnostiquer les systèmes distribués en cas de problème. Ainsi, dans un premier temps, les clients mettent en œuvre une protocole simplifié il sera plus facile de déboguer et d’analyser avant d’implémenter la pile réseau complète. Il est prévu que toutes les équipes clientes se réunissent dans un coin reculé de l’Ontario au début de septembre pour un «verrouillage»: personne ne partira tant que toutes les implémentations des clients ne fonctionneront pas correctement.

L’interopérabilité ouvre la voie à un testnet public commun et de longue durée plus tard cette année. Toute personne souhaitant participer pourra installer le logiciel client de son choix, mettre testnet Ether en jeu et participer à la validation du réseau. Ou essayer de le casser. Des primes pourraient être offertes à quiconque découvre des bugs et des failles.

Enfin, tout va bien, la chaîne de balises va démarrer au début de 2020. Une date du 3 janvier a été suggérée, étant l'anniversaire du bloc de genèse Bitcoin. Mais c'est peut-être trop tôt pour être complètement prêt pour la production. Un peu plus tard au T1 2020 est le plus probable.

Une dernière étape avant le démarrage de la chaîne de balises consiste à déployer le contrat de dépôt du validateur sur la chaîne Ethereum 1.0 existante. Le contrat de dépôt est celui dans lequel toute personne souhaitant utiliser un validateur enregistre sa participation de 32 Eth. Il est prévu de déployer le contrat lors d’une cérémonie à la DevCon V début octobre de cette année. Une fois que le contrat de dépôt a reçu environ deux millions d’éther, représentant soixante-cinq mille validateurs, nous pouvons commencer la chaîne de balises avec la certitude qu’elle sera protégée contre les attaques.

Bien que la livraison d'Ethereum 2.0 soit prévue sous forme de phases séquentielles, les travaux sur chaque phase progressent en parallèle.

La phase 1 est la conception et la livraison des chaînes de données fragmentées. C'est ici que nous ajoutons 1024 blockchains indépendants au système, chacun suspendu à la chaîne de balises. Le protocole pour cette phase est beaucoup plus simple que la chaîne de balises, et la spécification (la plupart du temps complète) ne représente qu'environ la moitié du nombre total de lignes.

Ethereum 2.0 sera un réseau peer-to-peer d'une ampleur sans précédent (crédit Daniel Aleksandersen Licence CC BY 4.0)

Le principal défi de la phase 1 est l’ingénierie réseau peer-to-peer nécessaire pour obtenir les bonnes informations vers et depuis les validateurs appropriés assez rapidement lorsqu’elles sont réparties sur ces 1024 chaînes. Travailler c'est déjà en cours parallèlement à l'activité d'interopérabilité client.

Le développement récent le plus excitant a été l’émergence d’une voie claire pour la dernière étape de la livraison d’Ethereum 2.0: la couche d’exécution. En tant que personne qui écrit parfois, je connais très bien le défi que représente une feuille de papier vierge. Lorsque l'espace de conception est énorme et sans contrainte, il est très difficile de savoir comment s'y prendre. Il en a été ainsi pour la conception de la couche d'exécution Ethereum 2.0.

Jusqu'à il y a quelques semaines, personne ne savait vraiment par où commencer: quels types de programmes pourrions-nous exécuter sur Ethereum 2.0? À quoi ressembleront les comptes des utilisateurs? Comment les fragments vont-ils communiquer entre eux? Les idées ne manquaient pas; les possibilités sont infinies. Mais il était difficile de progresser.

Casey Detrio a réussi à sortir de l’impasse et a donné un très beau et bref résumé de l’histoire présentation à la conférence Scaling Ethereum à Toronto. Il a publié une approche suggérée cela s'est avéré très fructueux. La suggestion de Casey a été reprise et développée plus avant par Vitalik, et d’autres sont intervenues avec enthousiasme pour le prototyper et le définir plus avant.

Dans la blockchain Ethereum actuelle, il existe un environnement d'exécution unique, la machine virtuelle Ethereum (EVM). Il est écrit dans le protocole que chaque contrat intelligent doit être exécuté uniquement par l'EVM, que l'exécution est facturée d'une certaine manière (gaz de transaction), que seules certaines signatures cryptographiques et certains schémas de protection contre la réexécution sont autorisés. Bien que le module EVM soit extrêmement performant, tout cela conduit à des limitations: la nécessité de financer des comptes avec de l’éther, même si nous souhaitons uniquement envoyer des jetons ERC20; la difficulté de mettre en place des transferts vraiment anonymes; le coût d'utilisation de nouvelles techniques cryptographiques intéressantes.

En un mot, la proposition pour Ethereum 2.0 est de "résumer" tout cela. La blockchain elle-même ne commandera aucun de ces mécanismes, mais fournira un certain nombre d'environnements d'exécution différents (EE), chacun pouvant fonctionner sous ses propres règles, optimisées pour ses propres besoins.

Par exemple, en plus d’un environnement d’exécution polyvalent prévoyant des contrats intelligents compilés en eWASM, il pourrait y avoir des environnements optimisés pour les transferts de jetons anonymes et des nouveaux types de langages de contrat intelligents, tels que À la Haskell, EE optimisés pour la gestion des chaînes de plasma haute capacité, EE spécialement conçus pour les utilisateurs d’entreprise, avec fonctionnalités d’autorisation et de confidentialité. Il pourrait même y avoir un EE qui implémente les Bouge toi machine virtuelle de la blockchain Libra récemment annoncée.

Je vais laisser les détails dans un futur article – tout reste en développement rapide, et cet article est déjà assez long. Cependant, je mentionnerai un résultat très significatif de ce nouveau modèle pour la phase 2. Il a longtemps aspiré à prendre l’ensemble de la chaîne de blocs Ethereum 1 actuelle et à la mettre en œuvre en tant que fragment au sein d’Ethereum 2.0. Cela garantirait l'avenir des applications Ethereum actuelles et nous permettrait éventuellement de désactiver complètement Proof of Work. Nous avons maintenant un moyen pratique de le faire et cela passe de la simple aspiration à quelque chose qui ressemble à un plan. “Eth1 sur Eth2” n’a pas besoin d’être implémenté depuis le début d’Ethereum 2.0, il peut être ajouté plus tard, il ya donc encore du temps pour préciser cela.

Le bazar est très fréquenté (crédit Diego Delso, delso.photo, Licence CC-BY-SA)

Au rythme actuel, je suis plus optimiste que jamais quant à l’avenir d’Ethereum 2.0. Je n’aime pas exagérer, mais je commence à me demander si la phase finale de la livraison, la phase 2, pourrait même être lancée en 2020, un peu plus tôt que prévu. Mieux vaut ne pas me citer à ce sujet.

Il reste beaucoup à faire entre ici et là-bas, mais la route est plus claire qu'elle ne l'a jamais été et l'engagement est fort et croissant. L’énergie du bazar est extraordinaire: c’est un endroit passionnant, et je suis convaincu qu’en engageant autant de gens brillants et motivés, le résultat final sera exceptionnel.

Le bazar est ouvert à tous: pourquoi pas être impliqué?



Traduction de l’article de Ben Edgington : Article Original

BlockBlog

Le Meilleur de l'Actualité Blockchain Francophone & Internationale | News, Guides, Avis & Tutoriels pour s'informer et démarrer facilement avec Bitcoin, les Crypto-Monnaies et le Blockchain. En Savoir Plus sur L'Équipe BlockBlog

Commenter cet Article

Commenter cet Article

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

Plus dans News

Top