Esta página es para investigadores, universidades, evaluadores y socios. Recoge lo que hoy se puede medir y reproducir, dónde están el método y los datos, y qué preguntas siguen abiertas. Cada número viene de un documento publicado con su método; ninguno viene de una auditoría independiente, que sigue siendo requisito para la mainnet. Los documentos técnicos están en inglés.
Contenido
- Agilidad criptográfica, de principio a fin
- Costes poscuánticos, medidos
- Tu propia red de pruebas
- Datos de la testnet
- Material de revisión
- Preguntas abiertas
- Colabora
Agilidad criptográfica, de principio a fin
Qanum no da por eterno ningún esquema de firma (whitepaper §3.2, §6.2 y
§6.5). Cada clave de una salida lleva el identificador de su suite. Una
suite entra a una altura (suites5) y deja de admitirse en
salidas nuevas a otra (retire12); las salidas creadas antes se
pueden gastar siempre. La testnet tiene las dos alturas a 0, así que es de
nivel 5 desde su génesis. En regtest las dos alturas se mueven con
-testactivationheight=suites5@<h> y
-testactivationheight=retire12@<h>, para poder repetir la
transición.
El experimento de migración de suites ejecuta esa
transición en una red regtest de cuatro nodos qanumd reales,
con el verificador de producción (liboqs): un minero, un usuario con
monedas de nivel 1/2, un nodo que nunca aplica la retirada y otro que no
conoce el nivel 5. El monedero mueve sus monedas con
migratesuites, se retiran las suites antiguas y la cadena
retrocede y avanza a través de las dos alturas. Cada paso se comprueba (39
comprobaciones) y las mediciones se guardan en results.json y
summary.md.
Primeros resultados (aarch64, 8 núcleos, 19 de octubre de 2026)
| Medida | Nivel 1/2 | Nivel 5 |
|---|---|---|
| Pago con una entrada | 3.881 bytes (ML-DSA-44) | 7.368 bytes (ML-DSA-87) |
| Verify units de una entrada de clave única | 100 | 290 |
| Bytes de autorización de un gasto de recuperación P2RKPQ | 7.895 (SLH-DSA-128s) | 29.863 (SLH-DSA-256s) |
- Migración de un monedero de cinco monedas: 4 transacciones, 19.165 bytes y 383.300 jomas de comisión a 20 jomas/byte, planificada con una simulación antes de enviar nada.
- Retirar una suite es un soft fork: el nodo que no la aplica sigue la cadena. Introducirla no lo es: el nodo que no conoce el nivel 5 se detiene en el primer bloque que lo usa.
- Deshacer 5 bloques a través de la altura de retirada tardó 486 ms y rehacerlos 310 ms; las reglas siguieron a la altura en los dos sentidos.
cargo build --release --locked --bin qanumd --bin qanum-cli
cd test/functional
# Como test (PASS o FAIL):
python3 qan_framework.py feature_suite_migration.py
# Como experimento, guardando las mediciones:
python3 feature_suite_migration.py --out /tmp/suite-migration
El script del experimento y su informe están en la rama principal del
repositorio y entran en la próxima versión. Lo que usa,
migratesuites y -testactivationheight, ya está
en la v0.9.0. Límites que indica el informe: una sola
máquina, sin latencia real, dificultad mínima y un monedero pequeño; las
salidas multifirma, vault y HTLC no se migran automáticamente.
Costes poscuánticos, medidos
Una clave y una firma de nivel 5 ocupan unos 7,2 KB, así que Qanum contabiliza la autorización aparte de los datos base y limita el trabajo criptográfico de cada bloque con «verify units» (whitepaper §10). Las constantes salieron de estas mediciones. Cada ejecución va fijada a un núcleo, con un solo trabajo a la vez; se publican la salida en bruto y el estado de la máquina antes y después, y un test fija las reglas de cálculo.
| Mediana de verificación | ARM núcleo grande | ARM núcleo pequeño | x86-64 (EPYC) |
|---|---|---|---|
| ML-DSA-87 | 166,6 µs | 544,4 a 546,3 µs | 54,4 a 55,1 µs |
| SLH-DSA-SHAKE-256s | 1,88 a 1,89 ms | 6,66 a 6,67 ms | 1,16 a 1,24 ms |
Un bloque en el límite de bytes de autorización (415 gastos ML-DSA-87) se valida en 152 ms en el núcleo grande ARM y en 553 ms en el pequeño, con un solo hilo y todas las firmas verificadas. Las tablas completas incluyen generación de claves, firma, ML-KEM-1024, transacciones sueltas y bloques llenos.
- Mediciones en ARM: método y tablas.
- Mediciones en x86-64: método y tablas.
- Datos en bruto (JSON Lines y estado de la máquina): gold-core6.jsonl (env), silver-core2.jsonl (env), epyc-core1.jsonl (env), epyc-core3.jsonl (env).
cargo build --release --locked --example pq_bench
QANUM_BENCH_COMMIT=<commit> taskset -c <core> target/release/examples/pq_bench --out <file>.jsonl
Son bienvenidas las mediciones en otros procesadores: el presupuesto limita tiempo, así que las constantes siguen al núcleo más lento.
Tu propia red de pruebas
- Regtest (P2P 28445, RPC 28338): bloques minados a demanda con dificultad mínima y alturas de activación configurables como arriba. Mira la guía de usuario y la referencia de configuración.
- Framework de tests funcionales en Python (
test/functional, 45 scripts en la v0.9.0): arranca nodos reales, habla con ellos por RPC y comprueba su comportamiento. Un buen punto de partida para experimentos nuevos. - 2.276 funciones de test y 11 objetivos de fuzzing en la v0.9.0, con el método y el inventario completo en el documento de la batería de tests.
- RPC para medir:
getblockstats,getchaintips,getpeerinfo,getnettotals,gettxoutsetinfo,invalidateblocky el resto de la referencia RPC.
Datos de la testnet
La testnet pública tiene bloques de 75 segundos y monedas sin valor. Hay dos fuentes de datos:
- El explorador: bloques y transacciones, y páginas en vivo de estadísticas de bloques, historial de dificultad, resumen de minería y pares.
- Telemetría diaria de un nodo semilla, descrita abajo.
Telemetría diaria (pública)
Un nodo semilla registra la cadena y su propio estado cada 5 minutos con llamadas RPC de solo lectura (desde el 19 de octubre de 2026; el histórico de bloques empieza en el génesis de la testnet, el 11 de octubre de 2026). Una vez al día se publican aquí los días UTC completos, hasta ayer, con licencia CC BY 4.0. Nunca se registran direcciones de pares ni identidades de nodo.
| Dato | Últimos 7 días | Últimos 30 días |
|---|---|---|
| Último día completo | Cargando | |
| Altura al final de ese día | ||
| Bloques | ||
| Intervalo de bloque, mediana / media (objetivo 75 s) | ||
| Intervalo, percentil 90 / máximo | ||
| Transacciones sin contar la coinbase | ||
| Pares del nodo semilla, media / máximo | ||
| Puntas huérfanas | ||
| Reorganizaciones | ||
- summary.json: las cifras de arriba, para los últimos 7 y 30 días y para todos los días.
- daily.csv: una fila por día (bloques, intervalos, transacciones, comisiones, pares, puntas huérfanas, reorganizaciones, versiones).
- blocks.csv: una fila por bloque desde el génesis (hora, intervalo, transacciones, entradas, salidas, tamaño, comisiones, subsidio, dificultad).
- README.txt: qué significa cada campo (en inglés). LICENSE.txt: la licencia.
Cita sugerida: Qanum testnet telemetry, https://qanum.org/research/. Por ahora las dos semillas hacen casi toda la minería, o toda, así que las cifras de bloques huérfanos y reorganizaciones no representan una red más grande. Aun así es el histórico que pide el §9.9 del whitepaper: dice que la tasa de bloques huérfanos de una cadena de 75 segundos aún no se ha medido.
Telemetría completa (bajo petición)
Las fotos del nodo cada 5 minutos (conexiones, pares por versión y tipo de conexión, ping mediano, mempool, puntas de cadena, tiempo encendido) y el detalle de cada punta huérfana y cada reorganización están disponibles para socios de investigación; pídelas en partnerships [arroba] qanum [punto] org.
Material de revisión
El repositorio contiene además la especificación de consenso, el paquete para la auditoría externa y los registros de CVE y BIP; se abren con él.
Preguntas abiertas
Mediciones que alimentarían decisiones que hay que fijar antes de la mainnet (el plan de benchmarks y el §9.9 del whitepaper):
- El coste en verify units en más procesadores, también placas de bajo consumo.
- El tiempo objetivo de bloque de 75 segundos frente a 90.
- La presión sobre la mempool cuando el recurso escaso son los bytes de autorización y no los bytes base.
- La estabilidad del ajuste de dificultad ASERT anclado ante cambios de hashrate.
- El arranque: descarga completa frente a snapshot verificado.
- Minería cuántica: las estimaciones publicadas de hashing cuántico frente al hashrate y la tasa de huérfanos medidos.
Colabora
Qanum se publica con licencia MIT OR Apache-2.0, así que el código, los datos y los documentos se pueden reutilizar en investigación. Para colaborar en investigación, acceder antes al código o plantear proyectos conjuntos, escribe a partnerships [arroba] qanum [punto] org.