Guía · Riesgos de wallet · · por Stefan Tsezarov
Qué firmas de verdad al aprobar un token
Un permiso para gastar puede importar tanto como un pago.
Abres una app de intercambio, eliges un token y conectas tu wallet. Antes del intercambio, tu wallet te pide que apruebes un gasto.
No parece que salga ningún token. Parece un paso de configuración.
Es un paso de configuración, pero da a otra dirección permiso para mover tus tokens. Según lo que apruebes, ese permiso puede seguir activo mucho después de cerrar la web.
Las aprobaciones son una parte normal del uso de apps cripto. El riesgo está en conceder más acceso del que pretendías, o en concederlo a la dirección equivocada.
Esta guía explica qué significa ese acceso, qué revisar antes de firmar y qué hacer si ya has aprobado algo sospechoso.
Cubre Ethereum y las redes compatibles. Otras blockchains usan sistemas de permisos distintos.
01Una aprobación da permiso para gastar
Tu wallet guarda las claves con las que autorizas acciones. Tu saldo de tokens está registrado en el contrato inteligente del token.
Para que una app de intercambio o de préstamos mueva esos tokens, normalmente necesita antes tu permiso. Ese permiso se lo das a una dirección llamada spender (quien gasta). La cantidad permitida se llama allowance (asignación).
Supón que quieres intercambiar 50 USDC.
- Aprobar 50 USDC permite al spender tomar hasta esa cantidad.
- Aprobar USDC ilimitados le permite tomar tu saldo disponible de USDC, incluidos los USDC que recibas más tarde, mientras ese permiso siga activo.
Esa aprobación afecta al token indicado en esa red. Por sí sola no da acceso a todo lo que hay en tu wallet.
Una aprobación de token estándar normalmente no caduca. Sigue ahí hasta que la cambies o la revoques, o hasta que se gaste la asignación. Cerrar la web o desconectar tu wallet no la elimina. Revoke.cash explica la diferencia entre desconectar y revocar (en inglés).
02Peticiones distintas dan permisos distintos
El texto de cada wallet varía. Estas son las peticiones principales que conviene reconocer:
| Petición | Lo que puede autorizar |
|---|---|
| Approve o límite de gasto | Un spender puede mover hasta una cantidad indicada de un token. |
| Set approval for all | Un operador puede transferir todos tus NFT de la colección o el contrato indicado, incluidos los que consigas más tarde mientras la aprobación siga activa. |
| Permit | Una firma que puede enviarse más tarde para crear una asignación de tokens. |
| Permit2 | Una firma que puede autorizar una asignación con límite de tiempo o una transferencia única, según la petición. |
«Approval for all» es más amplio que aprobar un solo NFT, pero sigue limitado al contrato de NFT correspondiente. ERC-721 define estos permisos.
Una firma puede autorizar gastos sin comisión de gas
Una aprobación estándar normalmente exige una transacción en la cadena. Un permit empieza con una firma fuera de la cadena: firmarla no crea por sí misma una transacción ni cobra gas.
Otra persona puede enviar esa firma más tarde y pagar la comisión de la transacción.
En un permit ERC-2612 estándar, el deadline es el último momento en que se puede enviar la firma. No es la fecha de caducidad de la asignación que se crea al enviarla. ERC-2612 especifica cómo funciona.
Permit2 funciona de otra manera. Necesita una aprobación de token previa al contrato Permit2 y después admite permisos de gasto con límite de tiempo o transferencias únicas firmadas. La documentación de Permit2 de Uniswap explica las dos vías (en inglés).
No hace falta memorizar los estándares. Recuerda esto:
Que no haya comisión de gas no significa que no haya consecuencias económicas.
No todas las firmas conceden acceso para gastar. Un mensaje de inicio de sesión puede tener otro propósito. Lee qué autoriza la petición en lugar de juzgarla por el botón «Firmar».
03Cómo usan los estafadores estos permisos
Una web falsa no siempre te pide que envíes cripto. Puede pedirte que «verifiques tu wallet», «reclames una recompensa» o «continúes».
Detrás de ese botón hay una petición que da a un atacante acceso para gastar.
Después la web puede mostrar un error. La cierras pensando que no ha pasado nada. Pero puede que el atacante ya tenga una aprobación o una firma que puede usar.
La transferencia puede llegar al momento o más tarde. No recibes una segunda petición para aprobarla.
No hace falta que te roben la frase de recuperación para que ocurra. Ni siquiera una wallet de hardware puede protegerte de un permiso dañino que autorizas tú. Revoke.cash describe esta limitación (en inglés).
04Cinco comprobaciones antes de aprobar o firmar
1. Compara la petición con lo que querías hacer
Es razonable que un intercambio pida acceso al token que vendes.
Un simple inicio de sesión o un airdrop corriente no debería necesitar acceso sin restricciones a tus tokens. Si la web dice «Verificar» y tu wallet dice «Aprobar gasto», para y averigua por qué.
2. Comprueba quién recibe el permiso
El spender es la dirección que recibe el acceso. Un logotipo conocido o un nombre de contrato no demuestran que pertenezca a la app.
Usa la documentación oficial de la app para comprobar el contrato y la red que deberían aparecer. Algunas apps usan varios contratos, así que adivinarlo por la etiqueta de una dirección no es fiable.
3. Limita la cantidad
Si tu wallet lo permite, aprueba solo lo que necesita la acción.
Para un intercambio de 50 USDC, una asignación ilimitada expone más USDC de lo necesario. Un límite menor reduce esa exposición; no convierte en fiable a un spender malicioso.
4. Lee las firmas con el mismo cuidado que las transacciones
Busca el token, el spender, la cantidad, la red y cualquier deadline o caducidad. Los nombres de los campos varían.
Si la wallet no explica la petición con suficiente claridad para que la entiendas, recházala e investiga en la documentación oficial de la app.
5. Separa tus ahorros de las apps desconocidas
Usa una wallet aparte con poco saldo para probar servicios nuevos. Evita conectar la wallet donde guardas tus ahorros a largo plazo.
Así limitas lo que puede alcanzar una aprobación dañina.
05Si ya has aprobado algo
Si sospechas que te están robando en este momento, actúa rápido. Limpiar aprobaciones de rutina y tener una firma expuesta son situaciones distintas.
Para las aprobaciones existentes:
- Abre directamente Revoke.cash o el Token Approval Checker de Etherscan. Evita los enlaces que te envíen cuentas de «soporte» que no has buscado.
- Revisa cada red que uses. Puedes inspeccionar una dirección pública sin firmar ninguna transacción.
- Revoca los permisos que ya no necesites, empezando por los spenders sospechosos y las asignaciones ilimitadas innecesarias.
- Confirma que cada transacción de revocación se completa. Se pagan comisiones de red.
Revocar elimina el permiso para gastar. No recupera los activos ya transferidos. Desconectar la web no lo sustituye. Las preguntas frecuentes de Revoke.cash cubren estos límites (en inglés).
Si firmaste un permit sospechoso
Puede que una firma sin usar no aparezca en un comprobador de aprobaciones.
Revocar una asignación visible puede no invalidar esa firma. Por ejemplo, un permit ERC-2612 sin caducar aún puede crear una asignación si su nonce (el contador que impide reutilizarla) sigue siendo válido. Consulta la especificación ERC-2612.
Plantéate mover los activos afectados a otra wallet que controles. No los devuelvas a la dirección expuesta hasta que la firma se haya invalidado o ya no pueda usarse. Mover activos y revocar permisos puede ser una carrera contra el atacante; ninguna de las dos cosas garantiza que llegues primero.
Si tu frase de recuperación o tu clave privada quedaron expuestas, crea una wallet con una frase de recuperación nueva. Otra cuenta derivada de la frase expuesta no es un sustituto seguro.
Desconfía de las ofertas de recuperación que no has pedido, sobre todo si exigen un pago por adelantado o tu frase de recuperación.
06Lo que SaveSaveSaveSave puede ayudarte a comprobar
El escáner de mensajes puede marcar textos que te empujan a firmar mensajes, aprobar gastos ilimitados o conceder permisos amplios sobre tokens.
Es un aviso sobre el texto que pegas. No es una inspección de la petición que aparece en tu wallet.
El escáner no determina qué autoriza una firma, no lista tus asignaciones existentes ni garantiza que un spender sea fiable. Que la comprobación de una dirección no devuelva avisos no es motivo para aprobarla.
Usa un comprobador de aprobaciones para revisar los permisos existentes. Antes de conceder uno nuevo, aclara tres cosas:
Quién puede gastar, a qué activos puede llegar y cuánto le permites.
La dirección del spender y la web de la ilustración son inventadas. Esta guía es información general, no asesoramiento financiero.