¿Qué es el ERC-4337?
Una de las actualizaciones más recientes dentro de Ethereum es conocida cómo Abstracción de Cuentas o Account Abstraction, que ha sido implementada siguiendo el estándar, ERC-4337.
¿Qué es exactamente la Abstracción de Cuentas o Account Abstraction que aduce el ERC-4337? Vamos a explicar de forma sencilla y comprensible qué es este nuevo estándar y qué funcionalidades ofrece a la red Ethereum.
Abstracción de Cuentas o Account Abstraction, la nueva mejora de Ethereum
Abstracción de Cuentas o Account Abstraction es una mejora de Ethereum que fue presentada por Vitalik Buterin, Yoav Weiss, Kristof Gazso, Namra Patel, Dror Tirosh, Shahaf Nacson y Tjaden Hess, el 29 de septiembre de 2021, bajo el EIP-4337 (EIP o Ethereum Improvements Proposals, mejor conocida como Propuesta de Mejora de Ethereum).
Su objetivo es la de permitir la creación de una infraestructura capaz de ofrecer cuentas inteligentes controladas por smart contracts. De esta forma, los usuarios de dichas cuentas puedan disfrutar de capacidades únicas como:
- La recuperación de claves.
- Sistema de pagos automáticos y recurrentes.
- Tarifas de gas “patrocinadas” (a coste cero para el usuario).
Todo de forma sencilla, haciendo uso de un estándar único y sin renunciar a la descentralización en el control de las cuentas.
La idea de la abstracción de cuentas no es nada nuevo. De hecho, la idea original lleva más de 9 años en construcción y ha contado con la participación de actores tan importantes como VISA.
Sin embargo, no ha sido sino hasta el 22 de febrero de 2023, que los desarrolladores han decido desplegar esta mejora en Ethereum, por medio de la liberación de once (11) smart contracts que dan origen a lo que se conoce como EntryPoint.
¿Cómo funciona el ERC-4337?
Para entender cómo funciona el ERC-4337, primero debemos comprender cómo están constituidas las cuentas dentro de Ethereum. En la red, tenemos dos tipos de cuentas:
- Cuentas de Propiedad Externa (EOA o Externally Owned Account). Son las que normalmente usamos en monederos como MetaMask. Es decir, son cuentas que están gestionadas por un monedero, el cual es el encargado de generar las claves privadas, las claves públicas y también es el encargado de la interacción con la red (solicitar saldos, interactuar con smart contracts, enviar pagos, etc).
- Contract Account (CA) o Cuentas Inteligentes. Una CA es un tipo de cuenta gestionada por un smart contract. Por ejemplo, las cuentas de un pool de staking de Uniswap. Lo mismo pasa con las Vaults de DAI o cualquier otro tipo de cuenta gestionada por smarts contracts.
Sabiendo esto, es más sencillo entender cómo funciona el ERC-4337. La mejora tiene como objetivo permitir que los usuarios puedan usar un monedero con soporte a este estándar para generar cuentas que puedan manejar. Sin embargo, estas cuentas están controladas por un smart contract.
Así, el usuario solo debe interactuar con el smart contract para recuperar su acceso y el acceso a sus tokens contenidos en dicho smart contract. Es tal como pasa actualmente en los pools de staking, solo que en esta ocasión, ERC-4337 está desarrollado para ser mucho más sencillo y seguro de utilizar e implementar.
El funcionamiento a bajo nivel
Para lograr esto, el ERC-4337 replica la funcionalidad del mempool de transacciones en un sistema de nivel superior empleando smart contracts.
En primer lugar, las operaciones de los usuarios junto con firmas y otros datos, son tomados para su verificación. Este proceso es posible gracias al trabajo conjunto entre los validadores y los Flashbots, quienes se encargan de agrupar estas operaciones en “una única transacción agrupada“, que se incluye después en un bloque de Ethereum.
La tarifa de gas es pagada por estos actores, quienes a su vez, reciben compensaciones de todas las operaciones individuales agrupadas, tal como pasa en la mempool. El mismo criterio se usa para la priorización de las operaciones, solo que en este caso entran en juego otras variables, como:
- Conocimiento del remitente o el monedero que realiza la operación.
- Nonce y signature, que son parámetros pasados a la función de verificación del monedero, con el fin de que se pueda verificar una operación.
- initCode, que es un código de inicio con el que se crea el monedero si aún no existe.
- callData, que son datos de llamada al monedero para el paso de ejecución real.
- Los campos restantes tienen que ver con la gestión del gas y las comisiones; la lista completa de campos se puede encontrar en la especificación ERC 4337.
De esta forma, un monedero con soporte ERC-4337 se transforma en un monedero gestionado por un contrato inteligente o smart contract.
Funciones avanzadas del ERC-4337
¿Qué ventajas ofrece la implementación del ERC-4337 en Ethereum y sus monederos?
Recuperación de cuentas
Uno de los hechos más comunes dentro del ecosistema es la perdida de acceso a nuestras cuentas. Perder datos como la seed phrase en un accidente o la perdida de un monedero físico (hardware wallet) son hechos bastante frecuentes. Normalmente, una perdida de este tipo es irrecuperable y con ello se pierden millones euros en valor. Pero ¿Y si pudiéramos cambiar eso?
Aquí es donde entra en acción el ERC-4337. Debido a que la cuenta está controlada por un smart contract, es posible programar condiciones de recuperación de la cuenta. Por ejemplo, si la cuenta ha tenido un tiempo de inactividad determinado, podemos programar que devuelva los tokens a una dirección dada anteriormente, lo que nos permitiría recuperar ese saldo.
O mejor aún, podemos programar el monedero con una serie de condiciones que nos permita ganar la recuperación del dinero más directamente. Por ejemplo, si firmamos una transacción con un mensaje determinado (nuestro secreto) y una dirección destino, y lo enviamos a la dirección, el smart contract puede detectar esto y realizar una transferencia de saldos a la dirección dada anteriormente permitiéndonos recuperar el saldo de ese monedero.
En pocas palabras, el ERC-4337 permite esquemas de recuperación de cuentas que con una cuenta tradicional, sería imposible de efectuar.
Uso de 2FA en nuestras cuentas
Otra función avanzada que podemos habilitar gracias al ERC-4337, es la realización de transacciones bajo condiciones que deben ser cumplidas. Imagina por un momento que tienes una cuenta compartida y que has limitado la misma para efectuar gastos de 1000 euros al mes.
En caso de que el límite se supere, sería necesario aplicar un 2FA en el que tu compañero y tú debéis firmar la transacción para hacerla válida.
Pues bien, el ERC-4337 puede hacer precisamente esto. Con la programación adecuada, es posible crear una cuenta con dos firmas y establecer un límite de gastos mensual, y en caso de que se supere, las transacciones siguientes requerirán la aprobación de ambas partes para poder realizarse.
Por supuesto, el caso anterior es solo una muestra de la capacidad, la cual puede adaptarse para más cosas, según las necesidades de los usuarios o la plataforma en la que se despliegue la cuenta.
Capacidades avanzadas de operación
Además, el ERC-4337 activa un conjunto de opciones avanzadas de operación. Por ejemplo, con este estándar es posible ejecutar varias operaciones con nuestro monedero y firmar todas ellas en una sola ocasión. De esta manera, una misma transacción en Ethereum puede ejecutar dos o más operaciones de forma atómica y transparente, necesitando solo una aprobación para las mismas.
Con este tipo de funcionamiento por ejemplo, podemos operar en un DEX determinado, ejecutando varias operaciones al mismo tiempo, y al final, emitir todas como un conjunto, lo que reduce el coste en comisiones de nuestra operativa.
Uso más efectivo de criptografía y actualizaciones
Otra propiedad avanzada del ERC-4337 es que este nos permite un uso más efectivo de los avances criptográficos. Por ejemplo, con una pequeña modificación, podemos adaptar el ERC-4337 para que use esquemas de firmas Schnorr, lo que haría más segura y económica nuestra operativa de transacciones en la red.
Asimismo, podemos con una pequeña actualización de los smart contract, hacer uso de los futuros avances en la EVM. Por ejemplo, podemos emplear criptografía ZK al llegar la zkEVM (EVM de Conocimiento Cero) o la implementación de criptografía quantum-resistente. En todo caso, ERC-4337 flexibiliza la capacidad de los desarrolladores para adaptar estas tecnologías y aplicarlas rápidamente para que podamos explorarlas.
Soporte multicadena
Otra propiedad avanzada del ERC-4337 es que este ofrece soporte para múltiples cadenas. Esto es posible gracias a que es un smart contract construido sobre las capacidades de Solidity y la EVM. Esto significa que cualquier red con soporte a estas dos tecnologías puede implementar con éxito el estándar ERC-4337.
Así, redes como Polygon o Gnosis, pueden aprovechar esta capacidad para sus redes y ofrecer mayores funcionalidades, algo que de hecho, ya se está realizando en las respectivas testnets de esta y otras redes EVM-compatibles.
Pros y contras de la implementación del ERC-4337
Ahora bien, la implementación del ERC-4337 nos ofrece una serie de pros y contras, entre los que se puede identificar:
Pros
- No centraliza el control de los monederos. Esto gracias a que el control de los mismos se mantiene descentralizado en todo momento.
- Mejoras en la seguridad de los monederos. Desde el uso de opciones avanzadas como el 2FA, mayor facilidad en la implementación de multifirmas entre otras mejoras a nivel criptográfico, ERC-4337 ofrece una mejor seguridad para los monederos que implementen el estándar. Además, reduce la complejidad en el desarrollo de los monederos.
- Reduce la complejidad en el manejo y control de los monederos. Una característica que sin duda ayuda a masificar el acceso a esta tecnología por parte de personas que no están acostumbradas o no tienen grandes conocimientos de ciberseguridad y criptomonedas.
- Compatibilidad con múltiples cadenas e interoperabilidad. Gracias al empleo de Solidity y la EVM, que son los únicos requisitos que deben cumplir las cadenas donde se despliega este estándar, sin necesidad de alterar el protocolo de consenso en ninguna forma.
- Mantiene la posibilidad de reemplazar comisiones. Para ello, solo es necesario enviar una nueva operación con una comisión más alta.
- Flexibilidad de la lógica de ejecución. Esto permite que los monederos puedan añadir lógica personalizada para el paso de ejecución, por ejemplo, realizar multioperaciones atómicas.
Contras
- Ligero aumento de la vulnerabilidad DoS. Esto a pesar del mayor esfuerzo del protocolo, simplemente porque se permite que la lógica de verificación sea algo más compleja que el status quo de una única verificación ECDSA.
- Sobrecarga de gas. Algo más de sobrecarga de gas que las transacciones normales (aunque se compensa en algunos casos de uso por el soporte multi-operación). Esto se debe a la necesidad de intermediación de los smart contracts ERC-4337. En pocas palabras: comisiones más altas por usar esta función.
- Una transacción a la vez. Las cuentas no pueden poner en cola y enviar múltiples transacciones al mempool. Sin embargo, la capacidad de realizar multi-operaciones atómicas hace que esta característica sea mucho menos necesaria.