system online · no logs · no tracking · no kyc tor: v3 ready
root@neverkyc:/blog/stealth-address-vs-firma-anillo-monero$ cat post.md

Stealth Address vs Firma de Anillo en Monero

// by ~anon · 2026-05-29 · mock,auto-generated,es

Stealth Address vs Firma de Anillo en Monero

Alrededor de 1,2 millones de transacciones de Monero pasaron por la red en abril de 2026, y ninguna de ellas reveló públicamente al emisor, al receptor ni el monto exacto en el libro mayor público. Esa propiedad no proviene de un solo truco criptográfico. Se apoya en al menos tres capas superpuestas, dos de las cuales confunden constantemente a principiantes e incluso a usuarios experimentados de Bitcoin: la stealth address y la firma de anillo. Suenan parecidas, aparecen en el mismo párrafo de cualquier explicación sobre Monero, y ambas se describen de forma genérica como "lo que hace anónimo a Monero". Pero protegen lados distintos de la misma transacción, y mezclarlas hace imposible razonar con claridad sobre lo que un observador de la cadena puede o no puede ver.

En MoneroSwapper recibimos esta pregunta casi a diario — normalmente de gente que acaba de usar nuestra interfaz de intercambio, notó que no se exige KYC y quiere entender la razón criptográfica real detrás de eso. Este artículo desentraña ambas primitivas, recorre dónde se solapan, dónde no lo hacen, y qué filtraría cada una si desapareciera del protocolo mañana mismo. Al final sabrás exactamente qué problema resuelve cada construcción y por qué eliminar cualquiera de las dos colapsaría las garantías de privacidad de Monero.

Por qué confundirlas perjudica tu modelo mental

Quienes razonan sobre la privacidad de Monero desde un único cajón llamado "el asunto del anonimato" tienden a cometer tres errores predecibles. Creen que compartir una clave de visualización es inofensivo porque "las firmas de anillo siguen protegiendo todo lo demás", asumen que aumentar el tamaño del anillo también refuerza la privacidad del receptor, y piensan que al receptor de un pago lo oculta la misma construcción que oculta la elección del input del emisor. Ninguna de estas creencias es correcta, y las tres conducen a errores operativos reales.

La separación entre privacidad del lado del emisor y privacidad del lado del receptor es la distinción más útil que puedes interiorizar. El protocolo de Monero aplica criptografía distinta a cada lado porque los dos problemas son distintos. Ocultar quién te está pagando significa hacer que los outputs no se puedan vincular a tu dirección publicada. Ocultar qué output previo estás gastando significa hacer que tu input sea indistinguible de un grupo de señuelos. No son problemas simétricos.

  • Privacidad del receptor: se gestiona mediante stealth addresses (claves de salida de un solo uso derivadas de la dirección publicada del destinatario).
  • Privacidad del emisor: se gestiona mediante firmas de anillo (específicamente CLSAG desde el hardfork de octubre de 2020).
  • Privacidad del monto: se gestiona mediante RingCT con pruebas de rango Bulletproofs+ — una tercera capa, independiente.

Cuando alguien pregunta "¿Monero es rastreable?", la respuesta honesta depende de cuál de estas tres capas tenga en mente. Una filtración de clave de visualización compromete solo la primera. Una mala elección de anillo compromete solo la segunda. Y una hipotética futura falla en Bulletproofs+ comprometería solo la tercera. Fallan de forma independiente, y por eso entenderlas de forma independiente importa.

Qué es realmente una stealth address

Una stealth address es una clave pública de un solo uso que el emisor genera en el momento de pagarte. Cada vez que alguien paga a la misma dirección publicada de Monero, aparece en la cadena una clave de destino fresca y matemáticamente no relacionada con las anteriores. Dos pagos nunca comparten destino, ni siquiera si van a la misma billetera, en el mismo minuto, desde el mismo emisor.

La construcción se apoya en Diffie-Hellman sobre curvas elípticas. Tu dirección publicada codifica dos puntos públicos: uno ligado a tu clave de gasto y otro ligado a tu clave de visualización. Cuando Alicia te paga, su billetera genera un escalar efímero aleatorio, lo multiplica contra el punto de tu clave de visualización para derivar un secreto compartido, hace un hash de ese secreto y lo suma al punto de tu clave de gasto. El resultado es la clave de destino de un solo uso que queda escrita en el output de la transacción. Alicia solo publica su punto público efímero — el secreto usado para derivar el destino no se puede recuperar a partir de nada que esté en la cadena.

Cómo tu billetera encuentra los pagos destinados a ti

Tu billetera usa tu clave de visualización para realizar la misma operación de Diffie-Hellman en sentido inverso contra cada output que ve. Cuando la cuenta cierra, la billetera sabe que ese output te pertenece. Cuando no, el output se ignora silenciosamente. Por eso ejecutar una billetera de Monero requiere escanear la cadena en lugar de buscar una dirección en un índice: no hay ninguna dirección en la cadena que se pueda buscar.

Es crucial entender que solo tu clave de gasto puede mover el output. La clave de visualización revela cuáles outputs son tuyos pero no puede gastarlos. Esa es la razón estructural por la que Monero soporta billeteras de solo visualización — contadores, auditores o servicios de monitoreo pueden confirmar ingresos sin obtener la capacidad de vaciar los fondos.

Las subdirecciones extienden la misma idea

La mayoría de los usuarios nunca comparte su dirección primaria. En cambio, reparten subdirecciones — direcciones públicas separadas derivadas del par de claves principal usando un índice fijo. Cada subdirección es no vinculable con la dirección principal y con cualquier otra subdirección, incluso para alguien que las tenga todas en la mano. Esto es lo que impulsa la generación de direcciones por cliente en herramientas de comercio, páginas de donación y nuestro propio flujo de depósito de MoneroSwapper: cada orden recibe una subdirección fresca, así los observadores de la cadena nunca pueden agregarlas bajo una sola billetera.

El error de privacidad más común que vemos en usuarios nuevos es reutilizar una única dirección primaria en todos lados. El protocolo te da subdirecciones ilimitadas y gratis — úsalas.

Qué es realmente una firma de anillo

Una firma de anillo es una firma digital producida en nombre de un grupo, donde cualquier verificador puede confirmar "un miembro de este grupo firmó esto" pero no puede decir cuál. Monero usa firmas de anillo para ocultar qué output anterior se está gastando como input de una nueva transacción.

Cuando gastas, tu billetera selecciona otros quince outputs en la cadena que no son tuyos y los empaqueta junto a tu input real en un anillo de dieciséis. La firma es válida si y solo si uno de los dieciséis miembros posee la clave de gasto correspondiente — pero el verificador (y la cadena pública) no puede saber cuál. Tu output y quince señuelos no relacionados se vuelven candidatos igualmente plausibles a ser el input gastado real.

CLSAG y el estado del arte actual

La construcción específica de Monero se llama CLSAG (Concise Linkable Spontaneous Anonymous Group signatures), que reemplazó a MLSAG en el hardfork de octubre de 2020. CLSAG produjo transacciones aproximadamente un 25% más pequeñas y una verificación cerca de un 20% más rápida con la misma seguridad. El tamaño del anillo ha sido un valor fijo a nivel de protocolo desde 2019 — primero 11, luego 16 a partir del hardfork de agosto de 2022. Que el tamaño del anillo sea uniforme importa porque tamaños variables filtrarían por sí mismos información sobre el software de billetera, el tipo de transacción o el comportamiento del usuario.

Las key images impiden el doble gasto

Como nadie puede ver qué input es el real, el protocolo necesita un mecanismo separado para impedir el doble gasto. Ese mecanismo es la key image: un valor determinista derivado de la clave de gasto y de la clave de output de un solo uso. Cada output produce exactamente una key image posible, y la red rechaza cualquier transacción cuya key image ya haya aparecido antes. La imagen no revela nada sobre la identidad del output pero garantiza un único uso.

Cara a cara: qué oculta cada construcción

La siguiente matriz hace explícita la división del trabajo. Observa que ninguna primitiva individual oculta los tres elementos: emisor, receptor y monto. Monero necesita la pila completa para ofrecer la propiedad de privacidad que la mayoría de los usuarios tiene en mente.

Propiedad Stealth Address Firma de Anillo (CLSAG)
Qué oculta El vínculo entre una dirección publicada y los destinos de los outputs en la cadena El vínculo entre un output en la cadena y la transacción que lo gasta
Lado de la transacción Receptor (output) Emisor (input)
Primitiva subyacente Diffie-Hellman sobre curvas elípticas + hashing Firma de grupo anónima espontánea vinculable
Parámetro ajustable Ninguno — la derivación es de una sola pasada por output Tamaño del anillo (actualmente fijo en 16)
Qué la rompe Divulgación de la clave de visualización a un tercero hostil Ataques de outputs envenenados, heurísticas tipo EAE, conjuntos de anonimato muy pequeños
Qué NO oculta El monto de la transacción, el input del emisor El destino, el monto, los tiempos
Costo por transacción Mínimo — una multiplicación escalar adicional Mayor — escala con el tamaño del anillo, actualmente domina el tamaño de la tx

Una observación que vale la pena masticar: una stealth address no es una conjetura probabilística. Es una garantía criptográfica dura de que el destino del output no se puede vincular con la dirección del destinatario sin la clave de visualización. Una firma de anillo, en cambio, es estadística — la confianza del observador es de aproximadamente una entre dieciséis por defecto, y esa cifra puede degradarse frente a un atacante que controle el proceso de selección de señuelos o que sea dueño de muchos miembros del anillo.

Cómo se combinan en una transacción real de Monero

Para ver por qué ninguna alcanza por sí sola, sigamos un pago. Alicia quiere enviar 2 XMR a Beto, cuya dirección de Monero obtuvo de una página pública de donaciones.

  1. La billetera de Alicia calcula el output sigiloso. Genera un escalar efímero, ejecuta el Diffie-Hellman contra el punto de la clave de visualización de Beto y deriva una clave pública de destino de un solo uso. Esta entra en la lista de outputs de la transacción. Nadie que mire la cadena puede conectar ese output con la dirección publicada de Beto.
  2. La billetera de Alicia selecciona el anillo. Para fondear el pago, Alicia debe gastar uno de sus outputs anteriores. Su billetera elige ese output real y quince señuelos del conjunto de outputs recientes e históricos de la cadena. La selección de señuelos sigue una distribución gamma publicada que imita los patrones de gasto de usuarios reales.
  3. La billetera de Alicia firma con CLSAG. La firma demuestra que uno de los dieciséis miembros del anillo consintió el gasto. El verificador no aprende nada sobre cuál. La key image adjunta a la firma asegura que el output real no pueda gastarse otra vez.
  4. La billetera de Alicia oculta los montos con RingCT. Inputs y outputs se codifican como compromisos de Pedersen. Las pruebas de rango Bulletproofs+ convencen a la red de que ningún output supera el total de los inputs, sin revelar nunca las cifras.
  5. La billetera de Beto escanea el nuevo bloque. Usando su clave de visualización, Beto ejecuta Diffie-Hellman contra cada output. Cuando la cuenta coincide con el pago de Alicia, el output se revela. Beto ahora sabe que recibió 2 XMR, pero la cadena en sí solo muestra un blob opaco.

Si quitas la stealth address, la billetera de Beto seguiría encontrando el pago, pero también lo harían todas las firmas de análisis de cadena: cada pago a la dirección de Beto aterrizaría en el mismo destino, y todo su historial entrante sería público. Si quitas la firma de anillo, el gasto de Alicia apuntaría a exactamente un output anterior, exponiendo el grafo de transacciones de su billetera. Si quitas RingCT, los montos se filtrarían, haciendo que las otras dos capas sean mucho más fáciles de desanonimizar mediante correlación de valor. Cada capa protege contra un adversario distinto.

Un ejemplo práctico: un intercambio en MoneroSwapper

Imagina un usuario que deposita 0,05 BTC en MoneroSwapper y recibe XMR en una subdirección recién generada en su billetera Feather. Dos libros mayores registran partes de este intercambio, y lo que ve cada observador es revelador.

Del lado de Bitcoin, la dirección de depósito está a la vista. Las herramientas de análisis de cadena — Chainalysis, Elliptic, TRM Labs — la etiquetarán como perteneciente a un servicio de intercambio no custodial si tienen heurísticas para nuestro patrón de depósito. El monto, los tiempos y los UTXOs de origen son todos públicos. Esto es normal en Bitcoin y es una de las razones por las que los usuarios buscan Monero en primer lugar. El motor de intercambio envía BTC a una pool de liquidez, y el rastro en la cadena BTC efectivamente termina en esa pool.

Del lado de Monero, el panorama es fundamentalmente distinto. Nuestra transacción de pago crea un output sigiloso anclado a la subdirección del usuario. Para un observador de la cadena el output es una clave pública fresca sin conexión aparente ni con MoneroSwapper ni con el usuario. La transacción gasta un anillo de dieciséis, incluyendo uno de nuestros outputs y quince señuelos, así que ni siquiera nuestro propio gasto es transparentemente identificable a partir del estado de la cadena solamente. RingCT oculta el monto exacto del pago. El resultado es que incluso un observador que sepa que ocurrió un intercambio no puede demostrar cuál de las transacciones de Monero del bloque correspondiente fue el pago, ni qué subdirección lo recibió.

Esta asimetría — BTC transparente al entrar, XMR opaco al salir — es justamente el sentido de usar Monero como capa de privacidad en lugar de como moneda de transacción de extremo a extremo para cada pago. La stealth address garantiza que el output del intercambio no se pueda vincular con la dirección del usuario; la firma de anillo garantiza que nuestro pago no se pueda rastrear de regreso por nuestro historial de hot wallet.

Confusiones típicas en foros de habla hispana

En los foros y grupos de Telegram en español dedicados a Monero — desde comunidades en España hasta foros de privacidad en México, Argentina o Colombia — hay tres confusiones recurrentes que vale la pena despejar, porque casi todas las preguntas técnicas sobre privacidad terminan rebotando en alguna de ellas.

La primera es traducir "stealth address" como "dirección sigilosa" y suponer entonces que se trata de una dirección distinta que el usuario configura aparte. No es así. La stealth address no es algo que tú configures: la genera quien te paga, automáticamente, cada vez. Tú solo publicas tu dirección normal de Monero. La stealth address es el output de un solo uso que nace de un cálculo entre la clave efímera del emisor y tu clave de visualización pública. Por eso muchos textos técnicos en español prefieren no traducir el término y dejarlo en inglés — para no inducir esta confusión.

La segunda es asumir que el "anillo" en una firma de anillo se refiere a un grupo conocido de personas que se ponen de acuerdo para firmar juntas, como ocurre en algunos esquemas multifirma. Tampoco es así. Los otros quince miembros del anillo no saben siquiera que su output está siendo usado como señuelo, ni dan ningún consentimiento. Son outputs públicos elegidos por la billetera del emisor a partir del historial de la cadena. Es una "firma de grupo" solo desde el punto de vista matemático, no social.

La tercera es creer que la clave de visualización funciona como una "contraseña de solo lectura" inofensiva, comparable a una clave de invitado en un servicio en la nube. Compartirla equivale a entregar un historial perpetuo de todos los pagos entrantes — pasados, presentes y futuros — a quien la reciba. En jurisdicciones donde la Agencia Tributaria, el SAT o cualquier otra autoridad fiscal pueda exigirla, conviene entender exactamente qué consecuencias tiene esa entrega antes de hacerla.

Preguntas frecuentes

¿Se pueden desanonimizar las stealth addresses?

Solo por alguien que tenga la clave de visualización de la dirección destinataria. La clave de visualización revela qué outputs pertenecen a qué billetera pero no puede gastarlos. Si compartes una clave de visualización con un tercero — por ejemplo, para demostrar solvencia a un auditor — esa parte puede ver todos tus pagos entrantes para siempre, incluyendo los pasados. Trata la clave de visualización como dato sensible, no como una "contraseña de solo lectura" que se pueda publicar sin riesgo.

¿Por qué Monero aumentó el tamaño del anillo a 16?

El hardfork Fluorine Fermi de agosto de 2022 elevó el tamaño del anillo de 11 a 16 para ampliar el conjunto de anonimato por gasto. Dieciséis es aproximadamente el punto justo donde los señuelos adicionales producen ganancias de privacidad decrecientes a un costo creciente en tamaño de transacción. La próxima generación, FCMP++ (pruebas de membresía de cadena completa), se espera que reemplace los anillos de tamaño fijo por pruebas sobre todo el conjunto de outputs, haciendo en la práctica que el conjunto de anonimato sea la cadena entera.

¿Las firmas de anillo van a desaparecer con FCMP++?

Sí, eventualmente. FCMP++ es el sucesor planeado de CLSAG para la privacidad del lado del emisor y está en desarrollo activo a fecha de 2026. Usará una construcción criptográfica distinta — Curve Trees más una prueba SAL — para demostrar la pertenencia del input al conjunto UTXO completo en lugar de a un anillo de 16 miembros. Las stealth addresses no se verán afectadas y seguirán en uso. Las dos capas siempre fueron independientes, y por eso una puede actualizarse sin tocar la otra.

¿Una es más importante que la otra para la privacidad cotidiana?

Para recibir pagos, la stealth address hace casi todo el trabajo — sin ella, cualquier dirección compartida públicamente expondría cada pago jamás recibido. Para gastar, la firma de anillo es lo que impide que el grafo de transacciones de tu billetera se vuelva un registro público. Las dos importan, pero importan en escenarios distintos. Un comercio que acepta Monero se apoya más en stealth addresses. Un emisor preocupado por su privacidad se apoya más en firmas de anillo.

¿Un servicio de intercambio como MoneroSwapper necesita alguna de mis claves?

No. El usuario solo proporciona la dirección de destino de Monero (o subdirección). El motor de intercambio deriva el output sigiloso de la misma forma que lo haría cualquier emisor, sin acceso a la clave de gasto ni a la clave de visualización del usuario. Esa es la razón estructural por la que los intercambios sin KYC en Monero son posibles en absoluto: nada en la criptografía exige que el servicio identifique al usuario, y nada en la privacidad del usuario depende de confiar en que el servicio guarde secretos.

Conclusión

Las stealth addresses y las firmas de anillo no son dos nombres para la misma cosa. Resuelven mitades opuestas del problema de privacidad — una oculta hacia dónde va el dinero, la otra oculta de dónde vino — y fallan bajo modelos de amenaza distintos. Entender la separación es la diferencia entre tratar a Monero como una caja mágica y poder razonar de verdad sobre tu propia postura de privacidad. Si quieres poner cualquiera de las dos capas a trabajar sin pensar en los detalles de implementación, eso es exactamente para lo que está hecho MoneroSwapper: intercambios anónimos y sin KYC que te entregan un output sigiloso fresco protegido por un anillo de 16 miembros, cada vez.