MoneroSwapper MoneroSwapper

Privacidad de red en Monero: Dandelion++ explicado

MoneroSwapper · · · 16 min read · 12 views

Privacidad de red en Monero: Dandelion++ explicado

La mayoría de quienes compran Monero da por hecho que el protocolo oculta absolutamente todo en cuanto una transacción sale de su monedero. Sobre la cadena de bloques, eso es cierto en gran medida: RingCT esconde los montos, la firma de anillo difumina cuál de las salidas se está gastando y la dirección oculta (stealth address) rompe el vínculo con quien recibe. Pero existe una capa más silenciosa que no tiene nada que ver con el libro contable: la red entre pares (peer-to-peer) que transporta tu transacción desde tu nodo hasta un minero. Cuando pulsas «enviar», tu transacción aparece primero en una dirección IP concreta antes de empezar a propagarse. Un observador que detecte ese punto de origen puede, a veces, atar una transacción perfectamente privada en la cadena a una conexión de internet del mundo real.

Ese es justamente el hueco que Dandelion++ vino a cerrar. Es el protocolo de propagación que Monero utiliza para enredar el camino que recorre una transacción por la red, de modo que el nodo donde finalmente «aflora» casi nunca sea el nodo que la creó. Cuando intercambias hacia Monero a través de un servicio como MoneroSwapper, tus monedas heredan esta protección de forma automática, pero entender cómo funciona te muestra dónde están sus límites y qué conviene añadir por encima. Esta guía recorre el diseño de tallo y dispersión, los parámetros que Monero realmente lleva incorporados, el modelo de amenaza realista y cómo blindar tu configuración en 2026.

Por qué la privacidad a nivel de red es un problema aparte

Las criptomonedas de privacidad suelen comentarse en función de lo que queda registrado en la cadena. Ese enfoque deja fuera toda una categoría de fugas. La cadena de bloques es un registro público, pero el acto de difundir una transacción es un evento en vivo que ocurre en un lugar y un momento concretos, y esos metadatos pueden identificarte tanto como un libro contable transparente.

Cada vez que transaccionas entran en juego tres superficies distintas, y Dandelion++ solo se ocupa de la tercera:

  • Contenido en la cadena: el monto, quien envía y quien recibe. Monero lo protege con RingCT, firmas de anillo, direcciones ocultas y la «imagen de clave» (key image), que impide el doble gasto sin revelar qué moneda se movió.
  • Enlazabilidad en la cadena: si dos transacciones pueden vincularse entre sí por datos reutilizados. Las subdirecciones y las direcciones ocultas de un solo uso las mantienen no enlazables, y eso es lo que sostiene la fungibilidad de Monero.
  • Metadatos de red: la dirección IP que anuncia primero una transacción, el momento exacto del anuncio y el nodo que la retiene primero en su mempool. Ninguna de las herramientas criptográficas anteriores toca esto: vive por debajo del protocolo, en la capa de difusión (gossip).

Un adversario que opera una flota de nodos «escucha» bien conectados no necesita romper ninguna criptografía para atacar la tercera superficie. Simplemente registra de qué IP escuchó por primera vez cada transacción. En una red de difusión por inundación ingenua, el primer nodo que retransmite una transacción es, con altísima probabilidad, el que la creó. Esa única observación basta para echar abajo el anonimato de un pago privado por lo demás impecable. La red temprana de Bitcoin demostró ser vulnerable una y otra vez a este estilo de desanonimización del «primer espía», y la investigación que dio origen a Dandelion nació directamente de esos hallazgos.

Cómo funciona Dandelion++ en realidad

Dandelion++ es un protocolo académico presentado en 2018 por Fanti y sus coautores, que refinaba la propuesta original Dandelion de 2017. Monero incorporó su implementación en la versión v0.15 «Carbon Chameleon» a finales de 2019, y desde entonces protege la propagación de transacciones en la red. La idea central es dividir la propagación en dos fases con comportamientos muy distintos: una fase de enrutamiento privado y una fase de inundación pública.

La fase de tallo (stem)

Cuando tu nodo crea una transacción, no la grita a todos sus pares. En lugar de eso, entra en la fase de tallo (stem). La transacción se reenvía a un único par elegido de forma pseudoaleatoria. Ese par toma entonces una decisión probabilística: con una pequeña probabilidad por salto (Monero usa una probabilidad de dispersión baja, del orden del diez por ciento), pasa la transacción a la fase pública. De lo contrario, la reenvía a su propio y único par de tallo.

El resultado es que la transacción viaja a lo largo de una línea impredecible de nodos —un «tallo»— antes de hacerse pública. Para cuando aflora ante toda la red, puede estar a muchos saltos del autor original. Un observador que la escucha primero ve un nodo de retransmisión inocente, no al autor, y no tiene forma fiable de recorrer la cadena hacia atrás.

La fase de dispersión (fluff)

Una vez que un nodo decide hacer la transición, la transacción entra en la fase de dispersión (fluff). Aquí se comporta como una difusión corriente: el nodo la transmite a todos sus pares, quienes la transmiten a todos los suyos, y se propaga por inundación a través de la red hasta llegar a los mineros y aterrizar en el mempool de todos. La fase de dispersión es rápida y fiable; su trabajo es la entrega, no el ocultamiento. Todo el trabajo de ocultar ya ocurrió aguas arriba, en el tallo.

Épocas y el grafo cuatro-regular

La mejora que le ganó el «++» viene de cómo se eligen las rutas del tallo. El Dandelion original enrutaba cada transacción por una línea simple, que un adversario persistente podía ir trazando poco a poco. Dandelion++ usa en cambio un grafo cuatro-regular: cada nodo conecta su tallo con un pequeño conjunto fijo de relés salientes, y las selecciones se vuelven a aleatorizar en cada época (epoch), una ventana del orden de minutos. Como la topología de enrutamiento se rebaraja constantemente y entremezcla los tallos de muchos usuarios, correlacionar transacciones sucesivas con una sola fuente se vuelve mucho más difícil, incluso para un adversario que controle una fracción de la red.

Dandelion++ no hace imposible la desanonimización: la vuelve probabilística y costosa. Un adversario Sybil paciente y con muchos recursos todavía puede degradarla, y precisamente por eso debe combinarse con redes de anonimato en lugar de confiar en ella sola.

El temporizador de embargo

Un atacante ingenioso podría intentar un ataque de «agujero negro»: situarse en la ruta del tallo, tragarse una transacción y no dejarla nunca llegar a la fase de dispersión, con la esperanza de censurarla o de identificar al remitente que acabe reintentándola. Monero se defiende de esto con un temporizador de embargo. Cuando un nodo entrega una transacción al tallo, arranca una cuenta atrás aleatorizada de decenas de segundos. Si no observa que esa transacción entra en la fase pública de dispersión antes de que el temporizador expire, asume que algo salió mal y la difunde él mismo. Esto garantiza la vivacidad —tu pago va a salir— manteniendo a la vez el tiempo «jitterizado» (con variación aleatoria) para que el propio mecanismo de respaldo sea difícil de explotar.

Dandelion++ frente a la pila completa de privacidad de red

Dandelion++ es necesario, pero no suficiente. Oculta el origen dentro del grafo P2P de la red clara (clearnet), pero tu nodo sigue hablando con sus pares usando tu IP real. Un adversario a nivel de red situado en tu proveedor de internet (ISP), o que opere una porción muy grande de los nodos, todavía puede recoger señales. Las configuraciones más sólidas combinan Dandelion++ con una red de anonimato por debajo. Así se comparan las opciones más habituales:

ConfiguraciónQué ocultaContrapartidas
Clearnet, sin Dandelion++ (heredado) Nada en la capa de red; primer relé = origen probable Lo más rápido, pero trivialmente desanonimizable por nodos «escucha»
Clearnet + Dandelion++ (predeterminado hoy) Difumina el nodo de origen dentro del grafo P2P Tu IP sigue visible para los pares; vulnerable a grandes flotas Sybil
Dandelion++ + Tor (proxy de tx) El nodo de origen y tu IP real ante los pares Mayor latencia; consideraciones de guardia/salida; fácil de activar
Dandelion++ + I2P Origen e IP, con enrutamiento de ajo (garlic) entrante y saliente Red más pequeña, más configuración; sólido para nodos siempre activos

La conclusión clave: Dandelion++ eleva el coste de los ataques más baratos, gratis y de forma predeterminada. Tor o I2P cierran luego la puerta al adversario capaz de ver tu conexión en bruto. Resuelven problemas que se solapan pero son distintos, y los usuarios serios los ejecutan juntos.

Cómo reforzar la privacidad de red de tu Monero

Si gestionas tu propio nodo —y la autocustodia es cada vez más la única opción duradera tras la oleada de retiradas de XMR en exchanges de la UE bajo MiCA y en otros lugares—, unos pocos pasos concretos te colocan cerca de la cima de la curva de privacidad realista. Dandelion++ ya está activo; estos añaden las capas que no puede aportar por sí solo.

  1. Enruta las transacciones salientes a través de Tor. Arranca tu demonio con un proxy de transacciones (la opción del estilo --tx-proxy tor) para que las difusiones salgan por Tor. Tus pares nunca verán tu IP real en las transacciones que tú originas.
  2. Añade una dirección de entrada anónima. Configura --anonymous-inbound con un servicio oculto de Tor o un destino I2P para que tu nodo también pueda recibir conexiones sin exponer su ubicación, lo que mejora la conectividad de tu tallo.
  3. Ejecuta tu propio nodo en lugar de uno remoto. Un nodo remoto ve cada transacción que envías y tu IP. Ejecutar tu propio demonio —o emparejar tu monedero con un nodo que controles— elimina por completo a ese intermediario de confianza.
  4. Mantén tu nodo en línea y actualizado. Un nodo que permanece conectado participa en más épocas y se mezcla en más tallos. Usa siempre una versión que incluya las últimas correcciones de propagación y consenso antes de las actualizaciones de red programadas.
  5. Evita filtrar metadatos por otras vías. La privacidad de red se desperdicia si reutilizas la misma dirección en público o atas un intercambio a una identidad con KYC. Genera subdirecciones nuevas y adquiere las monedas de forma privada desde el principio.

Un modelo de amenaza realista

Piensa en cómo se desarrolla esto frente al tipo de adversario que realmente existe. Empresas de análisis de cadena como Chainalysis comercializan capacidades de monitorización de red a las fuerzas de seguridad, y una filtración bien difundida describía un «módulo» orientado a Monero que se apoyaba en gran parte en operar nodos maliciosos y cosechar datos de tiempos e IP, no en romper RingCT. Esa es exactamente la superficie de ataque que Dandelion++ tiene en el punto de mira.

Imagina a una usuaria que intercambia Bitcoin por Monero a través de MoneroSwapper y luego envía el XMR a un monedero de ahorro a largo plazo. En la cadena, el destino queda protegido por la dirección oculta y el monto por RingCT. Sin privacidad de red, un analista que opere nodos «escucha» todavía podría anotar «la primera IP en anunciar esta transacción fue 203.0.113.x a las 14:02 UTC» y combinarlo con otros registros. Con Dandelion++, la transacción aflora a varios saltos anónimos de distancia, en un nodo que la usuaria nunca controló; con Tor por debajo, ni siquiera ese punto de afloramiento puede atarse a su conexión. Al analista le quedan un relé, una marca de tiempo y nada con lo que anclarla.

Por eso la privacidad de red seguirá siendo relevante incluso a medida que avance la criptografía de Monero en la cadena. La próxima actualización FCMP++ (pruebas de pertenencia a la cadena completa) sustituye las firmas de anillo de tamaño fijo por una prueba extraída de todo el conjunto de salidas, y trabajos de direccionamiento de nueva generación como Seraphis y Jamtis están en la hoja de ruta. Todo eso refuerza el libro contable, pero nada de ello cambia el hecho de que una transacción tiene que anunciarse desde algún sitio. Dandelion++ sigue siendo el protocolo que vigila ese anuncio.

Cómo comprobar que tu configuración realmente funciona

Activar Tor o I2P no sirve de nada si quedan fugas silenciosas, y este es el error más común que cometen los recién llegados: dan por sentado que una bandera en el archivo de configuración garantiza la protección. Conviene verificarlo antes de mover cantidades importantes.

  • Confirma la ruta de salida. Tras arrancar monerod con --tx-proxy tor, revisa los registros de arranque: deben mencionar el proxy SOCKS configurado. Si el demonio se queja de que no puede conectar al proxy, tus transacciones podrían estar saliendo por la red clara sin que te des cuenta.
  • Vigila tu cortafuegos. Algunos sistemas filtran consultas DNS o tráfico entrante fuera del túnel de Tor. Una regla de cortafuegos que bloquee todo el tráfico saliente que no pase por Tor (un enfoque de «fail-closed») evita que una caída del túnel te exponga sin avisar.
  • Sincroniza desde tu propio nodo. Si tu monedero apunta a un nodo remoto «por comodidad», ese operador ve tu IP y tus transacciones, y Dandelion++ no te protege de él. Verifica en la configuración del monedero que la dirección del demonio es 127.0.0.1 o tu servicio oculto, no una URL pública de terceros.
  • Revisa tras cada actualización. Las banderas y nombres de opciones cambian entre versiones. Después de actualizar a una nueva versión de Monero, vuelve a confirmar que tus opciones de privacidad siguen reconociéndose y no se ignoran de forma silenciosa.

Para quienes prefieren no montar toda esta infraestructura, sistemas operativos centrados en la privacidad como Tails o Whonix enrutan todo el tráfico a través de Tor por defecto, lo que reduce el margen de error. Es una base razonable si tu prioridad es no filtrar tu IP por descuido.

Preguntas frecuentes

¿Dandelion++ reemplaza a Tor en Monero?

No. Dandelion++ oculta qué nodo dentro de la red entre pares originó una transacción, pero tu nodo sigue conectándose a sus pares usando su IP real. Tor o I2P ocultan esa IP. Son complementarios: Dandelion++ derrota gratis la desanonimización barata del «primer relé», mientras que una red de anonimato te protege de un observador capaz de ver tu conexión en bruto.

¿Dandelion++ viene activado por defecto en Monero?

Sí. Desde la versión v0.15 «Carbon Chameleon» de finales de 2019, todo nodo estándar de Monero propaga las transacciones usando Dandelion++ de forma automática. No necesitas configurar nada para beneficiarte del enrutamiento de tallo y dispersión: forma parte de la retransmisión normal de transacciones.

¿Puede un adversario poderoso desanonimizar todavía el tráfico de Dandelion++?

Parcialmente, bajo las condiciones adecuadas. Dandelion++ ofrece una protección probabilística, no absoluta. Un adversario que controle una gran fracción de los nodos de la red (un ataque Sybil) puede degradar sus garantías al observar muchos tallos a la vez. Esta es la razón central por la que la comunidad de Monero recomienda añadir Tor o I2P por encima en lugar de confiar en Dandelion++ de forma aislada.

¿Cuál es la diferencia entre la fase de tallo y la de dispersión?

La fase de tallo es la etapa de enrutamiento privado: una transacción pasa en silencio por una línea de pares individuales, cada uno de los cuales decide con una pequeña probabilidad si la hace pública. La fase de dispersión es la etapa de inundación corriente, donde un nodo transmite la transacción a todos sus pares para que llegue a toda la red y a los mineros. El anonimato viene del tallo; la entrega, de la dispersión.

¿Usar un nodo remoto debilita Dandelion++?

Puede hacerlo. Un nodo remoto al que te conectas ve las transacciones que envías y la IP desde la que las envías, así que puede saltarse la protección que Dandelion++ ofrece a otros observadores. Ejecutar tu propio nodo, o uno en el que confíes y al que llegues por Tor, mantiene esa información de origen fuera del alcance de un tercero.

Conclusión

La reputación de Monero descansa en la criptografía escrita en su libro contable, pero la privacidad real solo es tan fuerte como su capa más débil, y durante años esa capa débil fue la red. Dandelion++ cierra el hueco asegurando que el nodo que anuncia tu transacción casi nunca sea el nodo que la creó, y el temporizador de embargo impide que esa protección se convierta en un arma para censurarte. Combinado con Tor o I2P y tu propio nodo, te coloca muy por encima del alcance de los ataques baratos y escalables que los adversarios despliegan de verdad. Si quieres monedas que lleguen ya dentro de esta protección, puedes comprar Monero de forma anónima a través de MoneroSwapper y mantener tu privacidad intacta desde el intercambio hasta tu monedero.

Comparte este artículo

Artículos Relacionados

Exchange de Monero Anónimo

Sin KYC • Sin Registro • Intercambio Instantáneo

Intercambiar Ahora