Poursuivant une démarche d’amélioration de sa transparence initiée mi-2018, la Fondation Ethereum a publié ce 21 juin un rapport de développement très complet sur ses projets pour le premier semestre 2019. Il montre l’étendue des champs couvert par ses activités – ainsi que les progrès réalisés. Et progrès il y a. Tentative de résumé, en onze points. Le dixième va vous étonner (ou pas).
Les clients et le protocole. La Fondation finance le développement de nombreux clients et machines virtuelles associées : Geth (Go), Aleth (C++) et Trinity (Python). Chacun remplit des objectifs différents, le client Geth étant clairement le client « de production » qui contient d’impressionnantes améliorations de performances dans sa version 1.9.0, tandis que Trinity devient progressivement le client de référence. Aleth, qui avait été un peu délaissé, revient dans la course comme client de production.
La sécurité et l’infrastructure (DevOps). La Fondation dispose d’une équipe de DevOps dédiée aux sujets suivants : sites web, Bootnodes, Geth, Swarm, et Testing. L’infrastructure est déployée avec Ansible, Terraform et Kubernetes. Un travail de documentation de l’utilisation de l’infrastructure est également en cours. Sur le plan de la sécurité, des outils ont été développés ou relancés. Citons resteseth, hive ou encore un fuzzer permettant de réaliser des tests en environnement de production.
Les interfaces pour interagir avec le protocole (Web3.js, Web3.py). Les librairies de Web3.js restent la référence pour faire fonctionner des dApps, même si des challengers comme Ethers gagnent du terrain. Le travail de développement est en tout cas très intense et une version 2.0-alpha est prévue rapidement avec des changements importants. Une annonce spécifique sera faite sous peu. Web3.py, bien que plus confidentiel, continue son chemin avec une v5 prévue bientôt (actuellement en beta).
Le protocole peer-to-peer (DevP2P), par lequel les noeuds Ethereum communiquent entre eux, a fait l’objet de travaux importants et notamment la finalisation de la version 5 du protocole Node Discovery.
Le protocole de partage de données (Swarm) a connu de nombreuses améliorations sous le capot et un testnet 0.4 beaucoup plus stable a été déployé.
Le protocole de messaging (Whisper) – sur ce projet, les travaux se sont concentrés sur la compatibilité avec l’implémentation de Parity et les corrections de bugs.
Les travaux sur Ewasm (Ethereum Flavored WebAssembly), la machine virtuelle qui doit être déployée sous Ethereum 2.0 au plus tard (et peut être avant dans Ethereum 1.X), ont progressé de façon très importante, avec des tests d’implémentation et de performance, l’intégration des precompiles existants et un testnet live (ewasm.ethereum.org) sur lequel il est possible d’écrire des smart-contracts en Rust ou en C.
Les outils de développement (langages, IDE, etc.). De nombreux progrès sont documentés sur Solidity en matière de sécurité et de performance. Vyper devient progressivement un langage complet et de nombreux efforts ont été réalisés pour permettre à de nouvelles personnes de contribuer au projet. Yul (langage de programmation commun à l’EVM 1.0, 1.5 et eWASM) commence à prendre forme et un convertisseur automatique Solidity -> Yul a été implémenté. Formality (un language plus formel qui fait partie du projet « Moon ») poursuit également son développement. Enfin, grosse mise à jour de Remix en 0.8.0 avec une nouvelle interface et intégration d’un compilateur Vyper, tandis que Grid, qui est né des cendres de Mist, devrait permettre de déployer plus facilement des environnement Ethereum.
La recherche fondamentale continue à avancer sur les 3 fronts principaux :
- Casper CBC : ce protocole de consensus qui devrait être le plus efficace des protocoles Proof of Stake possibles a fait l’objet de plusieurs articles de recherche et de tests spécifiques.
- Plasma : ce mot-valise désignant la recherche fondamentale sur plusieurs principes permettant une mise à l’échelle des blockchains avec des solutions de second niveau a fait l’objet de plusieurs implémentations spécifiques et d’un testnet « generalized plasma ». Les prochains travaux se focalisent sur la mise en production d’un réseau Plasma dédié aux paiements.
- Serenity : il s’agit ici d’Ethereum 2.0. Il serait présomptueux ici d’espérer arriver à synthétiser le travail de ces six derniers mois sur le sujet. En quelques mots : le développement avance sur les 3 phases de déploiement, avec un objectif de mise en production de la Phase 0 au tout début de 2020 (les spécifications sont quasiment finalisées et l’implémentation très avancée).
Les travaux relatifs aux zkSNARKS et outils associés (ZoKrates). Les zkSNARKS sont des preuves dites à divulgation nulles de connaissance qui permettent dans certaines conditions de démontrer la véracité d’une information sans en dévoiler le contenu. Elles permettent, par exemple, de vérifier qu’une instruction a été exécutée de façon honnête sans la ré exécuter, et donc de réaliser ces exécutions dans un environnement qui n’est pas spécialement sécurisé ou vérifiable. La Fondation dédie des efforts significatifs sur ce front, à la fois sur le plan de la recherche fondamentale et sur celui du développement d’un série d’outils permettant d’utiliser des zkSNARKS facilement dans les dApps pour les rendre plus performantes : ZoKrates. Les deux sujets ont beaucoup avancé sur tous les plans.
Les Grants (financements) accordés à d’autres projets. Sur ce point spécifiquement, la Fondation communique très régulièrement – contentons-nous de souligner que la Fondation annonce qu’elle va améliorer la transparence sur le processus de sourcing et sélection des projets bénéficiaires – une réponse à des demandes croissantes de la communauté en ce sens.
On notera donc que l’écosystème Ethereum continue d’être largement développé par la Fondation. Mais en creux de cette liste à la Prévert, le lecteur averti aura aussi remarqué l’absence de tous les autres grands projets qui contribuent ou vont contribuer à l’Ethereum de demain. Citons par exemple les clients et outils de développements produits par d’autres sociétés comme ConsenSys (Pantheon, Truffle), Parity, Prysmatic Labs ou Status (Nimble, Embark), les initiatives de financement communautaires comme MolochDAO, le Ethereum Community Fund, les nombreux wallets privés ou interfaces (MetaMask, MyCrypto, imToken, DexWallet, etc.) ou encore l’ensemble des applications décentralisées, un domaine dans lequel la Fondation n’est pas du tout active.
La diversité des acteurs sera a priori cruciale pour le futur du protocole, et la Fondation souhaite en tout cas réduire son rôle progressivement – le travail sera long.