Puntos Esenciales
- RandomX es el algoritmo de prueba de trabajo de Monero desde el 30 de noviembre de 2019 y está optimizado para procesadores de uso general.
- En cada hash ejecuta programas aleatorios sobre una máquina virtual y lee un dataset de 2080 MiB, lo que encarece fabricar chips específicos.
- Su resistencia a los ASIC es un objetivo de diseño, no una garantía: el propio proyecto sigue ajustándolo con RandomX v2.
- La versión 2 se publicó en marzo de 2026, pero a 1 de noviembre de 2026 su activación en Monero aún no tiene fecha oficial.
El algoritmo de minería RandomX nació para que minar Monero siguiera siendo cosa de ordenadores corrientes. Su repositorio oficial recoge que se activó en la red de Monero el 30 de noviembre de 2019 y que su modo rápido necesita 2080 MiB de memoria compartida, una exigencia pensada para que un procesador (CPU) doméstico compita con equipos mucho más caros. Esa memoria es solo la mitad del diseño: la otra mitad es que cada hash ejecuta programas aleatorios distintos, algo que un chip fabricado para una única tarea tiene difícil de copiar.
Antes de RandomX, Monero había modificado su algoritmo anterior, CryptoNight, en abril de 2018, octubre de 2018 y marzo de 2019 para dejar fuera a los ASIC, que son circuitos construidos para minar un único algoritmo, según la hoja de ruta oficial del proyecto. La documentación de Monero reconoce que ese objetivo acabó fallando, y por eso el equipo prefirió cambiar de estrategia en lugar de seguir parcheando.
El diseño sigue vivo: en 2026 se publicó RandomX v2, cuya integración en la red principal de Monero sigue en revisión a 1 de noviembre de 2026. Con esta guía vas a entender cómo trabaja RandomX por dentro, qué hardware pide, qué límites reconoce su propia documentación y en qué punto está su actualización.
¿Por qué Monero abandonó CryptoNight?
Un ASIC es un chip diseñado para repetir un solo cálculo, y en minería puede superar tanto a un ordenador general que acaba expulsándolo. La FAQ de Monero explica el riesgo: si pocos operadores con ASIC reúnen la mayoría de la potencia de la red, podrían rechazar transacciones a voluntad, algo parecido a lo que describe un ataque del 51 %.
CryptoNight se diseñó para resistir ese hardware, pero según la documentación de Monero Bitmain desarrolló un ASIC eficiente para él en 2017 y el objetivo acabó fallando. Monero respondió cambiando el algoritmo para romper la compatibilidad con los equipos ya fabricados, un parche que se repitió tres veces entre abril de 2018 y marzo de 2019, la última con la variante CryptoNight-R.
La alternativa fue crear un algoritmo nuevo, en lugar de seguir retocando el antiguo. La primera etiqueta de prueba de RandomX en su repositorio es del 14 de noviembre de 2018, la versión 1.0.0 llegó el 5 de mayo de 2019 y el algoritmo se activó en Monero el 30 de noviembre de 2019.
Ese día entró en vigor la versión 0.15 del software de Monero junto con la bifurcación número 12 de la red, en el bloque 1.978.433 según la tabla de bifurcaciones del código de Monero.
El README atribuye la autoría a tevador, reconoce a SChernykh por su contribución al diseño y a hyc por la idea original del código aleatorio. La FAQ de Monero añade que ya no hacen falta los cambios periódicos de algoritmo.

¿Cómo funciona el algoritmo de minería RandomX?
RandomX es un algoritmo de prueba de trabajo en el que cada intento de minado hace trabajo distinto y dependiente de la memoria. Según su especificación, parte de una clave, rellena con ella una caché y, a partir de la caché, un conjunto de datos de gran tamaño que el minero consulta sin parar.
El recorrido completo de un intento de minado se resume en cinco pasos consecutivos, y esos pasos se repiten con cada valor de prueba que el minero ensaya mientras busca un hash válido para el bloque.
- La clave sale del hash de un bloque anterior de la cadena y no puede elegirla el minero.
- Con esa clave, la función Argon2d rellena una caché de 256 MiB, tras 3 iteraciones.
- En modo rápido, la caché se expande a un dataset de unos 2 GiB, y cada elemento se construye a partir de 8 accesos aleatorios a la caché.
- Con los datos del bloque y el nonce se generan 8 programas aleatorios, y cada uno se ejecuta 2048 veces sobre la máquina virtual.
- El estado final se resume con AES y con la función hash Blake2b hasta obtener el hash de 256 bits que se compara con la dificultad.
La criptografía que usa es conocida: Blake2b para los hashes, AES para generar y resumir la memoria de trabajo y Argon2d, una variante de Argon2 que consume mucha memoria. Si quieres repasar los fundamentos, tienes la guía de criptografía de Academy, y el nonce es el valor que el minero cambia en cada intento.
RandomX tiene dos modos de funcionamiento. El modo rápido, pensado para minar, necesita 2080 MiB de memoria compartida, y el modo ligero, pensado para verificar, solo 256 MiB pero funciona mucho más despacio, según el README. El modo ligero permite que un equipo modesto compruebe los bloques sin tener que minar, y ambos modos producen exactamente el mismo resultado.

¿Cómo es la máquina virtual de RandomX?
La parte más distintiva del algoritmo es su máquina virtual, donde cada programa aleatorio se ejecuta con un juego de instrucciones propio. La idea es sencilla: una CPU acepta datos y código, un circuito fijo solo datos, y si el código cambia en cada hash el circuito pierde ventaja.
La especificación describe una máquina de conjunto de instrucciones complejo con 8 registros enteros de 64 bits y 12 registros de coma flotante de 128 bits. Hay 256 códigos de operación repartidos entre 29 instrucciones distintas, agrupadas en cuatro familias: 17 enteras, 9 de coma flotante, 2 de control y 1 de almacenamiento.
Cada programa de la versión 1 es un bucle de 256 instrucciones generadas al azar, y la versión 2 lo amplía a 384. El conjunto de combinaciones posibles es tan grande que el README estima 2 elevado a 512 programas distintos, una cifra que impide preparar circuitos específicos para cada uno de antemano.
La memoria de trabajo, o scratchpad, se organiza en tres niveles que imitan la jerarquía de caché de un procesador: 16 KiB, 256 KiB y 2 MiB. Se eligió ese tamaño para que quepa entera en la caché de la CPU, y en ese terreno un procesador convencional tiene ventaja natural frente a un circuito específico.
Para ir rápido, RandomX traduce cada programa a código nativo con un compilador JIT, que lo genera justo antes de ejecutarlo. El documento de diseño calcula que cada instrucción de RandomX equivale a entre 1 y 7 instrucciones x86, con una media de 1,8, y el README indica que hay compilador JIT para x86-64, ARM64 y RISCV64. En el resto de arquitecturas se usa un intérprete portable, mucho más lento.

¿Qué hardware necesita minar con RandomX?
Las exigencias de hardware son la otra gran barrera frente a los ASIC. La tabla recoge los requisitos que indica el README del repositorio, consultado el 1 de noviembre de 2026, para minar con eficiencia.
| Requisito | Valor indicado | Para qué sirve |
|---|---|---|
| Memoria del modo rápido | 2080 MiB compartidos | Guardar el dataset que se consulta en cada intento |
| Memoria del modo ligero | 256 MiB compartidos | Verificar bloques sin minar |
| RAM libre | Al menos 2,5 GiB por nodo NUMA | Alojar el dataset en equipos con varios procesadores |
| Caché por hilo | 16 KiB de L1, 256 KiB de L2 y 2 MiB de L3 | Mantener la memoria de trabajo dentro del procesador |
| Arquitectura | 64 bits, FPU compatible con IEEE 754 y AES por hardware | Ejecutar los programas y generar los datos con rapidez |
| Páginas de memoria | Soporte para páginas grandes | Reducir el coste de acceder a tanta memoria |
| Ancho de banda | Hasta unos 1500-2000 H/s por canal con DDR3 y unos 4000-6000 H/s con DDR4 | Limita el hashrate, que depende de la memoria y no solo de la CPU |
NUMA significa acceso no uniforme a memoria, y es la forma en que los servidores con varios procesadores reparten su RAM entre ellos. Que el límite lo ponga la memoria explica por qué comprar un procesador con más núcleos no siempre acelera la minería: si los canales de memoria no dan abasto, los núcleos esperan datos.
El diseño también pone en desventaja a las GPU, según el documento de diseño: no existe una instrucción común de multiplicación entera para NVIDIA y AMD y sus juegos de instrucciones suelen ser propietarios. La página de minería de Monero lo resume diciendo que se puede minar con CPU y con GPU, pero que la CPU es mucho más eficiente.
El README añade una consecuencia práctica contra el malware: minar con eficiencia exige más de 2 GiB de memoria, lo que deja fuera a muchos dispositivos IoT de las botnets, y el minado web es inviable. Un cryptojacking con RandomX, además, se detecta con más facilidad: el proyecto mantiene una herramienta de prueba, RandomX Sniffer, que identifica minería ilícita en Windows.
¿Cada cuánto cambia la clave de RandomX?
La clave que alimenta la caché no puede ser elegida por el minero. El README recomienda tomarla del hash de un bloque de la cadena, llamado bloque de claves, y cambiarla cada 2048 bloques, unos 2,8 días, con un retraso de 64 bloques, unas 2 horas, entre el bloque de claves y el cambio efectivo.
En términos prácticos, esto se consigue cambiando la clave cuando blockHeight % 2048 == 64 y escogiendo como bloque de claves el que cumple keyBlockHeight % 2048 == 0. El operador % es el resto de la división, así que la clave se renueva en las alturas 64, 2112, 4160 y así sucesivamente, siempre con las mismas reglas para todos los nodos.
El propio README advierte de por qué importa: para lograr resistencia a los ASIC, la clave debe cambiar y no puede ser seleccionable por el minero. Si pudiera escogerla, podría preparar con tiempo una configuración optimizada, y la renovación periódica obliga a reconstruir la caché y el dataset cada pocos días.
¿Es RandomX de verdad resistente a los ASIC?
La respuesta honesta es que reduce la ventaja de los circuitos específicos, pero no la elimina. La FAQ de Monero afirma que RandomX reduce mucho la eficiencia de los ASIC y hace que no compense construirlos, y el documento de diseño formula el objetivo con más prudencia: minimizar la ventaja de hardware especializado.
Los mecanismos son tres. Los programas dinámicos impiden fijar un circuito, el dataset de gran tamaño obliga a usar memoria DRAM externa y la función SuperscalarHash gasta mucha energía mientras espera datos. Para las FPGA, el README señala que solo podrían minar emulando una CPU, con lo que serían mucho menos eficientes que un procesador.
El mejor indicio de ese límite es que los autores siguen ajustando el algoritmo. El documento de RandomX v2 reconoce que, en la versión 1, la instrucción CFROUND cuesta hasta un 10 % de hashrate en procesadores Ryzen y que ahí un ASIC o una CPU especial puede obtener una ventaja fácil. Lo presenta como una mejora preventiva y no describe ataques medidos.
El riesgo de que alguien fabrique un equipo específico tampoco es teórico. En diciembre de 2025 un usuario abrió la incidencia 10270 en el repositorio de Monero para alertar de un minero dedicado a RandomX que, según su autor, Bitmain tenía previsto enviar en julio de 2026.
La incidencia se cerró como completada el 3 de enero de 2026, y las fuentes oficiales consultadas no confirman si ese equipo llegó a comercializarse. Por eso conviene tratar la resistencia a los ASIC como una propiedad que se vigila, y no como un hecho consumado.
| Objetivo | Cómo lo intenta RandomX | Límite que reconoce el proyecto |
|---|---|---|
| Frenar los ASIC | Programas aleatorios, dataset en DRAM y SuperscalarHash | Es un objetivo de diseño y la versión 2 corrige puntos donde un ASIC tendría ventaja |
| Frenar las GPU | No hay instrucciones comunes y la memoria exigida es alta | Las GPU quedan en desventaja, pero no están prohibidas |
| Dificultar el malware | Mucha memoria y detección más sencilla | Reduce los botnets de equipos modestos, no los elimina |
| Evitar la concentración en pools | Minería en CPU doméstica y minado en solitario o con P2Pool | La concentración de pools sigue abierta como tema de investigación |
Sobre ese último punto de la tabla, la página de minería de Monero advierte de que demasiada gente en un único pool puede dejarlo con más del 50 % del hashrate total.
Los temas «Mining protocol changes to combat pool centralization» y «Bolstering PoW to be Resistant to 51% Attacks» siguen abiertos en el repositorio de Monero Research Lab, y el equipo los incluyó en la agenda de su reunión del 27 de agosto de 2025.
¿Quién ha auditado RandomX?
Entre mayo y agosto de 2019, cuatro equipos independientes auditaron RandomX: Trail of Bits, X41 D-SEC, Kudelski Security y QuarksLab. La organización OSTIF coordinó las cuatro revisiones, y según el README la primera la financió Arweave y las otras tres, donaciones de la comunidad de Monero.
Ninguna auditoría encontró vulnerabilidades críticas, aunque varias provocaron cambios en el algoritmo y en el código. Los informes están en la carpeta de auditorías del repositorio y el resumen de OSTIF está en su página de resultados.
Conviene leer esas revisiones con perspectiva. Son de 2019 y examinaron la versión 1, y las fuentes consultadas no recogen una auditoría equivalente para la versión 2. Una auditoría reduce el riesgo de fallos, pero no demuestra que no existan, y por eso el proyecto sigue publicando correcciones.
Estado actual de RandomX en noviembre de 2026
El repositorio de RandomX mantiene, a 1 de noviembre de 2026, dos líneas de versiones a la vez: la 1.x, que corresponde a la versión del algoritmo activa en Monero, y la 2.x, que incorpora los cambios de la versión 2. La tabla recoge las publicaciones más relevantes según las notas de cada versión.
| Versión | Fecha de publicación | Qué cambia |
|---|---|---|
| 1.0.0 | 5 de mayo de 2019 | Primera versión estable |
| 1.2.1 | 20 de octubre de 2023 | Compilador JIT para RISC-V y correcciones en ARM64 |
| 2.0 | 25 de marzo de 2026 | Algoritmo RandomX v2: programas de 384 instrucciones, CFROUND menos frecuente, AES en el bucle principal y prefetch con dos iteraciones de adelanto |
| 2.0.1 y 1.2.2 | 10 de mayo de 2026 | Corrección de un fallo del JIT en ARM y RISC-V que podía producir hashes no válidos, 1 de cada unos 268 millones |
| 1.2.3 | 17 de julio de 2026 | Cambio del mínimo de CMake a la versión 3.10 |
La versión 2 se integró en el repositorio de RandomX el 17 de febrero de 2026, tras una propuesta de cambios de SChernykh y tevador. La hoja de ruta oficial de Monero la lista entre los trabajos futuros, sin fecha, y la propuesta para el software de Monero, que añade soporte para RandomX v2 y para los compromisos de RandomX en la versión 17 de la red, seguía abierta en la última comprobación.
Dicho de otro modo, hasta que una actualización de red active la versión 2, Monero seguirá minando con la versión 1. La tabla de bifurcaciones del código de Monero acaba, a 1 de noviembre de 2026, en la versión 16, así que la versión 2 aún no es la que protege la red.
Este artículo no recoge la potencia total de la red ni la dificultad actual, que cambian cada pocos minutos y por eso conviene consultarlas en un explorador de bloques en el momento en que las necesites.
Lo que el algoritmo de minería RandomX enseña
El algoritmo de minería RandomX muestra que la resistencia a los ASIC no es una propiedad que se logra una vez, sino una carrera que se revisa cuando cambian los procesadores, las memorias y los fabricantes. La propia versión 2 nace de eso: según sus autores, las CPU actuales son mucho más rápidas, pero la latencia de la memoria casi no ha cambiado desde 2019, y por eso los programas son más largos.
Si quieres comparar con otros diseños, la guía de algoritmos de minería de Academy repasa los más usados, y la de mineros ASIC explica qué son y cómo funcionan. Monero es además un activo de privacidad cuya disponibilidad en plataformas reguladas varía según la jurisdicción, y esta guía describe su algoritmo de minería sin recomendar adquirirlo ni usarlo.



Autor


