Escrito por Kiwi Yao, investigador @OKX Ventures
La abstracción de cuentas (AA) ha sido un tema candente recientemente en el espacio cripto por su influencia revolucionaria en la gestión de cuentas individuales en Ethereum. Al simplificar numerosos puntos débiles, esta podría ser la propuesta que reduzca la barrera de entrada para los no nativos de las criptomonedas. Estos beneficios incluyen desacoplar las fuentes de transacciones de las firmas y brindar a los usuarios más flexibilidad en la seguridad de las cuentas.
¿Quieres saber más? Aquí encontrarás todo lo que necesitas saber para comprender la AA con la propuesta EIP-4337.
¿Qué es la abstracción de cuentas?
Antes de profundizar en la AA, es importante comprender primero los tipos de cuentas en Ethereum. Estas incluyen cuentas de propiedad externa (EOA) y cuentas de contrato (CA). Las EOA están controladas por claves privadas y frases iniciales, mientras que las cuentas de contrato están controladas por contratos inteligentes. La AA se refiere al proceso de desvincular las fuentes de transacciones de las firmas y actualizar las EOA a CA. Esto dará a los contratos inteligentes control sobre las EOA y permitirá la creación de billeteras de contratos inteligentes, lo que mejorará la experiencia general de los titulares de cuentas y desbloqueará una mayor flexibilidad de gestión de cuentas.
Por qué la AA es útil
La AA es muy bien recibida por la comunidad Ethereum porque simplifica todo el proceso de administración de cuentas. Algunos beneficios incluyen ofrecer más flexibilidad a acciones rígidas on-chain y permitir mayores opciones de seguridad. Solo con estas mejoras, la AA mejora en gran medida la experiencia general de interactuar con el ecosistema Ethereum a medida que se solucionan numerosos inconvenientes y puntos débiles.
La historia de Ethereum con la AA
Antes de repasar la historia de la AA, primero comprendamos las diversas propuestas de mejora de Ethereum (EIP) que desempeñan un papel en la situación actual de la AA.
EIP-2938 implica crear cuentas de "alto nivel" de CA capaces de pagar tarifas y ejecutar transacciones. EIP-3074 introduce dos nuevos OpCodes para permitir que las EOA utilicen contratos. Estos OpCodes son AUTH y AUTHCALL, que permiten a las EOA delegar sus acciones en un contrato. En última instancia, esto permite a los desarrolladores diseñar objetos de transacción y mecanismos de verificación dentro de un marco más flexible.
EIP-4337 revela el grupo de memoria de operaciones de usuario (operaciones de usuario), que es una nueva lógica operativa que reemplaza el grupo de memoria de transacciones actual y habilita la AA.
Si bien la AA se mencionó por primera vez como parte de EIP-2938 y EIP-3074 en 2020, los cambios sugeridos finalmente quedaron en suspenso. Esto se debió a la necesidad de realizar cambios profundos en el protocolo Ethereum. Con la introducción de EIP-4337, la AA será posible sin necesidad de cambios de protocolo.
Comparación con otras soluciones de abstracción de cuentas
Aunque EIP-4337 puede parecer complejo para los principiantes de Ethereum, la solución de AA anterior, EIP-3074, implicó la introducción de dos nuevos códigos de operación. Como esto implicó cambios extensos en la capa de consenso en Ethereum, la propuesta finalmente se detuvo y quedó en suspenso.
Una inmersión profunda en EIP-4337
Fuente: OKX Ventures
Dado que EIP-4337 es la última propuesta para habilitar la AA, es importante comprender cómo lo logra y la diferencia entre EIP-4337 y sus predecesores. Aquí hay algunos términos clave:
UserOperation es un objeto que se realiza para que el individuo envíe una transacción.
El punto de entrada es un contrato que ejecuta transacciones de paquetes de operaciones de usuario.
Bundler es un nodo que maneja las operaciones del usuario como una transacción de bundler y agrega transacciones de punto de entrada al bloque mientras aún son válidas.
Los contratos de billetera son cuentas de contratos inteligentes propiedad del usuario
Wallet Factory es un contrato inteligente que puede crear nuevas billeteras de contratos inteligentes bajo demanda para individuos.
Los agregadores son contratos de ayuda en los que las cuentas confían para validar firmas agregadas. Luego, los bundlers incluyen en la lista blanca los agregadores admitidos.
Los paymasters son contratos encargados de poner lógica personalizada en la blockchain. Esto incluye permitir la flexibilidad de pago de gas en cualquier moneda en cualquier red.
EIP-4337 simplifica el proceso de AA con la introducción de bundler, contrato de punto de entrada, paymaster, fábrica de billeteras, agregador de firmas y operaciones de usuario.
Cuando un individuo quiere enviar una transacción, crea una operación de usuario. Una operación de usuario contiene toda la información necesaria para enviar una transacción, pero aún no está firmada por el individuo.
Luego, la operación del usuario se envía a un bundler, que es un contrato inteligente que agrupa las operaciones del usuario en una sola transacción. Luego, el bundler envía la transacción al contrato de punto de entrada que identifica y valida las operaciones del usuario asociadas con las billeteras de contratos inteligentes.
Finalmente, después de la validación, las billeteras de contratos inteligentes asociadas con las operaciones del usuario implementan la función ExecuteUserOp, que ejecuta las transacciones.
Comprender el flujo de transacciones
A continuación se muestra un ejemplo de cómo se produciría una transacción según la nueva propuesta habilitada para la AA.
Iniciar el proceso de transacción
La cuenta expresa su intención creando una operación de usuario. Una operación de usuario puede acceder a datos relacionados con la dirección del remitente, que incluye 'maxFeePerGas' y 'maxPriorityFee'. En cuanto al acceso al uso del campo de 'firma', cada instancia de acceso está determinada por la implementación de la cuenta en lugar del protocolo existente. Luego, cada operación de usuario se envía a un grupo de memoria de operaciones de usuario dedicado.
Envío de transacciones
Luego, las operaciones del usuario son manejadas por validadores, que agrupan estas operaciones del usuario en un grupo de memoria separado. Con el bundler actuando como creador de bloques, las operaciones del usuario se agregan al bloque mientras las transacciones del punto de entrada aún se consideran válidas. Incluso si el bundler no es un creador de bloques, puede lograrlo trabajando con la infraestructura de creación de bloques. Algunos ejemplos de dicha infraestructura incluyen mev-boost, proposer-builder separation, y experimental eth_sendRawTransactionConditional RPC APIs.
Identificar transacciones
Después del proceso de envío anterior, las operaciones del usuario se envían al contrato de punto de entrada, que ejecuta los paquetes de operaciones del usuario. Para aceptar las operaciones del usuario, el bundler debe hacer uso de la función validateUserOp para validar la firma de las operaciones del usuario. Después de hacerlo con éxito, los bundlers incluyen en la lista blanca el contrato de punto de entrada admitido.
Ejecutar transacciones
Finalmente, la transacción se completa mediante la billetera de contrato inteligente, que implementa la función ExecuteUserOp. Los bundlers empaquetan un conjunto de estos objetos de operación de usuario en una transacción e inician una llamada de función en el contrato inteligente handleOps EntryPoint. Luego, esta transacción se incluye en un bloque.
Comparación de billeteras cripto EOA, MPC y AA
¿Tienes curiosidad por las diferencias entre los distintos tipos de billeteras cripto? Aquí hay una tabla útil que resume las similitudes y diferencias.
billetera EOA | billetera MPC | billetera AA | |
---|---|---|---|
Tipo de cuenta | EOA | EOA | CA |
Costo de creación | Bajo | Bajo | Alto |
Tarifas de gas | Bajo | Bajo | Alto |
Método de pago de gas | Único | Único | Multidivisa, permite tokens de terceros y |
Transacciones por lotes | Ninguno | Ninguno | Disponible |
Método de firma | ECDSA | ECDSA | Varios métodos de firma |
Gestión de claves privadas | Requerido | Requerido | No requerido |
Recuperación de billetera | Ninguno | Ninguno | Disponible |
Requisito de auditoría | Auditoría de seguridad básica | Política de autorización de firma off-chain, se necesita consideración de transparencia | Se requiere auditoría de los contratos on-chain y del pool de demanda |
Seguridad | Sin estándar, baja seguridad | Posible recuperación sin conexión en dispositivos confiables | Seguridad a nivel de cadena lograda después de EIP-4337 |
Compatibilidad del ecosistema | Fuerte | Débil | Moderado |
Eliminación del punto único de falla | Imposible | Posible | Posible |
¿En qué se diferencia EIP-3074 AA de EIP-4337 AA?
EIP-3074 se suspendió porque era un EIP central y requería cambios en la capa de consenso. Fue necesario introducir dos nuevos OpCodes para permitir que las cuentas EOA utilicen el contrato. Esto viene con su propio conjunto de ventajas y desventajas al considerar la versión de AA de EIP-3074.
Ventajas
El factor más importante a favor del AA de EIP-3074 es que permite a los usuarios delegar el control de su EOA a un contrato. Esto brinda a los desarrolladores un marco flexible para desarrollar esquemas de transacciones novedosos para EOA, como el trading por lotes, el trading empaquetado y el pago flexible de gas.
Otra ventaja es que la solución AA de EIP-3074 implica el uso de contratos de invocador, que aceptan pagos en tokens distintos a ETH. Estos intermediarios ejecutan transacciones entre patrocinadores y patrocinados.
Además, la solución de AA de EIP-3074 permite que cualquier EOA actúe como una billetera de contrato inteligente sin implementar un contrato.
Desventajas
Una gran razón por la que EIP-3074 no es el preferido entre la comunidad Ethereum es que implica cambios en la capa de consenso. Esto puede ser desastroso ya que puede ser necesario un hard fork para resolver cualquier problema que surja debido a cambios en la capa de consenso.
Dado que EIP-3074 permite que las EOA tengan las características de las CA, todavía utiliza una firma ECDSA fija en el mecanismo de firma. Esto evita el uso de firmas arbitrarias.
La introducción de EIP-5003
Aunque EIP-3074 se suspendió, esto no significa que la propuesta se haya abandonado por completo. EIP-5003 presenta AUTHUSURP OpCode, que implementa código en direcciones autorizadas EIP-3074.
EIP-5003 trabaja junto con EIP-3607 para revocar la autoridad de la clave de firma original para las EOA. Por ejemplo, EOA uno ha autorizado a la dirección dos para actuar en su nombre según EIP-3074. Gracias al OpCode AUTHUSURP, la dirección dos puede configurar los códigos EOA. Esto permite efectivamente que una EOA existente se actualice a una CA y le otorga la capacidad de migrar de firmas ECDSA a un método de firma más eficiente y seguro.
Conclusión
A medida que Ethereum continúa innovando en la búsqueda de una adopción masiva, vemos que se resuelven muchos puntos débiles gracias a la introducción de la solución AA de EIP-4337. Con la AA, estamos presenciando beneficios como mayores opciones de seguridad y flexibilidad en el pago de gas que reducirán en gran medida la barrera de entrada al interactuar con el ecosistema Ethereum.
Consulta este espacio para obtener más actualizaciones sobre cómo OKX integrará EIP-4337 en nuestra billetera multicadena.
© 2024 OKX. Este artículo se puede reproducir o distribuir tanto en su totalidad como parcialmente en fragmentos de 100 palabras o menos, siempre que no sea con fines comerciales. Cualquier reproducción o distribución del artículo en su totalidad debe indicar de forma prominente: “Este artículo es © 2024 OKX y se utiliza con permiso”. Los fragmentos permitidos deben citar el nombre del artículo e incluir la autoría. Por ejemplo: “Nombre del artículo, [nombre del autor si corresponde], © 2024 OKX”. No se permiten trabajos derivados u otros usos de este artículo.