
Prefacio
Este artículo se divide en dos módulos principales:
En la primera mitad, a partir de la primera propuesta de AA de 2015, hasta ahora organizaremos sistemáticamente el contenido principal de la propuesta EIP, con la esperanza de explorar la historia de la propuesta histórica de AA y evaluar exhaustivamente las ventajas y desventajas de cada plan.
En la segunda mitad, nos enfocamos en comparar la retroalimentación de la recesión del mercado que enfrenta EIP4337 después de la propuesta, y luego analizar el análisis en profundidad de EIP7702, que se incluirá en la próxima versión de Ethereum Upgrade. Cambiará el formulario de solicitud en la cadena en todos los aspectos.
EIP-7702 tiene cambios en la época, déjame escuchar a los catorce reyes en detalle
1. Antecedentes abstractos de cuenta
1.1 El posicionamiento de la cuenta del significado abstracto
El fundador de Ethereum, Vitalik, actualizó la hoja de ruta de desarrollo ETH nuevamente a fines de 2023, pero la configuración de la abstracción de la cuenta no se ha cambiado.El modelo convencional de hoy es de EIP-4337 a la siguiente etapa de conversión voluntaria (conversión voluntaria de la cuenta EOA).
https://x.com/vitalikbuterin/status/1741190491578810445
Más de un año desde el lanzamiento de EIP4337 (en Denver Walletcon, 2023.3.1, el contrato central de ERC-4337, que se anunció oficialmente para ser diseñado e implementado por desarrolladores de la Fundación Ethereum, ha aprobado la auditoría de Openzeppelin e IS considerado como la historia oficial de su lanzamiento.
Siempre ha sido ampliamente reconocido por los usuarios, pero no ampliamente utilizado.
1.2 Estado del mercado de resúmenes de cuenta de cuenta
No es necesario decir mucho, solo mira los datos.
Después de un año y medio, EIP4337 tiene solo 1200 W de la colección de cuentas de cadena convencional. Al menos el número de direcciones que son muy diferentes de EOA y CA. ).
Se puede decir que EIP4337 en la red principal no tiene un desarrollo sustancial.
(Fuente de datos del gráfico: https://dune.com/niftytable/account-abstraction)
Sin embargo, esto no borra el valor esencial de AA, porque estaba destinado desde el comienzo del diseño de EIP4337. Las cadenas.
Por lo tanto, no es que EIP4337 esté diseñado incorrectamente.
2. ¿Qué es la abstracción de la cuenta?
La abstracción de la cuenta suena desconcertante, pero de hecho, esencialmente resuelve el problema de la separación de los derechos de propiedad.
Hay dos tipos de cuentas en la arquitectura EVM (es decir, la máquina virtual de Ethereum), la cuenta externa (EOA) y la cuenta del contrato (cuenta de contrato) y cuenta externapropiedadyDerecha de firmaDe hecho, la sostiene la misma unidad.sostenerLlave privadaLa persona no solo posee la «propiedad» de esta cuenta, sino que también tiene derecho a «transferencia de firma de todos los activos».
Esto está determinado por la estructura de transacción de la cuenta de Ethereum
De la estructura de la figura a continuación, podemos encontrar que, de hecho, las transacciones estándar de Ethereum no tienen desde.De hecho, la dirección de From se analiza inversa a través de sus parámetros VRS (es decir, firma de usuario).
Esto involucra conceptos como ECDSA, funciones de umbral unidireccional, etc. No lo expandiremos en resumen.
El efecto central de EIP4337 es agregar un campo de dirección del remitente al campo de transacción, para que la clave privada pueda separarse de la dirección operada.
Entonces, ¿por qué es tan importante la separación de los derechos de propiedad?
Porque el diseño de la cuenta externa (EOA) conducirá a más problemas:
-
Las claves privadas son difíciles de proteger: el usuario pierde la clave privada (perdida, piratería, agrietada criptográfica) significa perder todos los activos.
-
Existen pocos algoritmos de firma: los protocolos nativos solo pueden usar algoritmos de verificación de firma ECDSA y de verificación de firma en las transacciones de verificación.
-
Alto permiso de firma: no hay firma múltiple nativa (firma múltiple solo se puede lograr a través de contratos inteligentes), y las operaciones arbitrarias se pueden realizar mediante firma única.
-
Las tarifas de transacción solo se pueden pagar a través de ETH y no admiten transacciones a granel.
-
Descanso de privacidad de la transacción: las transacciones uno a uno son fáciles de analizar la información de privacidad de los titulares de cuentas.
Las limitaciones de apelación dificultan que los usuarios comunes usen Ethereum:
Primero, utilizando cualquier aplicación en Ethereum, los usuarios deben retener Ether (y asumir el riesgo de fluctuaciones de precios de éter).
En segundo lugar, los usuarios deben lidiar con la lógica de costos complejas, y los conceptos de precio del gas, límite de gas y bloqueo de transacciones (orden sin CE) son demasiado complicados para los usuarios.
Finalmente, mientras que muchas billeteras o aplicaciones blockchain intentan mejorar la experiencia del usuario a través de la optimización del producto, tienen poco efecto.
Por lo tanto, la forma de romper el punto muerto es realizar la abstracción de la cuenta y la propiedad de desacoplamiento (propietario) y derecho de firma (firmante), para resolver los problemas anteriores uno por uno.
De hecho, hay muchos planes históricos, y eventualmente se reunirán en dos rutas.
3. Aclarar el contexto de AA Propuestas históricas
Parece que hay muchas propuestas de EIP para la solución al problema, pero en el análisis final, son dos ideas básicas. Plan actual.
3.1 La primera ruta es cambiar la dirección EOA a la dirección de CA
Ya en el 15 de noviembre de 2015, Vitalik propuso una nueva estructura para usar contratos como una cuenta alrededor de EIP-101.Cambie la dirección solo en código y espacio de almacenamiento, cambie la tarifa de manejo y el pago de soporte por ERC20, cambie el token nativo a ERC20 a través de contratos precompilados para ahorrar el saldo (puede tener funciones como la autorización de deducción) y optimizar los campos de transacción a solo a, startGas, datos y código.
Ahora parece que es un gran cambio de avance, que cambiará significativamente el diseño subyacente para que cada dirección de cuenta tenga su propio «código» lógica (de hecho, es exactamente el efecto que EIP-7702 necesita lograr ahora).
También puede generar otras funciones, como
-
Deje que las transacciones usen más algoritmos de cifrado, y el método de verificación de firma puede especificarse mediante el código interno de cada dirección.
-
Tiene las características de los ataques anti-quantum porque el código tiene las características de la actualización.
-
Deje que Etereum tenga características funcionales consistentes con el contrato ERC20, y el efecto central se deduce autorizado, de modo que no se requiere la pérdida de monedas nativas.
-
Mejore el espacio personalizado de la cuenta, compatible con la recuperación social, el soporte SBT, la recuperación clave, etc.
La razón para no continuar avanzando también es muy simple. se ha convertido en una de las funciones centrales de EIP4337 y EIP7702.
Más tarde, hubo una serie de EIP tratando de mejorar esta lógica.
EIP-859: Cuenta principal de la cadena Abstracción-2018-01-30
Intentando resolver el problema de implementación del código, la función central es que si el contrato de la parte de la transacción no se implementa, la implementación de la billetera del contrato se realizará utilizando los parámetros del código de transacción. Para pagar gas, también se convierte en una transacción.
Aunque terminó en vano en ese momento, esta se ha convertido en una de las lógicas centrales de EIP7702. .
EIP-7702: Configuración del código de cuenta EOA 2024-05-07
Este es también el EIP central del mecanismo discutido en el artículo posterior, y Vitalik publicó EIP-7702 como una alternativa a EIP-3074 (2024-05-07).Por lo tanto, EIP-3074 se ha desapercido y se ha determinado que EIP-7702 se incluye en la próxima horquilla de Eth Praga/Electra (Pectra).
3.2 La segunda ruta es dejar que la dirección EOA conduzca la dirección CA
EIP-3074: agregado
Agregue dos nuevos códigos de operación a EVM
Según la siguiente figura, un resumen de la EOA puede enviar un mensaje firmado (transacción) aUn contrato en el que confíe(llamado
EIP-4337: Use el grupo de memoria de transacciones para realizar la cuenta Abstracción-2021-09-29
En resumen, se inspiró en MEV para diseñar, y su valor central era que podía evitar completamente los cambios en el protocolo de capa de consenso.
EIP4337 propone un nuevo objeto de transacción
EIP-5189: Operación de cuentas abstractas a través del respaldo-2022-06-29
Esto ha optimizado la lógica de EIP4337 y se enfrenta a la malicia
3.3 Otras propuestas para apoyar a AA
EIP-2718: sobres de empaque para nuevos tipos de transacciones-2020-06-13
Esta es una propuesta que ha sido final, que define un nuevo tipo de transacción como un sobre para los nuevos tipos de transacciones en el futuro.
El efecto final es que cuando se introduce un nuevo tipo de transacción, se distingue mediante una codificación específica, de modo que solo necesita compatibilidad hacia atrás sin compatibilidad de avance.El ejemplo más común es EIP1559.
EIP-3607: Deja
Esta es una solución complementaria en la ruta AA para evitar el problema de la dirección de implementación del contrato en conflicto con la dirección EOA.Controla el método de generación de contratos para que el sistema no permita que el código se implementa en direcciones que ya están en direcciones EOA.Este riesgo es realmente muy pequeño. Inversión de poder de Bitcoin.
3.4 ¿Cómo comprender el historial de desarrollo de la cuenta abstracto?
En primer lugar, debe comprender el valor después de convertirse en CA
Básicamente, es el efecto real de EIP-4337, lo que puede lograr
Sin embargo, la desventaja central de EIP-4337 es que viola el principio de la motivación humana.
Parece mejor, pero está atrapado en un círculo vicioso de desarrollo del mercado. para usar CAS.
Por lo tanto, no se ha popularizado en la red principal de Ethereum hasta ahora.
El costo es la medida más importante para los usuarios, y los costos deben reducirse.
Sin embargo, para reducir realmente el gas, Ethereum en sí mismo debe actualizar las horquillas blandas, modificar el consumo de gas y otros módulos, como los cálculos de gas o modificar los códigos de operación.
4. Análisis integral de EIP-7702
4.1 ¿Qué es EIP-7702?
Lo distingue mediante nuevos tipos de transacciones, lo que permite a EOA tener temporalmente la función de los contratos inteligentes en una sola transacción, lo que respalda las transacciones por lotes, las transacciones sin gases y la gestión de permisos personalizados en el negocio, sin la necesidad de introducir nuevos códigos EVM (afecta Compatibilidad hacia adelante).
Permite a los usuarios obtener la mayoría de las capacidades de AA sin implementar contratos inteligentes, e incluso puede proporcionar capacidades de terceros para iniciar transacciones en nombre de los usuarios, sin exigir a los usuarios que proporcionen claves privadas, solo firma e información autorizada.
4.2 Estructura de datos
Define un nuevo tipo de transacción 0x04, y la carga de transacción de este tipo de transacción es el resultado de serialización de codificación de RLP del siguiente contenido
Lo importante es que el objeto Authorization_List se agrega para almacenar el código que el firmante quiere ejecutar en su EOA. La información de operación múltiple se puede almacenar en lotes.
4.3 Ciclo de vida de transacciones
4.3.1 Fase de verificación
Al comienzo de la ejecución de la transacción, para cada autorización_list
-
Use Erecover para restaurar la dirección del firmante de las firmas R y S (tenga en cuenta que este es el mecanismo de Ethereum en sí, por lo que este EIP no cambia el algoritmo de firma).
autoridad = ecrecover (keccak (magia || rlp ([chain_id, dirección, nonce]), y_parity, r, s] (Similar a la desinfectación anterior para obtener la dirección desde la dirección, se obtiene la dirección de firma local para esta lista) -
Verifique la ID de cadena (repetición de la cadena antifornada).
-
verificar
Autoridad Si el código del firmante está vacío o ha sido delegado (verifique si la transacción es una transacción 7702 válida, y la transacción se ejecutará a través del mecanismo de delegación en el futuro). -
verificar
Autoridad Notce de firmante (defensaAutoridad reproducción de firma). -
configuración
Autoridad El código del firmante es0xef0100 || (Se utiliza para evitar EIP3607 Estrategia contra la colisión) -
Aumentar
Autoridad Signator’s Nonce (prevenir la repetición de la firma local). -
Voluntad
Autoridad Agregue la cuenta de firmante a la lista de direcciones accedida (reemplace las direcciones calientes, reduzca la tarifa de gas para el almacenamiento de consultas)
4.3.2 Fase de operación de ejecución
¿Dónde se ejecutarán los códigos de contrato y las instrucciones de operación?
La «nueva» versión solo cambia el comportamiento en términos de implementación de código.
Ya no establece el código de cuenta en
Entonces, cuando el código de autorización debe ser ejecutado,
Esto significa que el código de contrato del usuario en realidad se almacena en una dirección específica en la cadena, en lugar de incluir directamente en la transacción.
Las instrucciones de operación y los parámetros relacionados se almacenan en la carga de transacción
4.4 ¿Cuál es el valor de EIP-7702?
Su enlace completo de la billetera Web3 cambiará, y la experiencia del usuario también cambiará drásticamente, porque las transacciones ordinarias iniciadas por EOA también pueden ejecutar múltiples lógicas similares a los contratos, como las transferencias por lotes.Para los escenarios de CEFI, afectará la identificación de la transacción y también afectará la tarifa de recolección de retiro
Debido a su apariencia, ha roto muchas de las constelaciones anteriores, como:
-
Rompe un invariante cuyo saldo de la cuenta solo puede reducirse mediante transacciones que se originan en esa cuenta.
-
Rompe el invariante que EOA Nonce aumenta en 1 (tal vez más de uno al mismo tiempo) después de que comience la ejecución de la transacción.
-
Romper la lógica de protección de la comparación de TX.origin y Msg.Sender, muchos contratos pasados son riesgosos.
-
Rompe la situación actual de que EOA no puede emitir eventos, y puede ser necesario prestar atención a la identificación y escuchar algunos eventos en la cadena.
-
Rompe la situación actual que las direcciones de EOA inevitablemente tendrán éxito en aceptar ERC20, 721, 1155 y otros activos (debido al mecanismo de devolución de llamada, puede fallar)
4.5 Comparación de EIP-7702 y EIP-4337
1. Ventajas de EIP-7702
El gas es más bajo porque no hay necesidad de pasar por el módulo EntryPoint, reduciendo las operaciones en la cadena.
Los costos de migración del usuario son más bajos, no es necesario implementar contratos en la cadena por adelantado como el cuerpo principal
En comparación con EIP4337, también habrá ejecución delegada en código, y habrá dos formas:
Delegación completa
El delegado completo se refiere a delegar todos los permisos de una operación a una dirección específica.Por ejemplo, un usuario puede delegar los permisos de administración de todos los tokens ERC-20 a una dirección de contrato inteligente, para que este contrato inteligente pueda realizar todas las operaciones relacionadas en nombre del usuario.
Delegación protegida
La delegación protegida se refiere a agregar algunas restricciones y medidas de protección al proceso de delegación para garantizar la seguridad y la capacidad de control de la operación de delegación.
Por ejemplo, los usuarios pueden delegar los permisos de gestión para solo una parte de los tokens ERC-20 a un contrato inteligente, o establecer algunas restricciones (como gastar hasta el 1% del saldo total por día).
2. Desventajas de EIP-7702
Su desventaja principal es que es una actualización de horquilla suave, que requiere el consenso y la promoción de todos, y tiene grandes cambios, lo que tiene un amplio impacto en la ecología de la cadena. El desafío es la oportunidad de mercado:
-
El grado de libertad es extremadamente alto y difícil de ser auditado.
-
La arquitectura original ha cambiado demasiado.
-
La capacidad de contrato se proporciona para las direcciones EOA, pero el espacio de almacenamiento correspondiente no se puede retener.
-
El costo de una transacción separada aumenta ligeramente porque la parte de los datos de llamadas aumentará considerablemente, y el costo total de la llamada estimada será
16 (gas) * 15 (bytes) = 240 (gas) Costo de calldata, más EIP-3860 Costo2 * 15 = 30 , más aproximadamente el costo de tiempo de ejecución150 .Por lo tanto, solo preparando una cuenta y no hacer nada, debe agregar 500 gas. -
«Si el receptor firma un código sin la función de recepción, el remitente puede enfrentar DOS al intentar enviar el activo».El problema es que EOA un firma algo que no debería firmar: una configuración de una implementación de errores (no
recibir() ) archivo jugable. -
La lógica de retracción en la cadena puede ser inconsistente, por ejemplo, al transferir tokens ERC-20, si la cuenta del receptor tiene código, se llamará al contrato de token
OnERC20Received Cuenta del receptor.siOnERC20Received Restaurar o devolver el valor incorrecto, y la transferencia de tokens se restaurará. -
Además, si EOA puede emitir eventos, ¿habrá algún problema?Alguna infraestructura puede necesitar atención.
Estas son solo algunas deficiencias resumidas por el Catorce JUn basado en el contenido actual de la propuesta EIP7702 y la discusión del foro oficial correspondiente.
Las referencias son las siguientes:
5. Resumen de texto completo
Este artículo parece ser grandioso, pero de hecho el contenido de texto es solo más de 6k palabras.
En la actualidad, la abstracción de la cuenta solo se puede colocar en el sexto módulo, es decir, reparar todo, es decir, finalmente se está implementando. Se puede esperar que al final lo implementará.
Sin embargo, esta vez hubo demasiada subversión, rompiendo las reglas imposibles de táctil en múltiples cadenas y rompiendo la lógica de la aplicación de la mayoría de los DAPP, pero ocupó el punto más central, es decir, el costo de los usuarios es más bajo ahora.En comparación con los costos de transacción casi dobles de EIP4337.
El usuario en sí sigue siendo una dirección EOA, y solo conduce y usa la lógica de CA cuando es necesario, por lo que el costo de retención es bajo.No es necesario convertir la identidad de CA en la cadena antes de hacer la operación, lo que significa que el usuario no necesita registrarse.
Los usuarios pueden usar fácilmente la EOA para lograr múltiples transacciones paralelismo, como la deducción de la deducción y la ejecución autorizada, lo que reducirá el costo de la transacción para los usuarios. Más disruptivo y optimización.
Por lo tanto, aunque ha cambiado mucho, vale la pena estudiar y adaptarse a todos los DAPP, porque esta vez, el usuario debe estar del lado de EIP7702.