Para gestionar activos digitales, es necesario distinguir entre la propiedad y el acceso autorizado. En el caso de los tokens ERC-20, estos conceptos corresponden a tu saldo y a tu asignación. El saldo indica la cantidad de tokens registrada para tu cartera. La asignación representa un permiso independiente que concedes a un gastador designado para que mueva en tu nombre una cantidad específica de esos tokens.
Los contratos inteligentes pueden exigir permiso para usar tus activos mediante una autorización. Ejecutar una transacción de autorización no transfiere tokens fuera de tu cartera. En cambio, modifica el contrato del token para establecer o cambiar una asignación, que indica al gastador autorizado cuántos tokens puede utilizar. Una autorización es distinta de una transferencia, que sí mueve los activos.
Una vez establecida una asignación, el gastador autorizado puede iniciar movimientos de activos mediante un mecanismo llamado transferFrom. El contrato del token comprueba el saldo y la asignación correspondientes antes de procesar la transacción. La cantidad solicitada no debe superar el saldo disponible de la cartera ni el límite de la asignación autorizada. Si alguno de esos límites es insuficiente, el intento de movimiento falla.
Cada autorización se aplica a un contrato de token y a un gastador específicos. Autorizar una asignación para un activo ERC-20 no permite acceder a otros tokens registrados por otros contratos de tokens en la misma cartera. No se trata de una autorización general para toda una cartera de activos. Las autorizaciones tampoco se aplican a las monedas nativas de la cadena de bloques.
Supervisar el saldo de una cartera no permite saber qué gastadores tienen permiso para mover tokens. Como una autorización modifica los datos de permisos en lugar de cambiar de inmediato el saldo de tokens, una cartera puede mantener el saldo registrado aunque un gastador conserve autoridad sin usar para transferir tokens. Por lo tanto, el saldo por sí solo no describe los permisos de los gastadores. Para identificar las asignaciones, es necesario examinar los datos del contrato de token correspondiente.
Una asignación puede cambiarse enviando una nueva autorización para el contrato de token y el gastador correspondientes. Establecer la asignación en cero impide que ese gastador utilice la asignación para realizar movimientos de tokens posteriores, sujeto al comportamiento del contrato del token. Cambiar una asignación afecta a las acciones futuras; no revierte las transferencias que el gastador ya haya realizado.
