¿Qué son las aprobaciones de tokens?

Cada interacción en DeFi comienza con una aprobación de token, y cada aprobación es un permiso que puede durar más que la transacción que lo originó.

9 minutos
¿Qué son las aprobaciones de tokens?

Una aprobación de token es un permiso de contrato inteligente que permite a una aplicación descentralizada (también conocida como dapp) acceder y mover un tipo específico de token desde una wallet. Sin una aprobación, ninguna aplicación puede tocar los tokens de una wallet con autocustodia, aunque la wallet esté conectada a la interfaz de la aplicación. La aprobación es lo que tiende el puente entre conectar una wallet y permitir que un protocolo use los activos que contiene.

Las aprobaciones de tokens son necesarias para casi todas las interacciones en DeFi: intercambiar tokens en un exchange descentralizado, depositar en un protocolo de préstamos, añadir liquidez a un pool o listar un NFT en un marketplace. También son uno de los mecanismos más explotados en la seguridad cripto. Los informes mensuales de seguridad cripto de MetaMask hacen un seguimiento detallado de estas amenazas. Por ejemplo, el Informe de Seguridad Cripto de febrero de 2026 documentó un aumento del 207 % en los exploits de "phishing de firmas", también conocido como phishing de aprobaciones. Entender qué hacen las aprobaciones de tokens, cómo persisten y cómo los atacantes pueden explotarlas es fundamental para cualquier persona que use una wallet con autocustodia.

Aviso legal: Este contenido tiene únicamente fines educativos. No constituye asesoramiento financiero, ni una solicitud, y no está dirigido al público del Reino Unido. Las wallets de criptomonedas y los activos digitales conllevan riesgos y pueden no ser adecuados para todos los usuarios.

Cómo funcionan las aprobaciones de tokens

Un ejemplo habitual de aprobaciones de tokens es el intercambio de USDC por ETH en un exchange descentralizado. El contrato inteligente de la aplicación necesita permiso para tomar el USDC de la wallet y ejecutar la operación. Ese permiso es la aprobación de token.

A nivel de contrato, el usuario llama a una función denominada approve() en el contrato del token USDC. Esta función recibe dos parámetros: el spender (la dirección del contrato inteligente que está siendo autorizado) y el amount (la cantidad de tokens que el spender tiene permitido mover). Una vez que la transacción de aprobación se confirma en la blockchain, el contrato spender puede llamar a transferFrom() para mover hasta la cantidad aprobada de ese token desde la wallet del usuario, sin necesidad de ninguna confirmación adicional por parte del usuario.

Hay dos detalles importantes sobre las aprobaciones de tokens que todos, especialmente los principiantes, deben conocer. En primer lugar, la aprobación es específica para un token y un spender. Aprobar que un exchange descentralizado (DEX) gaste USDC no le da acceso a ETH, BTC ni a ningún otro token. En segundo lugar, la aprobación es una transacción en la blockchain que tiene un coste en comisiones de red; es un paso separado del intercambio en sí, razón por la cual las interacciones en DeFi suelen requerir dos confirmaciones: una para aprobar y otra para ejecutar.

Aprobaciones limitadas vs. ilimitadas

El campo de cantidad en una aprobación determina cuántos tokens puede acceder el spender.

Una aprobación limitada autoriza al spender a mover únicamente un número específico de tokens; por ejemplo, exactamente los 500 USDC necesarios para un intercambio concreto. Una vez transferidos esos 500 USDC, el límite se agota. El siguiente intercambio requerirá una nueva aprobación, lo que implica otra transacción en la blockchain y otra comisión de red.

Una aprobación ilimitada autoriza al spender a mover la cantidad máxima posible de ese token (técnicamente, 2^256 − 1, un número muy superior al suministro total de cualquier token). Esto significa que el contrato puede acceder al saldo completo del usuario de ese token, ahora y en el futuro, sin necesidad de ninguna aprobación adicional. La mayoría de las aplicaciones solicitan aprobaciones ilimitadas por defecto porque reduce la fricción para el usuario: una sola aprobación y todas las transacciones futuras con ese token quedan preautorizadas.

La comodidad es real, pero también lo es el riesgo. Una aprobación ilimitada nunca caduca. Si el contrato al que se le concedió es explotado posteriormente, actualizado de forma maliciosa, o si el usuario firmó la aprobación en un sitio de phishing que imitaba una aplicación legítima, el atacante puede vaciar todos los tokens que cubre la aprobación sin ninguna interacción adicional por parte del usuario. La víctima puede que ni siquiera sepa que la aprobación existe hasta que los tokens hayan desaparecido.

Consideración

Aprobación de token limitada

Aprobación de token ilimitada

Cantidad autorizada

Específica (p. ej., 500 USDC)

Máxima posible (saldo completo, indefinidamente)

Persistencia

Se consume una vez transferida la cantidad especificada

Permanece activa hasta que se revoca manualmente

Fricción para el usuario

Se necesita una nueva aprobación por transacción (comisiones de red adicionales)

Una aprobación cubre todas las transacciones futuras

Riesgo si el contrato es explotado

La pérdida está limitada a la cantidad aprobada

Todo el saldo del token está en riesgo

Uso habitual

Usuarios con conciencia de seguridad, transacciones de alto valor

Opción predeterminada en la mayoría de las aplicaciones

Cómo funcionan las aprobaciones de tokens con Permit2

En noviembre de 2022, Uniswap Labs desplegó un contrato llamado Permit2 para abordar la fricción y el riesgo de las aprobaciones de tokens tradicionales. Para 2025, más de 3,1 millones de direcciones en la mainnet de Ethereum habían autorizado el contrato Permit2, y se había convertido en el sistema de aprobaciones más ampliamente integrado en DeFi, utilizado por Uniswap, 1inch, CowSwap y muchos otros protocolos.

La idea central: en lugar de conceder una aprobación en la blockchain por separado al contrato inteligente de cada aplicación, el usuario otorga una única aprobación al contrato Permit2. A partir de ahí, cada interacción individual con una aplicación se autoriza mediante una firma offchain, un mensaje firmado en la wallet que especifica qué tokens, cuántos, qué spender y una fecha límite tras la cual el permiso caduca.

Las mejoras respecto a las aprobaciones tradicionales son significativas. Las firmas de Permit2 incluyen fechas límite, por lo que los permisos obsoletos caducan automáticamente en lugar de persistir indefinidamente. Los nonces impiden que la misma firma se use dos veces. Y el usuario firma una aprobación por token en lugar de una por aplicación, lo que reduce el número total de transacciones de aprobación en la blockchain y sus comisiones de red asociadas.

La contrapartida es un desplazamiento de la superficie de ataque. Las aprobaciones tradicionales se explotaban a través de permisos dormidos en la blockchain: contratos que habían sido aprobados meses o años atrás y que posteriormente fueron comprometidos. Las firmas de Permit2 se explotan mediante phishing en el momento de la firma. Dado que las autorizaciones de Permit2 utilizan firmas de datos tipados EIP-712, aparecen en la wallet como una solicitud de firma en lugar de una confirmación de transacción. Un sitio malicioso puede presentar lo que parece una solicitud rutinaria de "firmar este mensaje" que en realidad es una firma de Permit2 que autoriza la transferencia del saldo completo de tokens del usuario. Sin transacción en la blockchain. Sin comisión de red por parte del usuario. Solo una firma, y luego el atacante llama a transferFrom().

Cómo los drainers explotan las aprobaciones de tokens

Los wallet drainers son kits de herramientas de phishing automatizados diseñados para extraer aprobaciones de tokens, tanto tradicionales como de Permit2, de las víctimas. Operan como drainer-as-a-service (DaaS): un desarrollador mantiene los contratos inteligentes maliciosos, la infraestructura de phishing y el canal de lavado de fondos, y los afiliados alquilan el servicio a cambio de una parte de los fondos robados (generalmente conservando entre el 75 % y el 95 % de lo que drenan).

Los patrones de ataque de los wallet drainers suelen seguir una secuencia consistente:

Paso 1: Señuelo. La víctima llega a un sitio de phishing a través de un resultado de búsqueda patrocinado, un enlace de airdrop falso, un servidor de Discord comprometido o una interfaz de aplicación clonada. El sitio parece un protocolo legítimo: la misma marca, el mismo diseño, a menudo una URL casi idéntica.

Paso 2: Solicitud de firma. El sitio solicita a la wallet que firme una transacción o una firma de Permit2. La solicitud puede parecer una conexión estándar de aplicación, un intercambio de tokens o una reclamación de airdrop. En realidad, la firma autoriza al contrato del drainer a mover los tokens de la víctima.

Paso 3: Vaciado. El atacante llama a transferFrom() desde una wallet separada, extrayendo los tokens aprobados. Los kits de drainer más sofisticados agrupan múltiples transferencias de tokens —ERC-20, NFTs y autorizaciones de Permit2— en una única llamada multicall, vaciando la wallet en segundos. Los fondos se enrutan a través de exchanges descentralizados y bridges entre cadenas para ocultar el rastro.

El detalle crítico: desde la perspectiva de la blockchain, cada paso es una transacción válida y autorizada. La víctima firmó la aprobación. El contrato ejecutó lo que estaba autorizado a hacer. No existe ningún mecanismo a nivel de protocolo para revertirlo.

Algunas wallets ahora simulan transacciones y firmas antes de que el usuario las confirme, señalando contratos drainer conocidos y cantidades de aprobación sospechosas. MetaMask hace esto a través de su integración con Blockaid. Esto no elimina el riesgo —un contrato drainer nuevo puede que aún no esté en ninguna base de datos de detección—, pero añade una capa entre la solicitud de phishing y la confirmación del usuario.

Cómo revisar y revocar aprobaciones de tokens

Revocar una aprobación de token significa establecer el límite de un spender específico de vuelta a cero. Es una transacción en la blockchain; tiene un coste en comisiones de red y debe confirmarse en la wallet, pero elimina permanentemente la capacidad de ese contrato para mover el token especificado.

Hay tres conceptos importantes:

Cuándo revocar. Después de terminar con una aplicación y no tener previsto volver a usarla. Después de conceder una aprobación ilimitada que ya no es necesaria. Después de cualquier interacción que haya parecido sospechosa, aunque no se haya perdido nada de inmediato. Como práctica habitual: las revisiones periódicas de las aprobaciones activas detectan permisos que han superado su propósito.

Cuánto cuesta revocar. Cada revocación es una transacción separada en la blockchain con su propia comisión de red. En la mainnet de Ethereum, esto suele costar unos pocos dólares; en las redes de capa 2, puede ser fracciones de centavo. El coste es pequeño en comparación con la pérdida potencial derivada de una aprobación comprometida, pero se acumula si se han acumulado docenas de aprobaciones a lo largo de meses de actividad en DeFi.

Qué no soluciona la revocación. Revocar una aprobación impide transferencias futuras bajo ese permiso. No puede revertir una transferencia que ya se haya producido. Si un drainer ya ha llamado a transferFrom(), los tokens han desaparecido. La revocación es preventiva, no correctiva.

Para obtener instrucciones paso a paso sobre cómo revisar y revocar aprobaciones en una wallet con autocustodia, consulta la guía de MetaMask sobre cómo revocar permisos de contratos inteligentes.

Cómo reducir el riesgo de las aprobaciones de tokens

Algunas prácticas reducen la exposición sin eliminar la comodidad de las interacciones en DeFi.

Establece aprobaciones limitadas cuando la opción esté disponible. Por ejemplo, la extensión de MetaMask muestra la cantidad de aprobación solicitada y permite a los usuarios personalizar el límite de gasto antes de confirmar. Establecer el límite en la cantidad realmente necesaria para la transacción reduce el riesgo en caso de que el contrato sea comprometido posteriormente.

Lee la solicitud de firma. Las firmas de Permit2 muestran el nombre del token, la cantidad, la dirección del spender y la fecha límite. Si una solicitud de "firmar mensaje" muestra detalles de tokens, no es un inicio de sesión: es una autorización. Si la cantidad coincide con el saldo completo del usuario en lugar del tamaño esperado de la transacción, eso es una señal de alerta.

Verifica el sitio antes de conectarte. Los sitios de drainer replican interfaces de aplicaciones legítimas. Guardar en favoritos las URLs de confianza y navegar desde esos favoritos —en lugar de desde resultados de búsqueda, enlaces en redes sociales o mensajes directos— elimina el mecanismo de señuelo más habitual.

Revisa las aprobaciones periódicamente. Las aprobaciones activas se acumulan a lo largo de meses de uso en DeFi. Una revisión trimestral mediante el verificador de aprobaciones de un explorador de bloques o el panel de límites de gasto detecta permisos que ya no tienen ningún propósito.

Preguntas frecuentes sobre aprobaciones de tokens

Traducido por IA. Puede contener errores. Por favor, verifique siempre la información.

Califica la traducción
  • MetaMask
    MetaMask

    La billetera cripto autocustodiada líder y puerta de entrada a Web3, desarrollada por Consensys.

    Leer todos los artículos