Hoy hemos lanzado la primera versión de MetaMask Snaps en la distribución pública de MetaMask. Este es el resultado de años de arduo trabajo e investigación original por parte de un equipo extraordinario, y estoy emocionado de contarles de qué se trata, cómo surgió y hacia dónde se dirige.
Creo que la tesis original de Snaps sigue siendo válida. Los Snaps son una buena idea por la misma razón que Ethereum es una buena idea, por la misma razón que la computación es una buena idea: Las herramientas de pensamiento de propósito general son increíbles.
Todo este tiempo hemos intentado construir una interfaz para Ethereum, una computadora Turing-completa, ¡pero nuestra interfaz la estaba desarrollando un solo equipo! Es evidente que la billetera ideal para una máquina tan abierta como Ethereum necesitaría ser igual de flexible, y hoy marca un paso importante hacia lograrlo.
MetaMask Snaps es un nuevo sistema en la billetera que permite al usuario optar por mejoras adicionales en tiempo de ejecución. Estamos lanzando con un conjunto de APIs y socios que las utilizan, lo que permite que nuestra billetera soporte de repente nuevas blockchains, nuevos proveedores de seguridad de transacciones y una variedad de sistemas de notificación (¡incluido un Snap de chat!). Creemos que estas ofrecerán muchas nuevas posibilidades en términos de escalabilidad y seguridad, pero esto es realmente solo el comienzo.
La historia de Snaps: ¿Cómo llegamos aquí?
La parte más importante de la historia de Snaps para mí es que ahora tenemos un sistema en el corazón de nuestra billetera que nos permite dar un paso atrás e invitar humildemente a la comunidad a aportar sus propias soluciones a los problemas más difíciles. Tengo grandes ideas y opiniones sobre cómo podría ser el futuro de la seguridad en las transacciones, pero eso no es razón para que sea la única idea que se valide. Estamos ayudando a inaugurar un nuevo paradigma de computación distribuida, y hay muchas preguntas que necesitan soluciones creativas, por lo que sigo creyendo que reducir la barrera y el costo de probar cosas nuevas puede ser un acelerador importante para encontrar buenas respuestas a esos problemas difíciles. No se trata de acelerar la tecnología por sí misma, sino de acelerar el proceso de encontrar mejoras en la forma en que hacemos las cosas.
A través de este proceso, he reflexionado que a largo plazo, espero que más software sea abierto y fácilmente extensible e interconectado. Un sistema de extensibilidad seguro debería ser un problema completamente resuelto, y francamente creo que debería ser el estándar por defecto para cómo se construye y escribe el software, y espero que así sea a largo plazo. Dado que el software extensible de forma segura aún no es un producto accesible y económico, estoy profundamente orgulloso de nuestro equipo por ayudar a trazar un camino hacia un futuro más colaborativo para la computación en general.
Nuestro camino hacia Snaps nos llevó por algunos rincones fascinantes de la historia de la computación y nos permitió hacer amigos maravillosos. No se puede exagerar el valor de nuestra asociación con Agoric en este esfuerzo, quienes diseñaron una API de confinamiento de JavaScript, la han propuesto al comité de estándares JS TC-39, implementaron un shim funcional de esa API que se puede usar hoy, y colaboraron con nosotros en el refinamiento de este sistema, LavaMoat, y nuestro enfoque hacia la computación segura en general. Nuestro sistema Snaps aprovecha el shim de Compartment de Agoric, adicionalmente confinado dentro de un iframe. Puedes ver mi conversación con Mark Miller, Chief Scientist de Agoric aquí. Puedes leer nuestra auditoría de equipo púrpura del shim de Compartment aquí.
Emprendimos este camino en un momento particularmente desafiante para una WebExtension: el propio Google propuso una revisión importante de cómo podrían funcionar extensiones como MetaMask, y por un momento se cernió sobre todo el proyecto como un posible golpe fatal (o al menos un cambio que nos obligaría a abandonar la plataforma de extensiones). Afortunadamente, gracias en gran parte a personas de bizdev extraordinariamente inteligentes y consideradas tanto en Consensys como en Google, pudimos llegar a compromisos en la forma en que la plataforma de extensiones estaba cambiando, lo que permitió los ambiciosos objetivos de MetaMask sin comprometer los ideales de seguridad de ninguna de las dos empresas.
Esos cambios aún requerían enormes contribuciones de todo Consensys para ayudarnos a navegar. Una cosa es impulsar una iniciativa importante a través de un producto de seguridad crítica y muy utilizado como MetaMask, pero es aún más difícil hacerlo mientras también se migra toda la base de código a lo que era esencialmente una nueva plataforma. Esta hazaña es un testimonio de múltiples equipos de MetaMask trabajando estrechamente juntos para compartir la carga, de modo que pudiéramos desbloquear el trabajo mucho más emocionante del otro lado, y estoy profundamente agradecido con todos ellos.
El sistema Snaps incluye algunas de las contribuciones de diseño más hermosas con las que la billetera MetaMask ha sido bendecida (¡con algunos cambios de diseño relacionados que llegarán pronto a más partes de la billetera!). El proceso de que un sitio proponga un Snap al usuario, que el usuario revise de forma segura los riesgos involucrados, y el sistema de interfaz de usuario extensible que hemos puesto a disposición de los Snaps para confirmaciones (que solo mejora con el tiempo) es el producto de conversaciones de diseño seguro increíblemente profundas, investigación de usuarios y muchos destellos de inspiración. Hemos creado aquí un sistema de permisos de clase mundial, y seguimos impulsándolo en direcciones más emocionantes.
Próximamente, algunas de mis APIs favoritas que tenemos planeadas son nuevos tipos de cuentas (hola 4337), activos definidos por Snap (los activos de Snap no aparecen en la lista principal de tokens… todavía), y widgets de pantalla de inicio, que aprovecharán el framework de UI extensible que estamos construyendo, el cual puedes experimentar por primera vez en las confirmaciones personalizadas que los Snaps pueden mostrar hoy.
Tenemos una página de Snaps que han sido completamente auditados y están listos para explorar hoy, y te recomiendo que los pruebes. A largo plazo, espero que algunos de los Snaps más divertidos sean aquellos que rompan nuestras concepciones previas sobre para qué era útil el sistema. Me gustaría hacer una mención a Archis por crear una demo de Snap que usa un LLM para instruir a la billetera a realizar una operación. Con el auge de la IA, realmente no podría haber un mejor momento para abrir la billetera a la experimentación más audaz.
Un nuevo capítulo: Descubriendo el mejor internet
Contar con un sistema para gestionar la extensibilidad segura es realmente un nuevo comienzo. Las APIs con las que lanzamos hoy podrían cada una habilitar un Snap que multiplique la utilidad de MetaMask, pero quizás aún más importante es el hecho de que con esta base, podemos mirar cada vez más cualquier parte de la billetera sobre la que creemos que los usuarios merecen más control, o en la que los desarrolladores tienen más creatividad para ofrecer, y podemos abrir un método de API y dejar que la creatividad entre para llevar el producto en nuevas direcciones. Esto no es solo un lanzamiento de funcionalidades, es el producto adoptando una postura dramáticamente más colaborativa hacia el exterior. Uno de mis mayores dolores al ayudar a dar forma a MetaMask durante mis casi ocho años aquí ha sido ser constantemente consciente del océano de creatividad que estaba justo fuera del alcance de nuestro backlog debido a nuestra obligación habitual con los aspectos esenciales de seguridad y compatibilidad. Snaps es una humilde admisión de que no podemos hacer esto solos. El camino para descubrir el mejor internet requerirá muchas contribuciones creativas. Además, ¡tampoco podíamos lanzar mis ideas tan rápido como las tenía! Snaps es en secreto una funcionalidad egoísta: ahora podrás extender la billetera más popular con menos burocracia de la que un fundador de la billetera más popular del mundo podía tener la semana pasada.
Creo que es importante reconocer una limitación importante del sistema Snaps actual. Hoy no puede extenderse de forma completamente permissionless. Los Snaps que se pueden instalar son aquellos que aprobamos porque confirmamos que fueron auditados, además de estar confinados de todas las formas que indica el aviso de instalación. Esto se hizo tanto por exceso de precaución como porque tenemos ideas sobre cómo agregar seguridad adicional para una versión permissionless que tomará más tiempo implementar, pero queríamos sacar algo antes (ya ha pasado tanto tiempo).
No hay duda de que el objetivo a largo plazo es la computación permissionless. Uno de los eventos que desencadenaron mi viaje en web3 fue que una buena aplicación fue rechazada por Apple por razones arbitrarias. Hoy parece que las computadoras son o jardines amurallados seguros o totalmente inseguros pero permissionless, y creo que hemos construido las bases para crear un espacio que no sea ninguna de esas cosas, y nuestra mira está puesta en ese espacio intermedio. La computación segura y bajo custodia del usuario está en camino, y te invitamos a ayudarnos a definirla.
Si eres un desarrollador que quiere experimentar con esta plataforma, te recomiendo instalar Flask, nuestra distribución de MetaMask orientada a desarrolladores. Con ella puedes instalar cualquier Snap (incluso uno que no hayamos auditado) y comenzar a construir el tuyo propio.
En fin, este es un gran momento para celebrar, porque estamos multiplicando el número de funcionalidades que MetaMask tiene hoy, pero lo curioso es que lo más emocionante es sin duda lo que aún está por construirse sobre él. Así que celebro, valoro profundamente y estoy enormemente agradecido con un equipo brillante y comprometido que hizo posible esta enorme hazaña. También espero con ansias completar juntos este próximo capítulo.