Saltar al contenido principal

ERC-4337: Revolucionando Ethereum con Abstracción de Cuentas

· 4 min de lectura
Dora Noda
Software Engineer

¡Hola y bienvenidos de nuevo a nuestro blog de blockchain! Hoy nos sumergiremos en una nueva propuesta emocionante llamada ERC-4337, que introduce la abstracción de cuentas en Ethereum sin requerir cambios en el protocolo de la capa de consenso. En su lugar, esta propuesta se basa en infraestructura de capa superior para lograr sus objetivos. Exploremos lo que ERC-4337 tiene para ofrecer y cómo aborda las limitaciones del ecosistema actual de Ethereum.

¿Qué es ERC-4337?

ERC-4337 es una propuesta que introduce la abstracción de cuentas en Ethereum mediante el uso de un mempool separado y un nuevo tipo de objeto pseudo‑transacción llamado UserOperation. Los usuarios envían objetos UserOperation al mempool alternativo, donde una clase especial de actores llamados bundlers los empaquetan en una transacción que realiza una llamada handleOps a un contrato dedicado. Estas transacciones se incluyen luego en un bloque.

La propuesta busca lograr varios objetivos:

  1. Permitir a los usuarios utilizar carteras de contratos inteligentes con lógica de verificación arbitraria como sus cuentas principales.
  2. Eliminar por completo la necesidad de que los usuarios tengan cuentas externas (EOAs).
  3. Garantizar la descentralización permitiendo que cualquier bundler participe en el proceso de inclusión de operaciones de usuario con abstracción de cuentas.
  4. Permitir que toda la actividad ocurra a través de un mempool público, eliminando la necesidad de que los usuarios conozcan direcciones de comunicación directa de actores específicos.
  5. Evitar suposiciones de confianza sobre los bundlers.
  6. Evitar requerir cambios en el consenso de Ethereum para una adopción más rápida.
  7. Soportar otros casos de uso como aplicaciones que preservan la privacidad, multi‑operaciones atómicas, pagar tarifas de transacción con tokens ERC‑20 y transacciones patrocinadas por desarrolladores.

Compatibilidad hacia atrás

Dado que ERC-4337 no modifica la capa de consenso, no existen problemas directos de compatibilidad hacia atrás para Ethereum. Sin embargo, las cuentas anteriores a ERC-4337 no son fácilmente compatibles con el nuevo sistema porque carecen de la función validateUserOp necesaria. Esto puede solucionarse creando una cuenta compatible con ERC-4337 que re‑implemente la lógica de verificación como un wrapper y configurándola como el remitente de operaciones de confianza de la cuenta original.

Implementación de referencia

Para quienes estén interesados en profundizar en los detalles técnicos de ERC-4337, hay una implementación de referencia disponible en https://github.com/eth-infinitism/account-abstraction/tree/main/contracts.

Consideraciones de seguridad

El contrato de punto de entrada para ERC-4337 debe ser auditado exhaustivamente y verificado formalmente, ya que sirve como punto central de confianza para todo el sistema. Si bien este enfoque reduce la carga de auditoría y verificación formal para cuentas individuales, concentra el riesgo de seguridad en el contrato de punto de entrada, que debe ser verificado de manera robusta.

La verificación debe cubrir dos afirmaciones principales:

  1. Seguridad contra secuestros arbitrarios: el punto de entrada solo llama a una cuenta de forma genérica si la función validateUserOp de esa cuenta específica ha pasado.
  2. Seguridad contra el drenaje de tarifas: si el punto de entrada llama a validateUserOp y pasa, también debe realizar la llamada genérica con calldata igual a op.calldata.

Conclusión

ERC-4337 es una propuesta emocionante que busca introducir la abstracción de cuentas en Ethereum sin requerir cambios en el protocolo de la capa de consenso. Al utilizar infraestructura de capa superior, abre nuevas posibilidades para la descentralización, la flexibilidad y diversos casos de uso. Aunque existen consideraciones de seguridad que abordar, esta propuesta tiene el potencial de mejorar significativamente el ecosistema de Ethereum y la experiencia del usuario.