Saltar al contenido
0%

¿Cómo funcionan las smart contract wallets ERC-4337?

Brady Werkheiser headshot

Escrito por Brady Werkheiser

Publicado el 5 de febrero de 20245 min de lectura

Las billeteras de contrato inteligente que usan Account Abstraction (ERC-4337) crean una billetera que se gestiona mediante un contrato inteligente, en lugar de una billetera gestionada por una sola clave privada como las billeteras EOA (Externally Owned Address).

La naturaleza programable de las billeteras de contrato inteligente permite el desarrollo de una amplia variedad de nuevos casos de uso. Al reducir la complejidad sin comprometer la seguridad ni el anonimato, las billeteras de contrato inteligente ayudarán a facilitar la incorporación de la próxima ola de usuarios de blockchain.

¿Quieres agregar billeteras de contrato inteligente embebidas a tu aplicación? Usa nuestras Embedded Accounts de nivel empresarial y nuestra infraestructura de AA verticalmente integrada para incorporar usuarios sin frases semilla, sin gas y sin fricción.

¿Qué son las billeteras de contrato inteligente?

Las billeteras de contrato inteligente almacenan y gestionan activos digitales (por ejemplo, criptomonedas, NFTs, etc.) mediante contratos inteligentes. Las billeteras de contrato inteligente son la base de la abstracción de cuentas: el proceso de unificar los distintos tipos de cuenta de Ethereum en un solo tipo, "abstrayendo" el control de una cuenta de la red y definiéndolo mediante un contrato inteligente.

Algunos ejemplos de billeteras de contrato inteligente que usan ERC-4337:

  1. Soul Wallet
  2. Candide
  3. UniPass
  4. Castle
  5. Openfort

Dos billeteras de contrato inteligente principales que no usan ERC-4337 son Safe y Argent.

¿Qué son las cuentas de contrato (cas)?

También conocidas como contratos inteligentes, las cuentas de contrato contienen código que gestiona el intercambio de información entre partes. Las cuentas de contrato se usan en todos los protocolos DeFi, colecciones de NFT o tokens ERC-20.

Toda la lógica de negocio del contrato y sus variables de estado se almacenan on-chain. Debido a que el estado y el código de un contrato inteligente se almacenan on-chain, la cuenta de propiedad externa que lo despliega debe pagar una tarifa.

Nota: En la programación web3, existe un patrón de "fábrica de contratos inteligentes", donde un contrato puede desplegar otros contratos mediante una interfaz predefinida. Incluso en este caso, la transacción que lo origina debe provenir de una EOA y ser pagada por ella.

¿En qué se diferencia el funcionamiento de las cuentas de contrato respecto a las cuentas de propiedad externa (eoas)?

La principal diferencia entre las cuentas de contrato inteligente y las cuentas EOA es que las cuentas de contrato inteligente pueden contener lógica. Debido a que solo las cuentas EOA pueden iniciar transacciones, las cuentas de contrato inteligente dependen de la cuenta EOA de los Bundlers para agrupar las operaciones de usuario en una sola transacción que se publica en la blockchain.

Bajo el protocolo actual de Ethereum, las EOA son el único tipo de cuenta que puede iniciar una transacción, ya sea una llamada a un contrato o una transferencia de valor. Incluso en el caso de que una cuenta de contrato llame a otra cuenta de contrato, el origen de la transacción siempre proviene de una cuenta de propiedad externa.

A continuación, una comparación entre las cuentas de contrato y las cuentas EOA:

EOA
CONTRACTS

Controlled by a human, through a private key

No private key. Governed by its own code

Can initiate transactions

Can never be the origin of a transaction initiation

Does not contain code

Contains code and state, stored in storage

Created offchain for free

Created onchain for a cost, incurred by the deployer

Entonces, ¿cómo ejecutan transacciones las billeteras de contrato inteligente si no pueden iniciarlas por sí mismas?

Cómo funcionan las billeteras de contrato inteligente ERC-4337

Debido a que las billeteras de contrato inteligente no pueden iniciar una transacción, deben ser llamadas por una billetera EOA. Este proceso es respaldado por múltiples proveedores de infraestructura de Account Abstraction (por ejemplo, Bundlers) y contratos inteligentes (por ejemplo, EntryPoint).

El flujo típico de una transacción de billetera de contrato inteligente es:

  1. Un usuario quiere ejecutar una UserOperation
  2. Las UserOperations se envían a un "mempool alternativo"
  3. Un Bundler con una billetera EOA agrupa y envía todas las UserOperations al contrato EntryPoint
  4. El contrato EntryPoint valida y ejecuta todas las UserOperations
  5. A la billetera EOA que agrupó las UserOperations se le reembolsa el ETH que gastó en nombre de los usuarios, ya sea por las billeteras de los usuarios o por el Paymaster
Diagrama que muestra cómo se agrupan, validan y ejecutan las UserOps.
Diagrama que muestra cómo se agrupan, validan y ejecutan las UserOps.

Si bien entender el funcionamiento técnico de las billeteras de contrato inteligente puede resultar difícil, para los usuarios finales las billeteras de contrato inteligente ofrecen muchas mejoras respecto a las billeteras EOA, como la programabilidad y la posibilidad de contar con funciones como la recuperación social.

Recursos adicionales para aprender cómo funcionan las billeteras de contrato inteligente

Para más información sobre cómo funciona cada componente de Account Abstraction, lee nuestra serie "You Could Have Invented Account Abstraction", escrita por David Philipson, del equipo de ingeniería de infraestructura de Account Abstraction de Alchemy.

  1. UserOps, Bundlers, and the EntryPoint Contract
  2. Sponsoring Gas Using Paymasters
  3. Aggregating Signatures

Preguntas frecuentes

¿Qué son las billeteras de contrato inteligente?

Las billeteras de contrato inteligente almacenan y gestionan activos digitales como criptomonedas y NFTs mediante contratos inteligentes en lugar de una sola clave privada, y sirven como base de la abstracción de cuentas.

¿Cómo funcionan las billeteras de contrato inteligente ERC-4337?

Las billeteras ERC-4337 usan un flujo en el que los usuarios crean UserOperations, las envían a un mempool alternativo, los bundlers las recopilan y las envían al contrato EntryPoint para su validación y ejecución, y luego reciben el reembolso de las billeteras o los Paymasters.

¿Cuál es la diferencia entre las cuentas de contrato inteligente y las cuentas EOA?

Las cuentas de contrato inteligente contienen lógica programable pero no pueden iniciar transacciones por sí mismas, mientras que las cuentas EOA pueden iniciar transacciones pero carecen de funciones programables.

¿Qué son las UserOperations?

Las UserOperations son solicitudes de transacción creadas por los usuarios que se envían a un mempool alternativo, donde los bundlers las recopilan para procesarlas mediante el contrato EntryPoint.

¿Cuál es el rol de los bundlers en ERC-4337?

Los bundlers son nodos con billeteras EOA que recopilan UserOperations del mempool alternativo, las agrupan y las envían al contrato EntryPoint para su validación y ejecución.

¿Qué es el contrato EntryPoint?

El contrato EntryPoint es el contrato inteligente on-chain que valida y ejecuta las UserOperations agrupadas enviadas por los bundlers.

¿Las billeteras de contrato inteligente requieren tarifas de gas?

Las billeteras de contrato inteligente pueden usar Paymasters para patrocinar las tarifas de gas, lo que permite transacciones sin gas donde los usuarios no necesitan pagarlo directamente.

¿Puedes dar ejemplos de billeteras de contrato inteligente ERC-4337?

Algunos ejemplos son Soul Wallet, Candide, UniPass, Castle y Openfort, mientras que Safe y Argent son billeteras de contrato inteligente que no usan ERC-4337.

Background gradient

Construye magia blockchain

Alchemy combina los productos y herramientas de desarrollo Web3 más potentes con recursos, comunidad y un soporte legendario.