Vitalik Buterin propuso recientemente EIP-7702, que podría ser uno de los cambios más impactantes en la historia de Ethereum. Este artículo presentará el funcionamiento de esta nueva propuesta y todo lo necesario para entender su implementación.
En primer lugar, la propuesta EIP-7702 es sorprendentemente breve, lo que ha dejado a algunas personas desconcertadas sobre su funcionamiento. Para entender EIP-7702, necesitamos echar un vistazo a otras tres propuestas mencionadas en ella:
EIP-4337
EIP-3074
EIP-5003
Comencemos con el objetivo común de estas propuestas: la "abstracción de cuentas." En Ethereum, las EOAs (cuentas "ordinarias") tienen desventajas significativas: son muy arriesgadas y tienen funcionalidades muy limitadas. La abstracción de cuentas permite a los usuarios utilizar contratos inteligentes como cuentas, agregando más funcionalidad y seguridad para abordar estos problemas.
EIP-4337 se lanzó en la mainnet en marzo de 2023. Permite que los contratos inteligentes se escriban como cuentas para que puedan verificar y ejecutar transacciones, mejorando muchas experiencias de usuario (UX).
Desde su lanzamiento, EIP-4337 ha sido ampliamente adoptado, principalmente liderado por Polygon, con una mayor actividad de Base en los últimos meses.
Las últimas innovaciones relacionadas con EIP-4337 provienen del ecosistema de Coinbase y la Cartera Inteligente de Coinbase. Esta cartera se basa en tecnología biométrica, brindando una excelente experiencia de usuario. El fin de semana pasado, creé otra demostración pequeña en ETH Global Sydney para mostrar esto.
Entonces, ¿qué problemas tiene EIP-4337? ¿Por qué hay otra propuesta de abstracción de cuentas hoy? Porque las EOAs siguen siendo, con mucho, el tipo de cuenta más ampliamente utilizado.
Además, la mayoría de las cuentas de contrato inteligente EIP-4337 están controladas por un único firmante EOA. Aquí hay un ejemplo de fragmento de código:
Debido a que no es posible "convertir" el EOA de un usuario en una cuenta de contrato inteligente, existe esta extraña solución provisional. Esto se debe principalmente a la falta de soporte nativo en las aplicaciones Web3 para conectar cuentas de contratos inteligentes. Hoy en día, la mayoría de las personas todavía usan EOA a través de billeteras de complementos como MetaMask.
Esto nos lleva a nuestra próxima propuesta: EIP-3074.
De hecho, esta propuesta fue introducida antes de EIP-4337, pero aún no ha sido fusionada en la red principal. EIP-3074 intenta empoderar a las EOAs al permitirles delegar el control de sus EOAs a contratos inteligentes.
La propuesta describe la adición de dos nuevas opcodes:
Esto logra muchos de los mismos casos de uso que EIP-4337 sin requerir que cada usuario implemente un nuevo contrato inteligente. Una diferencia clave es que las transacciones se originan desde el EOA del usuario, en lugar de desde un nuevo contrato que carece del historial de la cuenta del usuario, ETH, NFT, tokens, etc.
Una reacción común a EIP-3074 es: "¿Qué sucede si alguien crea un contrato malicioso y el usuario delega en él?" Después de todo, delegar en un contrato malicioso podría resultar en que todos los activos criptográficos en la billetera del usuario se agoten.
La solución a este problema es que los proveedores de servicios de billeteras restrinjan a los usuarios de autorizar cualquier contrato indiscriminadamente. Podrían mantener una lista blanca de contratos inteligentes a los que los usuarios pueden delegar autoridad, asegurando que cualquier contrato fuera de esta lista no se presente a los usuarios para su autorización.
Un punto crucial sobre la delegación en EIP-3074 es que no es permanente. La delegación de un EOA se invalida con una sola transacción, que incrementa el nonce, anulando cualquier autorización pendiente.
En esencia, después de que un usuario realice una nueva transacción, la delegación ya no será válida.
De hecho, no queremos otorgar más poder a las EOAs. Después de todo, el objetivo de estas propuestas es hacer la transición de los usuarios de las EOAs a las cuentas de contratos inteligentes. Entonces, ¿por qué añadir funcionalidad a las EOAs?
Esto nos lleva amablemente a nuestra próxima propuesta: EIP-5003. EIP-5003 introduce otro opcode, “AUTHUSURP,” que implementa código en la dirección de autorización EIP-3074.
La diferencia entre EIP-3074 y EIP-5003 es que:
EIP-3074 es una delegación temporal a contratos inteligentes, revocable.
EIP-5003 es una migración permanente de EOAs y una "conversión" de EOAs a cuentas de contratos inteligentes.
Un problema importante con EIP-3074 + EIP-5003 es su incompatibilidad con el esquema actual de abstracción de cuentas a través de EIP-4337. Algunos miembros de la comunidad de Ethereum están preocupados de que podamos "crear dos ecosistemas de código separados" con estos dos tipos de abstracciones de cuentas.
Esto nos lleva a la propuesta de Vitalik Buterin de hoy: EIP-7702. Propone modificar EIP-3074 para que sea más conciso y compatible con EIP-4337, para que no terminemos con dos ecosistemas de abstracción de cuentas separados. Se considera que EIP-5003 es el siguiente paso para la migración permanente.
EIP-7702 introduce un nuevo tipo de transacción que acepta tanto los campos contract_code como firma. Al ejecutar la transacción, establece el código de contrato de la cuenta del firmante en contract_code. Al final de la transacción, restablece el código a vacío.
Similar to EIP-3074, this achieves temporary delegation of EOAs to smart contracts. However, EIP-7702 does not introduce new opcodes (which would require a hard fork) but rather defines functions to be called:
AUTH -> llama "verificar"
AUTHCALL -> llama "ejecutar"
Específicamente, se trata de:
Verifica si el código del contrato de tu cuenta está vacío.
Si está vacío, establece el código de contrato proporcionado.
Ejecuta la transacción según cómo el contrato inteligente proporcionado maneja las transacciones.
Restaura el código de contrato de la cuenta a vacío.
El "código de contrato" es literal; es donde se almacena el código de un contrato inteligente. Dado que un EOA en sí mismo no es un contrato, este campo suele estar vacío. Sin embargo, la brillantez de EIP-7702 es que temporalmente rellena este campo con algo de código de contrato inteligente durante la ejecución de la transacción.
Esta es una forma de proporcionar un nuevo comportamiento (en forma de código) para que su EOA ejecute esta transacción específica. El siguiente paso es convertirlo en un cambio de comportamiento permanente simplemente eligiendo "no establecer el código en vacío después de que termine la transacción".
Uno de los mejores aspectos de esta propuesta es su alta compatibilidad con todo el trabajo de abstracción de cuentas realizado hasta ahora para EIP-4337. 'El código del contrato que los usuarios necesitan firmar puede ser en realidad el código de billetera existente de EIP-4337'.
Una vez que este cambio entre en vigor, las EOAs existentes de los usuarios pueden ejecutar cualquier código de contrato inteligente. A través de EIPs adicionales, las EOAs también pueden actualizarse permanentemente para ejecutar un código específico.
Con el tiempo, esto podría cambiar fundamentalmente la forma en que todos interactuamos con las aplicaciones Web3.
Este artículo es reproducido de [panews] el título original “Explorando la propuesta EIP-7702: ¿la prescripción definitiva de Vitalik para el problema de la abstracción de cuentas?”, los derechos de autor pertenecen al autor original [Foresight News], si tiene alguna objeción al reimpresión, por favor contacteEquipo de Aprendizaje de Gate, el equipo lo manejará tan pronto como sea posible de acuerdo a los procedimientos relevantes.
Aviso legal: Las opiniones expresadas en este artículo representan únicamente las opiniones personales del autor y no constituyen ningún consejo de inversión.
Otras versiones del artículo en otros idiomas son traducidas por el equipo de Gate Learn, no mencionadas en Gate.io, el artículo traducido no puede ser reproducido, distribuido o plagiado.
Vitalik Buterin propuso recientemente EIP-7702, que podría ser uno de los cambios más impactantes en la historia de Ethereum. Este artículo presentará el funcionamiento de esta nueva propuesta y todo lo necesario para entender su implementación.
En primer lugar, la propuesta EIP-7702 es sorprendentemente breve, lo que ha dejado a algunas personas desconcertadas sobre su funcionamiento. Para entender EIP-7702, necesitamos echar un vistazo a otras tres propuestas mencionadas en ella:
EIP-4337
EIP-3074
EIP-5003
Comencemos con el objetivo común de estas propuestas: la "abstracción de cuentas." En Ethereum, las EOAs (cuentas "ordinarias") tienen desventajas significativas: son muy arriesgadas y tienen funcionalidades muy limitadas. La abstracción de cuentas permite a los usuarios utilizar contratos inteligentes como cuentas, agregando más funcionalidad y seguridad para abordar estos problemas.
EIP-4337 se lanzó en la mainnet en marzo de 2023. Permite que los contratos inteligentes se escriban como cuentas para que puedan verificar y ejecutar transacciones, mejorando muchas experiencias de usuario (UX).
Desde su lanzamiento, EIP-4337 ha sido ampliamente adoptado, principalmente liderado por Polygon, con una mayor actividad de Base en los últimos meses.
Las últimas innovaciones relacionadas con EIP-4337 provienen del ecosistema de Coinbase y la Cartera Inteligente de Coinbase. Esta cartera se basa en tecnología biométrica, brindando una excelente experiencia de usuario. El fin de semana pasado, creé otra demostración pequeña en ETH Global Sydney para mostrar esto.
Entonces, ¿qué problemas tiene EIP-4337? ¿Por qué hay otra propuesta de abstracción de cuentas hoy? Porque las EOAs siguen siendo, con mucho, el tipo de cuenta más ampliamente utilizado.
Además, la mayoría de las cuentas de contrato inteligente EIP-4337 están controladas por un único firmante EOA. Aquí hay un ejemplo de fragmento de código:
Debido a que no es posible "convertir" el EOA de un usuario en una cuenta de contrato inteligente, existe esta extraña solución provisional. Esto se debe principalmente a la falta de soporte nativo en las aplicaciones Web3 para conectar cuentas de contratos inteligentes. Hoy en día, la mayoría de las personas todavía usan EOA a través de billeteras de complementos como MetaMask.
Esto nos lleva a nuestra próxima propuesta: EIP-3074.
De hecho, esta propuesta fue introducida antes de EIP-4337, pero aún no ha sido fusionada en la red principal. EIP-3074 intenta empoderar a las EOAs al permitirles delegar el control de sus EOAs a contratos inteligentes.
La propuesta describe la adición de dos nuevas opcodes:
Esto logra muchos de los mismos casos de uso que EIP-4337 sin requerir que cada usuario implemente un nuevo contrato inteligente. Una diferencia clave es que las transacciones se originan desde el EOA del usuario, en lugar de desde un nuevo contrato que carece del historial de la cuenta del usuario, ETH, NFT, tokens, etc.
Una reacción común a EIP-3074 es: "¿Qué sucede si alguien crea un contrato malicioso y el usuario delega en él?" Después de todo, delegar en un contrato malicioso podría resultar en que todos los activos criptográficos en la billetera del usuario se agoten.
La solución a este problema es que los proveedores de servicios de billeteras restrinjan a los usuarios de autorizar cualquier contrato indiscriminadamente. Podrían mantener una lista blanca de contratos inteligentes a los que los usuarios pueden delegar autoridad, asegurando que cualquier contrato fuera de esta lista no se presente a los usuarios para su autorización.
Un punto crucial sobre la delegación en EIP-3074 es que no es permanente. La delegación de un EOA se invalida con una sola transacción, que incrementa el nonce, anulando cualquier autorización pendiente.
En esencia, después de que un usuario realice una nueva transacción, la delegación ya no será válida.
De hecho, no queremos otorgar más poder a las EOAs. Después de todo, el objetivo de estas propuestas es hacer la transición de los usuarios de las EOAs a las cuentas de contratos inteligentes. Entonces, ¿por qué añadir funcionalidad a las EOAs?
Esto nos lleva amablemente a nuestra próxima propuesta: EIP-5003. EIP-5003 introduce otro opcode, “AUTHUSURP,” que implementa código en la dirección de autorización EIP-3074.
La diferencia entre EIP-3074 y EIP-5003 es que:
EIP-3074 es una delegación temporal a contratos inteligentes, revocable.
EIP-5003 es una migración permanente de EOAs y una "conversión" de EOAs a cuentas de contratos inteligentes.
Un problema importante con EIP-3074 + EIP-5003 es su incompatibilidad con el esquema actual de abstracción de cuentas a través de EIP-4337. Algunos miembros de la comunidad de Ethereum están preocupados de que podamos "crear dos ecosistemas de código separados" con estos dos tipos de abstracciones de cuentas.
Esto nos lleva a la propuesta de Vitalik Buterin de hoy: EIP-7702. Propone modificar EIP-3074 para que sea más conciso y compatible con EIP-4337, para que no terminemos con dos ecosistemas de abstracción de cuentas separados. Se considera que EIP-5003 es el siguiente paso para la migración permanente.
EIP-7702 introduce un nuevo tipo de transacción que acepta tanto los campos contract_code como firma. Al ejecutar la transacción, establece el código de contrato de la cuenta del firmante en contract_code. Al final de la transacción, restablece el código a vacío.
Similar to EIP-3074, this achieves temporary delegation of EOAs to smart contracts. However, EIP-7702 does not introduce new opcodes (which would require a hard fork) but rather defines functions to be called:
AUTH -> llama "verificar"
AUTHCALL -> llama "ejecutar"
Específicamente, se trata de:
Verifica si el código del contrato de tu cuenta está vacío.
Si está vacío, establece el código de contrato proporcionado.
Ejecuta la transacción según cómo el contrato inteligente proporcionado maneja las transacciones.
Restaura el código de contrato de la cuenta a vacío.
El "código de contrato" es literal; es donde se almacena el código de un contrato inteligente. Dado que un EOA en sí mismo no es un contrato, este campo suele estar vacío. Sin embargo, la brillantez de EIP-7702 es que temporalmente rellena este campo con algo de código de contrato inteligente durante la ejecución de la transacción.
Esta es una forma de proporcionar un nuevo comportamiento (en forma de código) para que su EOA ejecute esta transacción específica. El siguiente paso es convertirlo en un cambio de comportamiento permanente simplemente eligiendo "no establecer el código en vacío después de que termine la transacción".
Uno de los mejores aspectos de esta propuesta es su alta compatibilidad con todo el trabajo de abstracción de cuentas realizado hasta ahora para EIP-4337. 'El código del contrato que los usuarios necesitan firmar puede ser en realidad el código de billetera existente de EIP-4337'.
Una vez que este cambio entre en vigor, las EOAs existentes de los usuarios pueden ejecutar cualquier código de contrato inteligente. A través de EIPs adicionales, las EOAs también pueden actualizarse permanentemente para ejecutar un código específico.
Con el tiempo, esto podría cambiar fundamentalmente la forma en que todos interactuamos con las aplicaciones Web3.
Este artículo es reproducido de [panews] el título original “Explorando la propuesta EIP-7702: ¿la prescripción definitiva de Vitalik para el problema de la abstracción de cuentas?”, los derechos de autor pertenecen al autor original [Foresight News], si tiene alguna objeción al reimpresión, por favor contacteEquipo de Aprendizaje de Gate, el equipo lo manejará tan pronto como sea posible de acuerdo a los procedimientos relevantes.
Aviso legal: Las opiniones expresadas en este artículo representan únicamente las opiniones personales del autor y no constituyen ningún consejo de inversión.
Otras versiones del artículo en otros idiomas son traducidas por el equipo de Gate Learn, no mencionadas en Gate.io, el artículo traducido no puede ser reproducido, distribuido o plagiado.