Escrito por: Mundus Seguridad

Compilado por: Shenchao TechFlow

El EIP-6963 propuesto recientemente tiene como objetivo resolver los conflictos que surgen cuando los usuarios intentan utilizar múltiples proveedores de billeteras dentro de un solo navegador web. En este caso, estos problemas conflictivos pueden provocar una experiencia de usuario degradada, dificultar el control del usuario sobre su interfaz Ethereum y complicar el proceso de interacción con las dApps.

Introducción al problema

Actualmente, los proveedores de billeteras que ofrecen extensiones de navegador deben inyectar su proveedor de Ethereum (según el estándar EIP-1193) en el objeto window.ethereum del navegador. Este mecanismo crea un problema para los usuarios que tienen instaladas varias extensiones de navegador. Las extensiones del navegador se cargan en las páginas web en un orden impredecible e inestable, lo que impide que los usuarios seleccionen su billetera Ethereum en el objeto window.ethereum. Por lo general, la última billetera cargada es la que aparece en la página de control.

EIP-6963: solución propuesta

Para abordar este problema, EIP-6963 propone un mecanismo existente para reemplazar el proveedor EIP-1193 de window.ethereum. La propuesta introduce un conjunto de eventos de ventana que permiten un protocolo de comunicación bidireccional entre las bibliotecas de Ethereum y los scripts inyectados proporcionados por las extensiones del navegador. Esta solución optimiza la interoperabilidad entre múltiples proveedores de billeteras, reduce la barrera de entrada para nuevos proveedores de billeteras y mejora la experiencia del usuario en la red Ethereum.

La propuesta describe una interfaz de información de proveedor estandarizada (EIP6963ProviderInfo), que es esencial para completar las ventanas emergentes de selección de billetera. También destaca la importancia de anunciar la interfaz del proveedor (EIP6963ProviderDetail), que deja la interfaz del proveedor EIP-1193 sin cambios para garantizar la compatibilidad con versiones anteriores.

Las propiedades clave en la interfaz de información del proveedor incluyen:

walletId: identificador único global del proveedor de la billetera (por ejemplo, io.dopewallet.extension o awesomewallet). uuid: identificador único local para un proveedor de billetera compatible con UUID v4.0. nombre: el nombre legible por humanos del proveedor de la billetera (por ejemplo, DopeWalletExtension o Awesome). icono: URI que apunta a la imagen, que debe ser un cuadrado con una resolución mínima de 96x96px. Se recomienda utilizar PNG y WebP o formatos de imágenes vectoriales como SVG. El equipo de la propuesta se opone firmemente al uso de formatos con pérdida como JPG/JPEG.

En términos de activación de eventos, tanto la biblioteca Ethereum como los proveedores de billeteras utilizan la función window.dispatchEvent para emitir eventos y window.addEventListener para observar eventos. Cuando la biblioteca Ethereum se inicializa, emite el evento "eip6963:requestProvider" y el proveedor de billetera emite el evento "eip6963:announceProvider", que proporciona detalles de la interfaz y la información de su proveedor.

Impacto de EIP-6963

Según estimaciones optimistas, la aceptación e implementación de EIP-6963 podría tardar aproximadamente de tres a seis meses. Este desarrollo podría conducir a una nueva historia de billeteras para fin de año, rompiendo potencialmente la hegemonía de los principales proveedores de billeteras como Metamask y creando un entorno más competitivo entre los proveedores.

Se espera que carteras como Coin98, Coinbase Wallet, Trust Wallet, Phantom, Taho, Rabby, Frame, XDEFI, Rainbow, Zerion, Spot, Frontier, MEW, Dawn Wallet, Blockwallet, Bitski, SafePal, BitKeep y MathWallet se beneficien de este desarrollo. .

Pros y contras:

EIP-6963 plantea algunos problemas de seguridad que deben considerarse.

ventaja:

No hay un único punto de falla: al permitir múltiples proveedores de billeteras, eliminamos el problema del único punto de falla. Esto es beneficioso en términos de seguridad, ya que significa que si un proveedor de billetera sufre un ataque o falla técnica, los usuarios tienen alternativas disponibles. Reducir la dependencia de un único proveedor: actualmente, la comunidad Ethereum depende en gran medida de un proveedor, MetaMask. Esto plantea un riesgo potencial porque si MetaMask es atacado, una gran parte de los usuarios de Ethereum se verán afectados. Al admitir múltiples billeteras, EIP-6963 distribuye el riesgo. Control de usuario mejorado: la capacidad de elegir múltiples proveedores de billetera brinda a los usuarios un mayor control sobre su seguridad. Los usuarios pueden elegir un proveedor de billetera que coincida con sus preferencias de seguridad personales y niveles de confianza.

defecto:

Mayor superficie de ataque: la implementación de EIP-6963 aumenta la superficie de ataque. Esto se debe al aumento en la cantidad de proveedores de billeteras que pueden ser atacados por actores maliciosos. Todo proveedor de billetera debe cumplir con altos estándares de seguridad para minimizar este riesgo. Riesgos potenciales de la explotación de imágenes SVG: EIP-6963 propone el uso de imágenes SVG como íconos para proveedores de billeteras. Sin embargo, las imágenes SVG pueden contener código JavaScript, lo que puede plantear riesgos de secuencias de comandos entre sitios (XSS). Si bien el EIP especifica que las imágenes SVG deben representarse usando etiquetas para evitar la ejecución de JavaScript, esta recomendación solo puede ser verificada por un tercero o un auditor de cada implementación. Impacto de reemplazar window.ethereum: si bien EIP no interrumpe directamente las aplicaciones existentes al reemplazar window.ethereum, recomienda hacerlo después de que los usuarios elijan una billetera. Esta recomendación solo puede ser verificada en cada implementación por un tercero o un auditor.

 

en conclusión

EIP-6963 tiene como objetivo mejorar la interoperabilidad entre múltiples proveedores de billeteras, reducir la barrera de entrada para nuevos proveedores y mejorar la experiencia del usuario en la red Ethereum. Al mismo tiempo, el impacto sobre la seguridad es complejo.

Los usuarios, proveedores de billeteras y desarrolladores de bibliotecas de Ethereum deben cumplir con las mejores prácticas para garantizar que el ecosistema de Ethereum permanezca seguro.

Al implementar esta propuesta, el ecosistema Ethereum puede avanzar hacia un entorno más competitivo y fácil de usar, beneficiando tanto a los proveedores de billeteras como a sus usuarios.