Aller au contenu

Les Snaps dans MetaMask Stable et la suite

Découvrez l'histoire de Snaps, ce que cela signifie pour nous chez MetaMask, et la prochaine étape vers un avenir collaboratif.

7 min de lecture
Les Snaps dans MetaMask Stable et la suite

Nous avons lancé aujourd'hui la première version de MetaMask Snaps dans la distribution publique de MetaMask. C'est l'aboutissement de plusieurs années de travail acharné et de recherches originales menées par une équipe formidable, et je suis ravi de vous expliquer en quoi cela consiste, comment nous en sommes arrivés là, et vers quoi nous nous dirigeons.

Je pense que la thèse originale de Snaps reste pertinente. Snaps est une bonne idée pour la même raison qu'Ethereum est une bonne idée, pour la même raison que l'informatique est une bonne idée : les outils de réflexion à usage général sont extraordinaires.

Tout ce temps, nous avons essayé de construire une interface vers Ethereum, un ordinateur turing-complet, mais notre interface était développée par une seule équipe ! Il est évident que le portefeuille idéal pour une machine aussi ouverte qu'Ethereum devrait être aussi flexible qu'elle, et aujourd'hui marque une étape importante vers cet objectif.

MetaMask Snaps est un nouveau système intégré au portefeuille qui permet à l'utilisateur d'opter pour des améliorations supplémentaires de son portefeuille au moment de l'exécution. Nous lançons ce système avec un ensemble d'API et de partenaires qui les utilisent, permettant à notre portefeuille de prendre en charge de nouvelles blockchains, de nouveaux fournisseurs de sécurité des transactions et une variété de systèmes de notification (dont un Snap de chat !). Nous pensons que ces fonctionnalités offriront de nombreuses nouvelles possibilités en termes d'évolutivité et de sécurité, mais ce n'est vraiment que le début.

L'histoire de Snaps : comment en sommes-nous arrivés là ?

Ce qui me tient le plus à cœur dans l'histoire de Snaps, c'est que nous disposons désormais d'un système au cœur de notre portefeuille qui nous permet de prendre du recul et d'inviter humblement la communauté à proposer ses propres solutions aux problèmes les plus complexes. J'ai de grandes idées et des opinions sur ce à quoi pourrait ressembler l'avenir de la sécurité des transactions, mais ce n'est pas une raison pour que ce soit la seule idée validée. Nous contribuons à inaugurer un nouveau paradigme de l'informatique distribuée, et de nombreuses questions nécessitent des solutions créatives. C'est pourquoi je crois toujours que réduire les obstacles et les coûts liés à l'expérimentation de nouvelles choses peut constituer un accélérateur important pour trouver de bonnes réponses à ces problèmes difficiles. Il ne s'agit pas d'accélérer la technologie pour elle-même, mais d'accélérer le processus de découverte d'améliorations dans notre façon de faire les choses.

Au fil de ce processus, j'ai réfléchi au fait qu'à long terme, je m'attends à ce que davantage de logiciels soient ouverts, facilement extensibles et interconnectés. Un système d'extensibilité sécurisé devrait être un problème largement résolu, et franchement, je pense qu'il devrait être la norme dans la façon dont les logiciels sont conçus et développés — et je m'attends à ce que ce soit le cas à long terme. Étant donné que les logiciels extensibles en toute sécurité ne sont pas encore une commodité accessible, je suis profondément fier de notre équipe pour avoir contribué à tracer une voie vers un avenir plus collaboratif pour l'informatique en général.

Notre parcours vers Snaps nous a conduits dans des recoins passionnants de l'histoire de l'informatique et nous a permis de nous faire de merveilleux amis. Il est impossible de surestimer la valeur de notre partenariat avec Agoric dans cette entreprise : ils ont conçu une API de confinement JavaScript, l'ont proposée au comité de normalisation JS TC-39, ont implémenté un shim fonctionnel de cette API utilisable dès aujourd'hui, et ont collaboré avec nous pour affiner ce système, LavaMoat, ainsi que notre approche du calcul sécurisé en général. Notre système Snaps s'appuie sur le shim Agoric Compartment, confiné en outre dans un iframe. Vous pouvez regarder ma conversation avec Mark Miller, Chief Scientist chez Agoric, ici. Vous pouvez lire notre audit purple team du shim Compartment ici.

Nous avons entrepris ce parcours à une période particulièrement difficile pour une WebExtension : Google lui-même a proposé une refonte majeure du fonctionnement des extensions comme MetaMask, et pendant un moment, cela a plané sur l'ensemble du projet comme un possible coup fatal (ou du moins un changement nous forçant à quitter la plateforme d'extensions). Heureusement, grâce en grande partie à des personnes du développement commercial remarquablement intelligentes et attentionnées chez Consensys et Google, nous avons pu trouver des compromis dans l'évolution de la plateforme d'extensions, permettant à MetaMask de poursuivre ses objectifs ambitieux sans compromettre les idéaux de sécurité de l'une ou l'autre entreprise.

Ces changements ont néanmoins nécessité d'énormes contributions de l'ensemble de Consensys pour nous aider à naviguer. Piloter une initiative majeure au sein d'un produit critique en matière de sécurité et très utilisé comme MetaMask est déjà un défi en soi, mais l'est encore plus lorsqu'il faut simultanément migrer l'intégralité de la base de code vers ce qui était essentiellement une nouvelle plateforme. Cet exploit témoigne de la collaboration étroite de plusieurs équipes chez MetaMask pour partager la charge, afin de débloquer un travail bien plus passionnant de l'autre côté, et je leur en suis profondément reconnaissant.

Le système Snaps comprend certaines des plus belles contributions en matière de design que le portefeuille MetaMask ait jamais eu la chance de recevoir (avec quelques changements de design connexes qui arriveront bientôt dans d'autres parties du portefeuille !). Le processus par lequel un site propose un Snap à l'utilisateur, l'utilisateur examine en toute sécurité les risques impliqués, et le système d'interface utilisateur extensible que nous avons mis à disposition des Snaps pour les confirmations (qui ne cesse de s'améliorer) est le fruit de conversations approfondies sur le design sécurisé, de recherches utilisateurs et de nombreuses étincelles d'inspiration. Nous avons créé ici un système de permissions de classe mondiale, et nous continuons à le faire évoluer dans des directions toujours plus passionnantes.

Prochainement, parmi mes API préférées que nous avons planifiées figurent les nouveaux types de comptes (bonjour le 4337), les actifs définis par Snap (les actifs Snap n'apparaissent pas dans la liste principale des tokens… pas encore), et les widgets de l'écran d'accueil, qui exploiteront le framework d'interface utilisateur extensible que nous construisons, que vous pouvez découvrir en avant-première dans les confirmations personnalisées que les Snaps peuvent afficher dès aujourd'hui.

Nous disposons d'une page de Snaps entièrement audités et prêts à être testés dès aujourd'hui, et je vous recommande de les essayer. À long terme, je m'attends à ce que certains des Snaps les plus amusants soient ceux qui bouleverseront nos conceptions antérieures de ce pour quoi le système était utile. Je tiens à saluer Archis pour avoir créé une démo de Snap utilisant un LLM pour instruire le portefeuille d'effectuer une transaction. Avec l'essor de l'IA, il n'y a vraiment pas de meilleur moment pour ouvrir le portefeuille à la science folle.

Un nouveau chapitre : à la découverte du meilleur internet

Disposer d'un système pour gérer l'extensibilité sécurisée est véritablement un nouveau commencement. Les API que nous lançons aujourd'hui pourraient chacune permettre un Snap qui multiplie l'utilité de MetaMask, mais ce qui est peut-être encore plus important, c'est qu'avec cette base, nous pouvons de plus en plus examiner n'importe quelle partie du portefeuille pour laquelle nous pensons que les utilisateurs méritent plus de contrôle, ou que les développeurs ont plus de créativité à offrir, et nous pouvons ouvrir une méthode d'API et laisser la créativité orienter le produit dans de nouvelles directions. Il ne s'agit pas simplement d'une mise à jour de fonctionnalités, c'est le produit qui adopte une posture de collaboration externe radicalement plus ouverte. L'une de mes plus grandes frustrations en contribuant à façonner MetaMask au cours de mes presque huit années ici a été d'être constamment conscient de l'océan de créativité qui était juste hors de portée de notre backlog en raison de notre obligation habituelle envers les fondamentaux de la sécurité et de la compatibilité. Snaps est une admission humble que nous ne pouvons pas tout faire seuls. Le voyage à la découverte du meilleur internet nécessitera de nombreuses contributions créatives. En plus de cela, nous ne pouvions pas non plus livrer mes idées aussi vite que je les avais ! Snaps est secrètement une fonctionnalité égoïste : vous pourrez désormais étendre le portefeuille le plus populaire avec moins de bureaucratie qu'un fondateur du portefeuille le plus populaire au monde ne pouvait le faire la semaine dernière.

Je pense qu'il est important de reconnaître une limitation majeure du système Snaps actuel. Aujourd'hui, il ne peut pas être étendu de manière totalement sans permission. Les Snaps pouvant être installés sont ceux que nous avons approuvés parce que nous avons confirmé qu'ils avaient été audités, en plus d'être confinés de toutes les façons indiquées dans l'invite d'installation. Cela a été fait par excès de prudence, et parce que nous avons des idées pour ajouter une sécurité supplémentaire à une version sans permission qui prendra plus de temps à implémenter, mais nous voulions sortir quelque chose plus tôt (cela a déjà pris si longtemps).

Ne vous y trompez pas, l'objectif à long terme est l'informatique sans permission. L'un des événements déclencheurs de mon parcours web3 a été le rejet d'une bonne application par Apple pour des raisons arbitraires. Aujourd'hui, il semble que les ordinateurs soient soit des jardins clos sécurisés, soit totalement non sécurisés mais sans permission, et je crois que nous avons posé les bases pour créer un espace qui n'est ni l'un ni l'autre, et c'est cet espace intermédiaire que nous visons. L'informatique sécurisée et sous la garde de l'utilisateur est en chemin, et nous vous invitons à nous aider à la définir.

Si vous êtes un développeur souhaitant expérimenter cette plateforme, je vous recommande vivement d'installer Flask, notre distribution de MetaMask orientée développeurs. Avec elle, vous pouvez installer n'importe quel Snap (même un que nous n'avons pas audité) et commencer à construire le vôtre.

Quoi qu'il en soit, c'est un grand moment à célébrer, car nous multiplions le nombre de fonctionnalités de MetaMask aujourd'hui, mais le plus drôle, c'est que les choses les plus passionnantes sont sans aucun doute celles qui restent encore à construire. Alors je célèbre, je chéris, et je suis profondément reconnaissant envers une équipe brillante et déterminée qui a rendu cet exploit énorme possible. J'ai également hâte d'écrire ensemble ce prochain chapitre.

Traduit par IA. Peut contenir des erreurs. Veuillez toujours vérifier les informations.

Évaluer la traduction

Cet article a été rédigé par :

  • Dan Finlay

    Dan Finlay contribue au développement de MetaMask depuis 2016. Au fil du temps, il a développé une passion et une vision pour l'avenir du calcul distribué sans permission et sécurisé, et concrétise cette vision à travers MetaMask. Warpcast : https://warpcast.com/danfinlay

    Lire tous les articles