Blog banner image

Escrito por Cristian Marchese - 28 de mayo de 2025

EIP-7702: ¿Qué cambió en Ethereum y cómo aprovechar estas nuevas características?

Exploramos uno de los principales cambios que trajo PECTRA.

La EIP-7702 introduce un nuevo tipo de transacción en Ethereum que permite a las Cuentas Externamente Propietarias (EOAs) establecer su propio código. Este avance tiene como objetivo mejorar la experiencia del usuario en aplicaciones descentralizadas al simplificar interacciones y añadir nuevas funcionalidades.

Motivación

A pesar de los progresos en monederos de contratos inteligentes, las EOAs han limitado la adopción de mejoras en la experiencia del usuario. Esta EIP se enfoca en permitir:

  • Agrupamiento de transacciones: Realiza múltiples operaciones en una sola transacción, como aprobar y gastar tokens ERC-20, optimizando el proceso y reduciendo costos.
  • Patrocinio de transacciones: Facilita que una cuenta cubra los costos de transacción de otra, permitiendo a los usuarios interactuar con aplicaciones sin preocuparse por las tarifas de gas.

Especificación para establecer el código de la transacción

La "set code transaction" se basa en la EIP-2718, que establece un nuevo formato para las transacciones en Ethereum. Esta EIP permite la introducción de diferentes tipos de transacciones sin afectar la compatibilidad hacia atrás con las transacciones existentes. La EIP-2718 introduce un formato que combina un TransactionType con un TransactionPayload.

  • TransactionType: Un número que identifica el tipo de transacción, utilizado para determinar que se trata de una transacción que permite establecer código en una EOA.
  • TransactionPayload: Contiene los detalles específicos de la transacción, incluyendo una lista de autorizaciones. Cada autorización indica qué código se puede ejecutar y se verifica para asegurar su validez.

La estructura de la "set code transaction" permite que las EOAs no solo envíen y reciban transacciones, sino que también establezcan su propio código, equiparándolas con los contratos inteligentes en términos de funcionalidad.

Indicador de Delegación

Un aspecto clave de esta transacción es el "indicador de delegación". Este mecanismo permite que el código de una cuenta EOA sea ejecutado como si fuera un contrato inteligente. Al establecer un código a través de la delegación, las EOAs pueden apuntar a direcciones específicas donde se encuentra el código a ejecutar, ampliando así sus capacidades. Por ejemplo, podríamos ejecutar el “set code transaction” indicando a nuestra EOA que, al ser invocada, ejecute el código del smart contract que hemos especificado.

Gas

El remitente de la transacción es responsable de cubrir todos los costos de gas, incluyendo las autorizaciones, sin importar su validez. La cuenta que está delegando y comportándose como un smart contract no será quien pague por las transacciones que realice al ser invocada, de la misma forma que funciona un smart contract común. El costo total del gas se compone de un costo base, además de gastos adicionales por la cantidad de datos enviados, que varían entre datos nulos y no nulos. También se suman costos por acceder a claves y direcciones en la lista de autorizaciones. El acceso a cuentas frías resulta más caro que a cuentas cálidas, lo que refleja el uso adicional de recursos. Esto se debe a que acceder a una dirección que fue inicializada es menos costoso que a una que no lo fue. Así, el costo de gas puede ser más alto o más bajo, dependiendo de la complejidad de la transacción.

Consideraciones de Seguridad

La EIP-7702 también aborda preocupaciones de seguridad. Requiere que el código delegado sea auditado correctamente para evitar accesos no autorizados. Los contratos delegados deben implementar protecciones como nonces, límites de gas, value y validación de calldata para prevenir abusos y el control malicioso de cuentas. La inicialización debe estar firmada por el EOA para prevenir ataques de front-running. Cambiar la delegación requiere cuidado con el uso de almacenamiento para evitar colisiones. Permitir que tx.origin establezca código puede romper protecciones de reentrancia. Además, los relayers deben protegerse ante pérdidas de gas no reembolsadas. Finalmente, al delegar lógica a EOAs, se complica la propagación de transacciones, por lo que los clientes deben limitar las transacciones pendientes por cuenta delegada. Por ejemplo, si alguien hace un llamado para retirar fondos de la billetera, pero antes de que se ejecute, la billetera retira los fondos, la transacción de la mempool no se ejecutará.

Conclusión

La EIP-7702 representa un avance importante para las EOAs en Ethereum, permitiendo una experiencia de usuario más rica y flexible. Al introducir funcionalidades como el agrupamiento de transacciones y el patrocinio, facilita la transición hacia un ecosistema donde las EOAs pueden operar con la eficacia de los contratos inteligentes. Su base en la EIP-2718 establece un marco sólido para futuros desarrollos en la plataforma.

Para una explicación más detallada y un ejemplo práctico, no olvides ver el video aquí: https://youtu.be/n6hr1g36oXw

¿Te gustaría recibir novedades por email?

Tendrás en tu correo todas nuestras noticias y avances. Podrás darte de baja cuando gustes :)

Newsletter Illustration