Análisis de la tecnología de abstracción de cuentas multichain: comparación entre ERC-4337 y AA nativo

Revelando el futuro: análisis de la abstracción de cuentas multichain

Del 8 al 11 de julio, se celebró la conferencia de la comunidad de Ethereum en Bruselas, el evento anual de Ethereum más grande de Europa, centrado en la tecnología y la comunidad.

En esta conferencia, más de 350 líderes de opinión de primera línea en la industria blockchain dieron discursos, incluyendo una charla titulada "Revelando el futuro: análisis de la abstracción de cuentas multicanal".

Puntos clave de la presentación:

  • La abstracción de cuentas (AA) tiene dos puntos clave: la abstracción de firma y la abstracción de pago. La abstracción de firma permite a los usuarios elegir cualquier mecanismo de verificación, mientras que la abstracción de pago admite múltiples opciones de pago para transacciones. Esta flexibilidad mejora la seguridad y la experiencia del usuario.

  • Las funciones de punto de entrada en la etapa de "verificación" de ERC-4337 y AA nativo son fijas, mientras que en la etapa de "ejecución", solo el punto de entrada de AA nativo es fijo. Las limitaciones para verificar transacciones y los pasos para ejecutar transacciones varían según la implementación.

  • Al implementar ERC-4337 en cadenas compatibles con EVM, las diferencias en el protocolo del diseño de Rollup y la forma de calcular direcciones son dos diferencias clave, lo que provoca que surjan algunos detalles de desarrollo sutiles al implementar ERC-4337 entre L1 y L2.

A continuación se presenta el texto completo del discurso:

Hola a todos, hoy voy a presentar el concepto de ERC-4337 y AA nativo, discutir las diferencias entre ellos y analizar en detalle las principales diferencias del estándar 4337 en L1 y L2.

abstracción de cuentas introducción

1. Definición de abstracción de cuentas

La abstracción de cuentas(AA) incluye principalmente dos puntos clave: la abstracción de firmas y la abstracción de pagos.

  • Abstracción de firmas: los usuarios pueden elegir cualquier mecanismo de verificación que deseen, no limitándose a ciertos algoritmos de firma digital (como ECDSA).
  • Abstracción de pagos: los usuarios pueden utilizar múltiples opciones de pago para transacciones, como usar activos ERC-20 en lugar de activos nativos para el pago, o permitir que un tercero patrocine la transacción.

Esta flexibilidad ofrece una experiencia de usuario más segura y óptima. El objetivo de la abstracción de cuentas es lograr estos dos puntos clave de diversas maneras.

¿El futuro de la infraestructura criptográfica? Análisis de la abstracción de cuentas de múltiples cadenas

2. Introducción a ERC-4337

Actualmente, las cuentas de propiedad externa (EOA) en el protocolo de Ethereum tienen algunas limitaciones, como un método de firma fijo y un diseño de pago. ERC-4337 aborda estos problemas al introducir métodos de gestión de cuentas y procesamiento de transacciones más flexibles.

  • estructura userOp: en ERC-4337, el usuario envía la estructura userOp al Bundler. El Bundler recopila múltiples userOp y las envía al contrato EntryPoint mediante la llamada a la función handleOps.
  • Contrato EntryPoint: este contrato maneja las transacciones como un sistema operativo, y sus funciones principales incluyen:
    • Llamar a la función validate en el contrato de cuenta, asegurando que userOp obtenga la autorización del propietario de la cuenta.
    • Cobrar tarifas.
    • Llamar a la función execute en el contrato de cuentas para ejecutar la operación objetivo de userOp.

3. Introducción a AA nativa

En Ethereum, las cuentas se dividen en EOA y cuentas de contrato. Sin embargo, en la AA nativa, cada cuenta es un contrato, y el mecanismo de procesamiento de transacciones está directamente integrado en el protocolo de la cadena de bloques.

Diseño de AA en varias redes de blockchain:

  • Abstracción de cuentas ERC-4337: Ethereum, Arbitrum, Optimism, Base, Linea, Scroll, Polygon PoS
  • La abstracción de cuentas nativa sigue ERC-4337: Era de StarkNet y zkSync
  • Cuenta abstracta nativa con diseño de privacidad: Aztec

¿El futuro de la infraestructura de criptomonedas? Análisis de la abstracción de cuentas multichain

Diferencias entre ERC-4337 y AA nativo

1. Rol del sistema operativo

AA OS necesita resolver los siguientes problemas:

  • Determinante del precio del gas
  • El decisor del orden de las transacciones y la ubicación del pool de memoria
  • Activador de la función de punto de entrada
  • Factores determinantes del proceso de procesamiento de transacciones

En ERC-4337, estos roles se completan en colaboración a través del Bundler y el EntryPoint Contract.

En la AA nativa, los usuarios envían sus userOps al operador/ordenador del servidor oficial, en lugar de al Bundler y al EntryPoint Contract.

En StarkNet, el Sequencer se encarga de manejar todas estas tareas.

En zkSync, la principal diferencia entre Era y otras implementaciones de AA es que el Operador necesita trabajar en conjunto con el bootloader (contrato del sistema). El bootloader abre nuevos bloques, define sus parámetros (incluidos los parámetros del bloque y otros parámetros de Gas), y recibe transacciones del Operador para su verificación.

2. Interfaz de contrato

Debido a la existencia de tres pasos, la interfaz del contrato de cuenta es similar en diferentes implementaciones, estos puntos de entrada solo pueden ser llamados por el AA OS:

  • ERC-4337: validación de operaciones del usuario
  • zkSync: validación de transacciones, pago de transacciones, ejecución de transacciones
  • StarkNet: ejecutar, validar, validar_declarar, validar_desplegar

En ERC-4337 y AA nativa, la función del punto de entrada en la etapa de "verificación" es fija, mientras que en la etapa de "ejecución", solo el punto de entrada en AA nativa es fijo.

3. Restricciones de los pasos de verificación

Debido a que la validación de transacciones no tiene restricciones de costo (en esencia, validar transacciones es invocar funciones de vista), un atacante puede llevar a cabo un ataque DoS en el pool de memoria, lo que puede dañar el bundler (EIP-4337) o los operadores/ordenadores (AA nativo).

EIP-4337 define qué códigos de operación están prohibidos y cómo se limita el acceso a la memoria. zkSync Era ha relajado el uso de algunos códigos de operación:

  • La lógica del contrato solo puede acceder a su propio espacio de almacenamiento. Si la dirección del contrato de cuenta es la dirección A, puede acceder a:

    • Slots de almacenamiento pertenecientes a la dirección A
    • espacio de almacenamiento perteneciente a cualquier otra dirección A
    • Almacén de almacenamiento keccak256 (A || X) perteneciente a cualquier otra dirección: esto significa usar directamente la dirección como clave en el mapeo (por ejemplo, mapping (address => value)), lo que equivale a acceder al almacén keccak256 (A || X). Por ejemplo, el saldo de activos en un contrato ERC-20.
  • La lógica del contrato no puede acceder a variables globales, como el número de bloque. StarkNet tampoco permite llamadas a contratos externos.

4. Limitaciones de los pasos de ejecución

En zkSync, realizar llamadas al sistema requiere confirmar la existencia de las banderas del sistema. Por ejemplo, la única forma de aumentar el nonce es interactuando con el NonceHolder, mientras que desplegar un contrato requiere interactuar con el ContractDeployer. Las banderas del sistema aseguran que los desarrolladores de cuentas interactúen conscientemente con los contratos del sistema.

En ERC-4337 y StarkNet, no hay restricciones especiales en la fase de ejecución.

5. Número aleatorio

  • En ERC-4337, el diseño del número aleatorio del punto de entrada distingue entre un valor de clave de 192 bits y un valor aleatorio de 64 bits.
  • En zkSync, el contrato del sistema NonceHolder gestiona el nonce, asegurando un incremento estricto, es decir, aumentando el número aleatorio en 1.
  • En StarkNet, el nonce también es estrictamente creciente, pero no hay un nonce abstracto gestionado por un contrato específico.

6. Usar la primera transacción para implementar

  • ERC-4337 incluye el campo initcode en la estructura userOp para desplegar el remitente (contrato de cuenta) en su primer userOp.
  • En StarkNet y zkSync, los usuarios deben enviar la primera transacción a un operador/ordenador para desplegar la cuenta del contrato.

7. diseño especial en zkSync

Si transfieres ETH directamente de un EOA de Ethereum a zkSync, no necesitas desplegar un contrato de cuenta personalizado, recibirás una cuenta predeterminada con la misma dirección. Esta cuenta puede funcionar como un EOA de Ethereum y también está controlada por la clave privada correspondiente del EOA de Ethereum.

Este tipo de cuenta es la versión None en lugar de version1. No puedes llamar a las funciones de DefaultAccount, ya que no ha desplegado ningún código en el espacio del kernel.

¿El futuro de la infraestructura de criptomonedas? Análisis de la abstracción de cuentas multichain

La diferencia entre el 4337 de L1 y el 4337 de L2

Hay dos diferencias clave en la implementación de ERC-4337 en cadenas compatibles con EVM: diferencias de protocolo y diferencias de dirección.

1. Diferencias en el protocolo

En el diseño de Rollup, L2 necesita subir datos a L1 para la seguridad y liquidación. En el contexto de ERC-4337, los costos asociados a este proceso de carga, como la tarifa de seguridad de L1 y la tarifa de blob, deberían incluirse en el Gas de prevalidación. Determinar los costos de carga apropiados en el Gas de prevalidación es un desafío significativo.

2. Diferencias de dirección

El método de codificación de direcciones en la función create de zkSync ERA es diferente al de Ethereum y OP. Además, StarkNet utiliza una función hash única para el cálculo de direcciones. En el contexto de ERC-4337 en cadenas compatibles con EVM, normalmente asumimos que el cálculo de direcciones es consistente en todas las cadenas. Sin embargo, hay un detalle que puede pasar desapercibido y que podría causar que las direcciones de contrato de cuenta sean diferentes entre las implementaciones de ERC-4337 en Ethereum y L2.

La cuestión clave es la adición de nuevos códigos de operación en un hard fork. Por ejemplo, si la cadena L2 no admite el hard fork de Shanghái y no se especifica la versión de EVM en el momento de la compilación, la introducción de push0 provocará un cambio en el bytecode, incluso si el código de Solidity es el mismo.

Conclusión

以上是关于abstracción de cuentas的一些信息。如果你有任何疑问,欢迎在Twitter上与我联系。

¿El futuro de la infraestructura criptográfica? Análisis de la abstracción de cuentas multichain

Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
  • Recompensa
  • 7
  • Compartir
Comentar
0/400
EthMaximalistvip
· 07-24 00:42
La conferencia no aclaró nada.
Ver originalesResponder0
RugDocScientistvip
· 07-23 14:29
Otra ola de clases de marketing.
Ver originalesResponder0
AirdropSweaterFanvip
· 07-22 12:12
¡Jugar con múltiples cadenas AA es increíble!
Ver originalesResponder0
RiddleMastervip
· 07-22 12:11
¡La firma abstracta es increíble!
Ver originalesResponder0
liquidation_surfervip
· 07-22 12:00
¿Otra vez cupones de clip?
Ver originalesResponder0
RugPullProphetvip
· 07-22 11:51
No se puede decir con certeza si el proyecto estará el próximo año.
Ver originalesResponder0
SnapshotDayLaborervip
· 07-22 11:46
¿Cuándo se podrá hacer una transferencia con un solo botón?
Ver originalesResponder0
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)