Abstracción de Cuenta
Los usuarios interactúan con Ethereum usando . Esta es la única forma de empezar una transacción o generar un contrato inteligente. Esto limita cómo los usuarios pueden interactuar con Ethereum. Por ejemplo, dificulta la creación de transacciones en lote y requiere que los usuarios siempre mantengan un saldo en ETH para costear el gas.
La abstracción de cuentas es una forma de rosolver estos problemas, que permite a los usuarios programar flexiblemente con mayor seguridad y mejores experiencias de usuario en sus cuentas. Esto puede suceder actualizando las cuentas de propiedad externa (o EOA)(opens in a new tab) para que puedan ser controladas por contratos inteligentes, o por la actualización de los contratos inteligentes(opens in a new tab) para que puedan iniciar transacciones. Ambas opciones requieren cambios en el protocolo de Ethereum. Existe también una tercera vía que implica añadir un segundo sistema de transacciones independiente(opens in a new tab) para ejecutarlo en paralelo con el protocolo existente. De cualquier forma, el resultado será acceder a Ethereum con carteras de contrato inteligente, ya sea de forma nativa como parte del protocolo existente o por una red de transacciones complementaria.
Las billeteras de contrato inteligente desbloquean múltiples beneficios para los usuarios, incluyendo:
- Definir reglas propias de seguridad flexibles.
- Recuperar su cuenta si se pierden las claves.
- Compartir la seguridad de su cuenta entre dispositivos y personas de confianza.
- pagar por el gas de alguien más, o que alguien pague el suyo
- Hacer transacciones en lote (p. ej., aprobar y ejecutar un intercambio de una vez).
- Más oportunidades de que DApps y desarrolladores de carteras innoven en las experiencias de usuario.
Estos beneficios no son respaldados nativamente hoy, porque solo las cuentas de propiedad externa () pueden empezar transacciones. Las EOAs son simplemente pares de claves público-privadas. Funcionan de la siguiente forma:
- Si tiene la clave privada, puede hacer lo que quiera siempre respetando el marco normativo de la Máquina Virtual de Ethereum (EVM).
- Si no tiene la clave privada, no puede hacer nada.
Si pierde sus claves, no pueden recuperarse y las claves robadas dan a los ladrones acceso instantáneo a todos los fondos de una cuenta.
Las carteras de contrato inteligente son la solución a este problema, aunque hoy en día es difícil programarlas, porque al fin y al cabo cualquier lógica implementada tendrá que trasladarse a un conjunto de transacciones EOA antes de que Ethereum las procese. La abstracción de cuenta permite que los contratos inteligentes inicien transacciones por sí solos, para que cualquier lógica que el usuario desee implementar pueda codificarse dentro de la misma cartera de contrato inteligente y ejecutarse en Ethereum.
En última instancia, la abstracción de la cuenta respalda a las carteras de contrato inteligente, simplificando su construir y protegiendo su uso. Con la abstracción de cuenta, los usuarios pueden disfrutar de todos los beneficios de Ethereum sin tener que conocer ni preocuparse por los detalles tecnológicos.
Más allá de las fases semilla
Las cuentas de la actualidad son seguras porque usan claves privadas que son calculadas a partir de fases semilla. Cualquier persona que tenga acceso a una fase semilla puede fácilmente descubrir la clave privada que protege una cuenta y acceder a todos los activos que protege. Si se pierden una clave privada y una frase semilla, nunca podrá recuperarlas y los activos que controlaban se congelarán para siempre. Es complejo proteger estas frases semilla, incluso para los usuarios más expertos; la estafa de la frase semilla es una de las formas más comunes de fraude electrónico.
La abstracción de cuenta solucionará este problema al usar un contrato inteligente para retener los activos y autorizar transacciones. Estos contratos inteligentes pueden entonces decorarse con lógica personalizada para hacerlos todo lo seguros y adaptados al usuario que sea posible. A fin de cuentas, igual usará claves privadas para controlar el acceso a su cuenta, pero con redes de seguridad que la simplifiquen y la vuelvan más seguras de gestionar.
Por ejemplo, se pueden añadir claves de copia de seguridad a la cartera por si las pierde o accidentalmente expone su clave principal. Llegado el caso, podría reemplazarlas por una clave nueva y segura, con el permiso de las claves de copa de seguridad. Podrá asegurar ambas claves de diferentes formas, o confiarlas a diferentes garantes de confianza. Lo cual dificultará que un ladrón obtenga acceso completo a sus fondos. Del mismo modo, puede agregar reglas a la billetera para reducir el impacto si su clave principal se ve comprometida, por ejemplo, puede permitir que las transacciones de bajo valor se verifiquen mediante una sola firma, mientras que las transacciones de mayor valor requieran la aprobación de múltiples firmantes autenticados. Hay otras formas en que las billeteras de contratos inteligentes también pueden ayudarle a frustrar a los ladrones, por ejemplo, se puede utilizar una lista de permisos para bloquear cada transacción, a menos que sea a una dirección de confianza o verificada por varias de sus claves preaprobadas.
Ejemplos de seguridad lógica que puede construirse en una billetera de contrato inteligente:
- Autorización multifirma: puede compartir credenciales de autorización entre múltiples personas o dispositivos de confianza. Posteriormente, puede configurarse el contrato para que las transacciones de más de un valor predeterminado requieran la autorización de cierta proporción (p. ej., 3/5) de las partes de confianza. Por ejemplo, las transacciones de alto valor podrían requerir la aprobación tanto de un dispositivo móvil como de una cartera de hardware, o las firmas de cuentas distribuidas a familiares de confianza.
- Congelación de cuenta: si se pierde un dispositivo o está expuesto, la cuenta puede bloquearse desde otro dispositivo autorizado, protegiendo así los activos del usuario.
- Recuperación de la cuenta: ¿Ha perdido un dispositivo u olvidado una contraseña? En la actualidad, esto significa que sus activos podrían congelarse para siempre. Con una billetera de contrato inteligente, puede configurar una lista de cuentas que puedan autorizar nuevos dispositivos y restablecer el acceso.
- Establecer limites de transacción: especificar umbrales diarios dependiendo de cuánto valor se pueda transferir desde la cuenta en un día/mes/año. Esto significa que si un intruso acede a su cuenta, no podrá sacar todo de una vez y usted tendrá ocasiones de congelar y restablecer el acceso.
- Crear listas de permisos: Solo permita transacciones a ciertas direcciones que sepa que son seguras. Esto significa que incluso si su clave privada fue robada, el atacante solo podría enviar fondos a las cuentas de destino de su lista. Estas listas de permisos o cuentas permitidas requerirían varias firmas para cambiarlas, de modo que un atacante no pueda agregar su propia dirección a la lista, a menos que tuviera acceso a varias de sus claves con copia de seguridad.
Mejor experiencia de usuario
La abstracción de cuenta permite una mejor experiencia global de usuario así como una seguridad mejorada, porque añade la compatibilidad con carteras de contrato inteligente dentro del protocolo. La razón más importante de esto es que proveerá a desarrolladores de contratos inteligentes, billeteras y aplicaciones, mayor libertad para innovar en la experiencia de usuario en formas que aún no logramos anticipar. Algunas mejoras obvias que traerá la abstracción de cuenta incluyen la agrupación de transacciones para aumentar la velocidad y la eficiencia. Por ejemplo, un simple intercambio debería ser una operación de un solo clic, pero hoy en día requiere firmar varias transacciones para aprobar el gasto de tokens individuales antes de que se ejecute el intercambio. La abstracción de cuenta elimina esa fricción al permitir las transacciones agrupadas. Además, las transacciones agrupadas podrían aprobar el valor exacto de los tókenes requeridos para cada transacción y anular las aprobaciones una vez completada la transacción, proporcionando seguridad adicional.
La gestión del gas también se mejora mucho con la abstracción de cuenta. Las aplicaciones, no solo pueden ofrecer el pago de las tarifas de gas de sus usuarios, las tarifas de gas también pueden pagarse con otros tókenes además de ETH, lo que libera a los usuarios de tener que mantener un balance de ETH para transacciones de fondos. Esto funcionaría intercambiando los tókenes de los usuarios por ETH dentro del contrato y luego usando ETH para pagar el gas.
Las sesiones de confianza también pueden transformar potencialmente la experiencia del usuario, especialmente para aplicaciones como juegos, donde se necesitan aprobar grandes cantidades de transacciones pequeñas en poco tiempo. La aprobación individual de cada transacción rompería la experiencia de juego, pero la aprobación permanente es insegura. Una billetera de contrato inteligente podría aprobar ciertas transacciones por un tiempo fijo, hasta valores específicos o solo para ciertas direcciones.
También es interesante considerar cómo las compras podrían cambiar con la abstracción de cuenta. Hoy, cada transacción debe aprobarse y ejecutarse desde una cartera prefinanciada con la cantidad suficiente de tókenes correctos. Con la abstracción de cuenta, la experiencia podría ser más parecida a la compra familiar en línea, donde un usuario podría llenar una «cesta» con artículos de un toque para comprarlo todo, con toda la lógica requerida cubierta por el contrato, no por el usuario.
Estos son solo algunos ejemplos de cómo las experiencias de usuario podrían pasar al siguiente nivel con la abstracción de cuenta, pero habrá muchos más que todavía no hemos imaginado. La abstracción de cuenta libera a los desarrolladores de las limitaciones de los EOA actuales, permitiéndoles aprovechar las ventajas de web2 a web3 sin sacrificar la custodia propia y además piratear creativamente nuevas experiencias de usuario.
¿Cómo se implementará la abstracción de cuenta?
Las carteras de contrato inteligente existen actualmente, pero es un desafío implementarlas debido a que la EVM no las admite. En cambio, se basan en proteger un código relativamente complejo con transacciones estándar de Ethereum. Ethereum puede cambiar esto al permitir que contratos inteligentes inicien transacciones, controlando la lógica necesaria en los contratos inteligentes de Ethereum en vez de fuera de la cadena. Al colocar la lógica en los contratos inteligentes se aumenta la descentralización de Ethereum, ya que elimina la necesidad de «repetidores» ejecutados por desarrolladores de carteras para traducir mensajes firmados por el usuario de transacciones regulares de Ethereum.
Progreso actual
Las billeteras de contrato inteligente ya están disponibles, pero existen más actualizaciones necesarias para hacerlas todo lo descentralizadas y sin permisos como sea posible. El EIP-4337 es una propuesta madura que no requiere ningún cambio en el protocolo de Ethereum, así que es posible que se pueda implementar prontamente. Sin embargo, las actualizaciones que alteran el protocolo de Ethereum no se encuentran en desarrollo activo en este momento, por lo que esos cambios pueden llevar bastante tiempo en enviarse. También es posible que la abstracción de cuenta se realice de forma suficientemente buena con el EIP-4337 y así no se requieran cambios de protocolo.
Más información
- erc4337.io(opens in a new tab)
- Panel de debate sobre la abstracción de cuenta en Devcon, Bogotá(opens in a new tab)
- «¿Por qué la abstracción de cuenta es un punto de inflexión para DApps?» Devcon, Bogotá(opens in a new tab)
- «ELI5 La abstracción de cuenta» en Devcon, Bogotá(opens in a new tab)
- Notas de Vitalik «El camino a la abstracción de cuenta»(opens in a new tab)
- Publicación de blog de Vitalik sobre carteras de recuperación social(opens in a new tab)
- Notas de EIP-2938(opens in a new tab)
- Documentación de EIP-2938(opens in a new tab)
- Notas de EIP-4337(opens in a new tab)
- Documentación de EIP-4337(opens in a new tab)
- Documentación de EIP-2771(opens in a new tab)
- «Aspectos básicos de la abstracción de cuenta»: ¿Qué es abstracción de cuenta? Parte I(opens in a new tab)