WATS Wallet logoWATS Wallet
Técnico8 min de lectura

¿Qué es la firma a ciegas (blind signing)? Por qué nunca debes firmar lo que no puedes leer

La firma a ciegas es aprobar una transacción o un mensaje que tu wallet no puede mostrarte en forma legible: calldata en bruto, un bloque hexadecimal opaco o un hash pelado. Aquí tienes por qué eth_sign no debería aprobarse jamás, cómo los drainers dependen de las solicitudes ilegibles, y cómo el clear signing y la simulación te permiten leer antes de firmar.

La firma a ciegas es aprobar una transacción o un mensaje que tu wallet no puede mostrar en forma legible para una persona: calldata en bruto, un bloque hexadecimal opaco o un hash pelado de 32 bytes en lugar de una frase clara sobre lo que autoriza la firma. No es un fallo de la criptografía: la firma es perfectamente válida y lleva plena autoridad on-chain, así que firmar datos ilegibles concede permisos que nunca inspeccionaste, y por eso casi todos los wallet drainers se construyen alrededor de ello. El remedio es el clear signing o firma clara —que la wallet decodifique la solicitud en una frase que puedas comprobar y la simule para previsualizar qué activos se moverían realmente—, más un hábito que ningún software puede aportar por ti: rechaza todo lo que no puedas leer. Como la firma es el momento exacto en que se transfiere la autoridad, también importa que la clave que la produce sea solo tuya: el Hot Wallet de WATS es no custodial en Ethereum, Arbitrum, Optimism, Base, Polygon, BNB Chain, Solana y TON, así que nada se mueve sin una firma que hayas aprobado personalmente.

¿Qué es la firma a ciegas?

La firma a ciegas es cualquier aprobación en la que la solicitud y lo que se muestra de ella se han separado. La cadena ejecuta lo que digan los bytes firmados; tu pantalla es el único sitio donde pueden compararse tu intención y el contenido real. Cuando la pantalla enseña hexadecimal, esa comparación es imposible, y los atacantes construyen precisamente sobre esa imposibilidad.

La brecha es de información, no de matemáticas. Una firma no codifica "acepté intercambiar 100 USDC"; codifica "esta clave autoriza estos bytes". Si esos bytes significan un swap, una aprobación ilimitada o una orden fuera de la cadena que vende tu NFT por nada es una pregunta que solo puede responder la interfaz, y la firma a ciegas es lo que ocurre cuando la interfaz se niega a responderla.

Dónde aparece la firma a ciegas

La firma a ciegas no es una función concreta: es una familia de situaciones en las que la pantalla no está a la altura de los datos. Los sospechosos habituales:

Tipo de solicitudLo que sueles verRiesgo
eth_signUn hash en bruto o un bloque hexadecimalCrítico: no verificable por diseño; recházalo siempre
Datos tipados en bruto (EIP-712)Campos estructurados: gastador, importe, fecha límiteAlto cuando el significado no está claro: un campo legible no es un campo entendido
Transacción de contratoUna acción decodificada, o calldata en bruto cuando la wallet no sabe decodificarlaDepende por completo de la decodificación de la wallet
Pantalla de hardware que solo muestra el hashÚnicamente un hash en la pantalla del dispositivoAlto: el dispositivo confirma presencia, no comprensión

El patrón en las cuatro filas: el riesgo sigue a la legibilidad. Allí donde la representación adelgaza, el peligro engorda.

¿Por qué es tan peligroso eth_sign?

Entre los métodos de firma, eth_sign es la forma más pura del problema: pide a tu wallet que firme un valor arbitrario de 32 bytes, mostrado como hexadecimal en bruto, sin ninguno de los prefijos que marcan un mensaje como "solo un mensaje". Como la entrada no lleva separación de dominio, podría ser cualquier cosa, incluido el hash de una transacción que saca activos de tu cuenta. No hay manera, ni siquiera para un experto cuidadoso, de verificar la solicitud solo a partir del aviso; es no verificable por diseño. Por eso las wallets principales han marcado el método como obsoleto o lo han eliminado del todo, y por eso la regla práctica no admite excepciones: en 2026, un sitio que pide eth_sign o está peligrosamente desactualizado o es abiertamente hostil, y ambas respuestas significan rechazar.

¿Qué te muestra realmente una hardware wallet?

Una hardware wallet mantiene las claves fuera de línea y muestra las solicitudes en una pantalla que el malware no puede alterar, pero esa pantalla solo vale lo que se represente en ella. Para interacciones con contratos que el dispositivo no entiende, muchos dispositivos han recurrido históricamente a mostrar solo un hash, detrás de un ajuste llamado literalmente blind signing. Confirmar un hash en una pantalla de confianza demuestra que pulsaste el botón; no demuestra nada sobre lo que aprobaste. La promesa de la seguridad por hardware es lo que ves es lo que firmas, una promesa que se derrumba en silencio cuando lo que ves son treinta y dos bytes de ruido. El aislamiento del hardware protege la clave, no la decisión.

¿Cómo explotan los drainers la firma a ciegas?

Un kit de drainer es, antes que nada, un ataque a la experiencia de firma. El sitio parece una página de mint, el reclamo de un airdrop o un portal de soporte; la solicitud que dispara es una aprobación ilimitada de tokens, un setApprovalForAll que abarca una colección de NFT entera, o una firma Permit o de orden fuera de la cadena que mueve los activos más tarde, sin ningún aviso adicional. Lo que todas comparten es la presentación: la víctima firmó una solicitud que no podía leer —o que leyó pero no entendió— y el vaciado vino después. El manual completo está en qué es un wallet drainer, y la mecánica de las autorizaciones, incluido por qué una sola firma sin gas puede vaciar el saldo de un token, en las aprobaciones de tokens y Permit explicadas. Ambos llegan a la misma causa raíz: el robo ocurre en el instante de la firma, y la firma a ciegas es lo que permite al atacante salir indemne de ese instante.

¿Qué es el clear signing y hasta dónde ha llegado?

La respuesta del sector es el clear signing: el principio de que una wallet debe traducir cada solicitud a términos que una persona pueda verificar antes de pedirle una firma. En 2026 se apoya en dos mecanismos. Decodificación: la wallet reconoce el contrato y la función que se están llamando y lo representa como una frase —aprobar el token X, gastador Y, importe ilimitado—, con iniciativas como ERC-7730 construyendo registros abiertos de metadatos para que incluso las pantallas de las hardware wallets puedan mostrar las llamadas a contratos en términos humanos en lugar de un hash. Simulación: la wallet, o un servicio al que llama, ejecuta la transacción contra el estado actual de la cadena antes de que firmes y previsualiza el resultado: qué activos salen, cuáles entran, qué autorizaciones cambian. La simulación es una predicción, no una garantía —el estado puede cambiar entre la vista previa y la inclusión, y un contrato hostil puede comportarse de otro modo una vez minado—, pero una vista previa que muestra tus NFT saliendo hacia una dirección desconocida detiene en seco la mayoría de los vaciados. En 2026 la adopción sigue siendo desigual entre wallets y cadenas, así que comprueba qué representa de verdad tu propia wallet en una acción rutinaria antes de confiar en que vaya a avisarte.

Reglas prácticas: trata lo ilegible como no fiable

No necesitas saber leer calldata para estar a salvo: necesitas hábitos que hagan que las solicitudes ilegibles fallen en cerrado:

  • Nunca apruebes una solicitud eth_sign. No le queda ningún uso legítimo generalizado: trata la solicitud misma como la señal de alarma.
  • Prefiere wallets que decodifiquen y simulen. Si tu wallet muestra hexadecimal en bruto para una acción rutinaria, es un problema de wallet por el que vale la pena cambiarse.
  • Lee los campos que importan en las solicitudes de datos tipados: gastador, importe, fecha límite, operador. Un importe ilimitado o un gastador desconocido son una señal de stop.
  • Mantén desactivados los modos de blind signing del hardware salvo que entiendas exactamente por qué una transacción concreta lo necesita, y vuelve a desactivarlos después.
  • Conéctate de forma deliberada. La mayoría de las solicitudes maliciosas llegan a través de conexiones apresuradas: la rutina de cómo conectar una wallet a una dApp de forma segura mantiene vigilada la puerta de entrada.
  • Ilegible equivale a no fiable. Rechazar una firma no cuesta más que volver a intentarlo. Una firma equivocada puede costarlo todo. La asimetría decide por ti.

Dónde encaja WATS

La firma a ciegas es un problema de representación. La decodificación y la simulación pueden mostrar una solicitud en términos legibles, pero ninguna wallet —tampoco WATS— puede decidir por ti si esa solicitud es la que de verdad quieres. Lo que una wallet sí resuelve es quién controla la clave que convierte esa decisión en autoridad. El Hot Wallet de WATS es plenamente no custodial: tú tienes las claves, WATS nunca conserva una clave, y ninguna transferencia sale de tu cuenta sin una firma que hayas aprobado en Ethereum, Arbitrum, Optimism, Base, Polygon, BNB Chain, Solana o TON. Eso elimina toda una categoría de riesgo —nadie puede firmar por ti— y deja la disciplina de lectura anterior enteramente en tus manos.

La WATS NFC Metal Card ocupa ese mismo lugar honesto. No almacena claves privadas y no decodifica calldata: es un dispositivo de autenticación por acercamiento con un ID de tarjeta único, emparejado con exactamente un dispositivo, que autentica frente a las claves que viven en las apps de WATS. Eso añade un factor físico —algo que tienes en la mano, no solo algo en tu pantalla—, pero no puede volver legible una solicitud ilegible. Nada puede, salvo el propio aviso.

Así que trata las dos mitades por separado. La mitad de la lectura es un hábito: nunca firmes lo que no puedas leer y rechaza todo lo que llegue como hexadecimal pelado. La mitad de la custodia es una elección que haces una vez: guarda tus claves en una wallet no custodial y mantén la autoridad de firma donde corresponde. Instala el Hot Wallet de WATS, convierte cada aviso ilegible en un rechazo automático y empareja una WATS NFC Metal Card con tu dispositivo si quieres un factor físico que te autentique frente a las claves de tus apps de WATS.

Preguntas frecuentes

¿Es lo mismo la firma a ciegas que eth_sign?

No: eth_sign es su caso más extremo. La firma a ciegas es cualquier aprobación en la que no puedes leer qué estás autorizando: calldata en bruto, datos tipados opacos o una pantalla de hardware que solo muestra un hash. eth_sign va más allá porque es no verificable en principio, y por eso las wallets principales lo han marcado como obsoleto o lo han eliminado. Toda solicitud eth_sign es firma a ciegas, pero también hay mucha firma a ciegas en avisos de transacción corrientes.

¿Me protege una hardware wallet de la firma a ciegas?

Solo en parte. Una hardware wallet mantiene tus claves fuera de línea y muestra las solicitudes en una pantalla que el malware no puede manipular, pero si el dispositivo no sabe decodificar una llamada a un contrato puede acabar mostrando solo un hash, y confirmar un hash no te dice nada sobre lo que aprobaste. La protección mejora a medida que los estándares de metadatos de clear signing llegan a las pantallas de los dispositivos, ya en 2026. El hardware aísla la clave; por sí solo no te explica la transacción.

¿Me protege una wallet no custodial de la firma a ciegas?

Protege la clave, no la decisión. No custodial significa que solo tú puedes producir una firma: el Hot Wallet de WATS es un ejemplo —tú tienes las claves, WATS nunca conserva una clave y nada se mueve en Ethereum, Arbitrum, Optimism, Base, Polygon, BNB Chain, Solana o TON sin tu aprobación—. Eso elimina el riesgo de que otra persona firme por ti, pero una firma que apruebas tú mismo sigue siendo vinculante, así que leer la solicitud antes de aprobarla sigue siendo cosa tuya. La WATS NFC Metal Card añade un factor físico de autenticación por acercamiento para las claves que viven en las apps de WATS: no almacena ninguna clave privada y no decodifica calldata.

¿Qué debo hacer cuando una wallet solo muestra hexadecimal en bruto?

Rechazarlo. Una solicitud de firma que no puedes leer es una solicitud que no puedes evaluar, y rechazarla no te cuesta más que volver a intentarlo. Después investiga: comprueba si la dApp es auténtica, si tu wallet admite decodificación y simulación para esa cadena, y si la acción realmente necesita ese método. Si existe una vía legible —un aviso decodificado o una vista previa simulada—, úsala. Si no existe ninguna, trata la solicitud como no fiable y aléjate.