005 - Abstracción de cuentas: el Santo Grial de la adopción
La Abstracción de Cuenta transforma el actual sistema de cuenta todo-en-uno de las criptomonedas, en el que un pequeño error puede resultar en la pérdida de todo, a un futuro en el que las cuentas pueden ser personalizadas para satisfacer las necesidades de los usuarios individuales. Permite la creación de una red de seguridad para la autocustodia y proporciona una experiencia de usuario mucho más suave.
Cuentas de Ethereum
Para apreciar la importancia de la abstracción de cuenta, es crucial comprender los conceptos básicos de las cuentas de Ethereum. Hay dos tipos de cuentas en Ethereum:
Cuentas de Propiedad Externa (EOA) y Cuentas de Contrato (CA).
Las cuentas de Ethereum de propiedad externa no cuestan nada para crearlas, pues no están asociadas con el almacenamiento de datos o código.
Una EOA consta de un par de claves pública y privada y se representa por una dirección generada a partir de la configuración de las claves. La clave privada se utiliza para firmar transacciones y da al usuario control sobre sus fondos, pero tiene limitaciones. Si se le pierde o le roban la clave privada, la cuenta se pierde permanentemente.
¡El problema!
Debido a que su clave privada es su cuenta, perderla significa perder su cuenta, y si alguien más la tiene, pues tienen control sobre su cuenta y todos los tokens que contiene. La Abstracción de Cuenta desacopla el objeto que mantiene sus tokens (la cuenta) del objeto autorizado para mover estos tokens (el firmante) convirtiendo las cuentas en contratos inteligentes con su propia lógica para definir una transacción válida.
Esto permite la personalización y la versatilidad, como el uso de diferentes esquemas de firma, múltiples claves para autorizar transacciones o cambiar de firmante.
Monederos inteligentes y Abstracción de Cuenta
La mayoría de los monederos en Ethereum son cuentas de propiedad externa, como MetaMask, y no se pueden programar para mejorar la seguridad o la experiencia del usuario. Los monederos de contratos inteligentes, por otro lado, se pueden programar con código personalizado para autorizar transacciones y ofrecer experiencias que no son posibles con las EOAs nativas. Con la Abstracción de Cuenta, Ethereum se mueve de dos tipos de cuentas (EOAs y CAs) a solo una, Cuentas de Contrato, que se pueden personalizar para satisfacer las necesidades de los usuarios individuales.
Esto hace que la validación sea programable, veamos algunos casos de uso:
Multicall
Con el sistema actual de Ethereum, hacer una nueva transacción por cada interacción en la cadena puede ser tedioso y costoso cuando las tarifas de gas son altas. La Abstracción de Cuenta introduce multicall, que permite agrupar múltiples transacciones en una y ejecutarlas en una sola transacción atómica, haciéndolo más rápido, fácil y seguro.
Session keys
La Abstracción de Cuenta posibilita las session keys, lo que permite el uso de Dapps con la seguridad de que los activos están protegidos por restricciones sobre lo que el Dapp puede y no puede hacer con ellos. Esto maximiza la facilidad de uso mientras se minimiza el riesgo.
Cuentas delegables: pagos automáticos
Visa está desarrollando soluciones de pago automático que utilizan AA para crear un contrato de cuenta delegable. Esto amplía las reglas de validez programables para transacciones con una lista de permitidos preaprobada, lo que permite a Visa delegar la cuenta del usuario para iniciar un pago automático a un contrato inteligente de pago automático preaprobado.
Primero, un comerciante implementa un contrato inteligente de pago automático. Cuando un usuario con una cuenta delegable visita el sitio web del comerciante, verá una solicitud para aprobar los pagos automáticos, similar a la aceptación de Visa para los emisores de facturas en la actualidad.
Aquí, el usuario puede ver las acciones que hará el contrato de pago automático en el nombre del usuario. Por ejemplo, solo puede cobrar al usuario una vez al mes, o no puede cobrar más de una cantidad máxima.
De manera crucial, debido a que se trata de un contrato inteligente, un usuario puede estar seguro de que el contrato de pago automático no puede ejecutarse de otra manera que no sea como está escrito.
Si el usuario acepta aprobar los pagos automáticos, la billetera agregará la dirección del contrato de pago automático a la lista de contratos permitidos en la cuenta delegable del usuario.
Configuración de cuenta delegable
El sitio web del comerciante solicita la aprobación de la lista de pagos automáticos y el usuario la agrega al contrato inteligente de la cuenta delegable. La imagen muestra las condiciones necesarias para que el contrato inteligente de pago automático realice la transacción.
A continuación, el comerciante activa un pago llamando a la función de cargo del contrato de pago automático. Esto lleva a que la cuenta del usuario realice un pago automático válido, ya que está en la lista de permitidos del usuario. El token lo ve como un pago push estándar.
Tanto StarkNet como ZkSync soportarían Abstracción de Cuentas de forma nativa. Sin embargo, el 01 de marzo de 2023, en WalletCon se anunció que Ethereum ya lo ha implementado en mainnet.
Lo interesante: no requirió un cambio de nivel de protocolo, tampoco erc20 o erc721. En su lugar, presenta un nuevo mempool ligeramente diferente.
Dato adicional, la compañia Stack Up fue la primera en crear un paquete totalmente compatible. Ahora se puede acceder a su servicio de nodo gratuito en Ethereum y Polygon. Su servicio de pago también está activo.
Parece ser que este era el eslabón que faltaba para brinda una mejor experiencia al usuario.