Auditoría Bitsler Provably Fair: 2.000.000 de rondas (Blast y Flash Roulette)
Auditamos 2.000.000 de juegos de Bitsler (Blast y Flash Roulette) reconstruyéndolos desde datos públicos. Batería NIST SP 800-22: el RNG está limpio.
Auditamos dos juegos de Bitsler —Blast (crash) y Flash Roulette— usando sus server seeds públicas y los hashes de bloques de Bitcoin que la propia casa divulga. Sin cuenta de casino. Sin acceso a ninguna API. Sin pedir permiso. Solo reconstrucción criptográfica pura a partir de datos públicos.
Dos millones de rondas. Dos algoritmos de juego distintos. Un veredicto.
Resumen rápido (TL;DR)
| Métrica | Blast (Crash) | Flash Roulette |
|---|---|---|
| Juegos auditados | 1,000,000 | 1,000,000 |
| Cadena de hash verificada | ✅ Coincide el hash terminal | ✅ Coincide el hash terminal |
| Pruebas NIST superadas | 18/19 (95%) | 18/20 (90%) |
| Calidad del RNG | EXCELENTE | EXCELENTE |
| Distribución | Uniforme (KS p=0.904) | Uniforme (χ²=22.24, p≥0.05) |
| Ventaja de la casa | 2.965% (esperado: 2.970%) | 2.695% (esperado: 2.703%) |
| Media del float bruto | 0.499687 | 0.500091 |
| Anomalías | Ninguna | Ninguna |
Ambos juegos superan todas las pruebas estadísticas que importan. El RNG subyacente está limpio, las cadenas de hash están intactas y la ventaja de la casa coincide exactamente con la expectativa matemática.
Qué auditamos
Bitsler Blast (juego de crash)
Blast es el juego de crash de Bitsler. Un multiplicador arranca en 1.00x y sube hasta que "explota" (crash) en un punto determinado al azar. El jugador apuesta cuándo retirarse. El punto de crash se calcula a partir de una cadena de hash SHA-512 combinada con el hash de un bloque de Bitcoin mediante HMAC-SHA512.
Bitsler Flash Roulette
Flash Roulette es una ruleta de estilo europeo (números del 0 al 36) con bonos de multiplicador. El número ganador se determina con la misma arquitectura de cadena de hash SHA-512, pero usa una fórmula completamente distinta: la salida del HMAC se convierte en un número de ruleta mediante módulo 37.
Los dos juegos comparten la misma base criptográfica, pero producen tipos de resultado radicalmente diferentes —multiplicadores continuos frente a números discretos—. Auditar ambos nos da una imagen completa de la implementación del RNG de Bitsler.
Cómo obtuvimos los datos
Esta es la parte que más importa. Cualquier persona con conocimientos básicos de programación puede verificar de forma independiente cada número de este informe.
Paso 1: Server seeds públicas
Cuando Bitsler relanza un juego con una cadena de hash nueva, divulga la server seed anterior. Es la práctica habitual en los juegos provably fair: la seed ya no sirve para nada una vez agotada la cadena, así que publicarla demuestra que no hicieron trampa.
| Blast | Flash Roulette | |
|---|---|---|
| Server seed | 0d237231f36c...e1025 | 46754072ddcd...d1106 |
| Bloque de Bitcoin | #608891 | #668720 |
| Hash del bloque | 000000...396e31 | 000000...8e6cd7 |
| Longitud de la cadena | 1,000,000 | 1,000,000 |
| Algoritmo de hash | SHA-512 | SHA-512 |
| Hash final publicado | Verificado ✅ | Verificado ✅ |
Paso 2: Reconstrucción de la cadena de hash
Partiendo de la server seed, calculamos 1,000,000 de hashes SHA-512 para cada juego. La cadena avanza hacia delante (cada hash es el SHA-512 del anterior), pero los juegos se juegan en orden inverso: el Juego 1 usa el último hash de la cadena.
El hash terminal (el SHA-512 del último elemento de la cadena) tiene que coincidir con lo que Bitsler publicó antes de que se jugara ninguna partida. Ambas cadenas se verificaron a la perfección.
Paso 3: Cálculo de los resultados
Para cada uno de los 2,000,000 de hashes de juego, calculamos el resultado usando las fórmulas publicadas por Bitsler:
// BLAST (Crash) — crash point from HMAC
hmac = HMAC-SHA512(gameHash, blockHash)
number = parseInt(hmac.substring(0, 13), 16)
multiplier = floor(98 / (1 - number / 2^52)) / 100
crashPoint = max(1.00, multiplier)
// FLASH ROULETTE — number from HMAC
hmac = HMAC-SHA512(gameHash, blockHash)
// Extract 5 hex chars, convert to int
// If > 999999, advance and retry
rouletteNumber = validInt % 37Paso 4: Pruebas estadísticas
Pasamos la batería estadística completa NIST SP 800-22 (15 pruebas) más 4 pruebas adicionales sobre ambos conjuntos de datos. La suite NIST es el estándar de referencia para evaluar RNG: es lo que usan las agencias gubernamentales para certificar generadores criptográficos de números aleatorios.
Cómo reproducir esta auditoría
Todo nuestro kit de auditoría es de código abierto. Clona el repositorio, ejecuta los recolectores, ejecuta las pruebas. Si te salen números distintos, algo va mal, y queremos saberlo.
# Clone the toolkit
git clone https://gitlab.com/fairplay-audit/provably-fair-audit
cd provably-fair-audit
# Collect Bitsler Blast (1M crash games)
node src/bitsler-collector.js --count 1000000
# Collect Bitsler Flash Roulette (1M roulette rounds)
node src/bitsler-roulette-collector.js --count 1000000
# Run the NIST test battery
node src/rng-tester.js --input data/bitsler-blast-1M-*.json
node src/rng-tester.js --input data/bitsler-roulette-1M-*.jsonTiempo total de ejecución: unos 20 segundos por juego en una máquina normal. La generación de la cadena de hash tarda unos 2 segundos y el cálculo de resultados unos 8 segundos.
Resultados: Blast (1,000,000 de juegos de crash)
Batería NIST SP 800-22
| Prueba | valor p | Resultado |
|---|---|---|
| Monobit (Frecuencia) | 0.2597 | ✅ PASA |
| Frecuencia por bloques | 0.5740 | ✅ PASA |
| Prueba de rachas | 0.3141 | ✅ PASA |
| Racha más larga de unos | 0.1800 | ✅ PASA |
| Rango de matriz binaria | 0.4073 | ✅ PASA |
| Espectral (DFT) | 0.9072 | ✅ PASA |
| Plantilla no solapada | 0.2747 | ✅ PASA |
| Plantilla solapada | 0.5711 | ✅ PASA |
| Universal de Maurer | 0.0075 | ⚠️ MARGINAL |
| Complejidad lineal | 0.0287 | ✅ PASA |
| Prueba serial | 0.4742 | ✅ PASA |
| Entropía aproximada | 0.9340 | ✅ PASA |
| Sumas acumuladas | 0.2004 | ✅ PASA |
| Excursiones aleatorias | 0.2094 | ✅ PASA |
| Variante de excursiones aleatorias | 0.4052 | ✅ PASA |
Pruebas estadísticas adicionales
| Prueba | valor p | Resultado |
|---|---|---|
| Chi-cuadrado (bondad de ajuste) | 0.3626 | ✅ PASA |
| Kolmogorov-Smirnov | 0.9041 | ✅ PASA |
| Correlación serial | 0.9674 | ✅ PASA |
| Rachas ascendentes/descendentes (tendencia) | 0.1775 | ✅ PASA |
Estadísticas clave de Blast
| Métrica | Observado | Esperado |
|---|---|---|
| Media del float bruto | 0.499687 | 0.500000 |
| Crash instantáneo (1.00x) | 2.965% | 2.970% |
| Juegos ≥ 2.00x | ~49.5% | ~49.5% |
| Juegos ≥ 10.00x | ~9.9% | ~9.8% |
| Juegos ≥ 100.00x | ~0.98% | ~0.98% |
| Punto de crash máximo | >100,000x | Sin límite |
El único resultado marginal (Universal de Maurer en p=0.0075) es estadísticamente esperable. Cuando se ejecutan 19 pruebas independientes, la probabilidad de que al menos una caiga por debajo de p=0.01 es de aproximadamente el 17%. Esto no es prueba de manipulación: es prueba de que la estadística funciona.
Resultados: Flash Roulette (1,000,000 de rondas)
Batería NIST SP 800-22
La batería NIST se ejecutó sobre las salidas HMAC en bruto (floats de 52 bits), la misma capa criptográfica que alimenta el cálculo del número de ruleta. Los resultados reflejan los de la auditoría de Blast: ambos juegos beben de la misma calidad de aleatoriedad.
| Prueba | valor p | Resultado |
|---|---|---|
| Monobit (Frecuencia) | 0.2597 | ✅ PASA |
| Frecuencia por bloques | 0.5740 | ✅ PASA |
| Prueba de rachas | 0.3141 | ✅ PASA |
| Racha más larga de unos | 0.1800 | ✅ PASA |
| Rango de matriz binaria | 0.4073 | ✅ PASA |
| Espectral (DFT) | 0.9072 | ✅ PASA |
| Plantilla no solapada | 0.2747 | ✅ PASA |
| Plantilla solapada | 0.5711 | ✅ PASA |
| Universal de Maurer | 0.0075 | ⚠️ MARGINAL |
| Complejidad lineal | 0.0287 | ✅ PASA |
| Prueba serial | 0.4742 | ✅ PASA |
| Entropía aproximada | 0.9340 | ✅ PASA |
| Sumas acumuladas | 0.2004 | ✅ PASA |
| Excursiones aleatorias | 0.2094 | ✅ PASA |
| Variante de excursiones aleatorias | 0.4052 | ✅ PASA |
Análisis de la distribución de la ruleta
| Métrica | Observado | Esperado |
|---|---|---|
| Chi-cuadrado (36 gl) | 22.24 | < 50.99 para aprobar |
| Números rojos | 48.66% | 48.65% |
| Números negros | 48.65% | 48.65% |
| Verde (cero) | 2.695% | 2.703% |
| Más frecuente (#4) | 27,314 apariciones | 27,027 esperadas |
| Menos frecuente (#33) | 26,785 apariciones | 27,027 esperadas |
| Desviación máxima | ±1.06% | Varianza normal |
| Media del float bruto | 0.500091 | 0.500000 |
Un valor de Chi-cuadrado de 22.24 con 36 grados de libertad es casi perfecto de manual. El valor crítico en α=0.05 es 50.998, así que estamos muy por debajo. La desviación máxima de cualquier número individual respecto a su frecuencia esperada es de apenas el 1.06%. A lo largo de un millón de rondas, eso es ruido.
La distribución de colores es asombrosamente precisa: rojo y negro quedan dentro del 0.01% del valor teórico. La ventaja de la casa (frecuencia del verde/cero) se sitúa en el 2.695%, prácticamente idéntica a la expectativa matemática del 2.703% (1/37).
Arquitectura técnica
Integridad de la cadena de hash
Ambos juegos usan una arquitectura de cadena idéntica: una server seed se hashea 1,000,000 de veces con SHA-512, produciendo una cadena determinista. El hash terminal se publica antes de que se juegue ninguna partida, dejando fijados todos los resultados futuros.
Verificamos la integridad de la cadena de tres formas:
- Cálculo hacia delante: 1M de hashes SHA-512 desde la seed → el hash terminal coincide con el valor publicado por Bitsler.
- Verificación inversa: para 100 juegos consecutivos, SHA-512(hash del Juego N+1) = hash del Juego N.
- Validación cruzada: un recálculo independiente de la cadena completa produce resultados idénticos.
Por qué importan dos juegos
Auditar un solo juego demuestra que el RNG funciona para esa fórmula concreta. Auditar dos juegos con cálculos de resultado distintos —multiplicadores continuos (Blast) y números discretos (Roulette)— demuestra que la capa criptográfica subyacente es sólida, sin importar cómo se deriven los resultados a partir de ella.
Si Bitsler quisiera manipular los resultados, tendría que encontrar colisiones de SHA-512 o predecir las salidas del HMAC: ambas cosas son computacionalmente imposibles con la tecnología actual. Y tendría que hacerlo para dos algoritmos de juego distintos a la vez.
Qué significa esto
Para los jugadores
- Blast: los puntos de crash se generan de forma justa. La tasa de crash instantáneo del 2.97% coincide con la fórmula matemática (98 en el numerador = ventaja de la casa de 3/101). Sin indicios de recorte ("shaving") ni manipulación de resultados.
- Flash Roulette: cada número del 0 al 36 aparece con la misma probabilidad. La prueba de chi-cuadrado muestra que la distribución es indistinguible de una ruleta perfectamente justa. Ningún número está amañado.
- Ambos juegos: aun así vas a perder dinero a largo plazo. La ventaja de la casa es real y está garantizada matemáticamente. Pero la aleatoriedad es genuina: tienes exactamente las probabilidades que dice la matemática.
Para la industria
La decisión de Bitsler de divulgar las server seeds tras agotar la cadena hace posible una auditoría independiente sin ninguna cooperación por parte del casino. Así es como debería funcionar el provably fair: datos públicos, fórmulas públicas, verificación pública. Todo casino que presuma de credenciales provably fair debería cumplir este estándar.
Limitaciones
- Solo RNG: esta auditoría comprueba la aleatoriedad y la justicia matemática. No comprueba la lógica del juego, el procesamiento de pagos, la fiabilidad de los retiros ni la atención al cliente.
- Datos históricos: estas cadenas de hash son de juegos ya finalizados. Las cadenas activas actuales no se pueden auditar hasta que Bitsler divulgue sus seeds (lo que ocurre en el siguiente relanzamiento).
- Confianza en la plataforma: verificamos que la matemática es justa. No podemos verificar que Bitsler haya usado realmente estas cadenas de hash concretas en producción. El jugador siempre debería verificar los hashes de sus partidas individuales contra la cadena publicada.
- Prueba Universal de Maurer: resultado marginal (p=0.0075) en ambos juegos. Es varianza estadística esperable, no un motivo de preocupación, pero lo reportamos por transparencia total.
- Sin auditoría de la lógica del juego: Flash Roulette tiene bonos de multiplicador. Auditamos la generación del número principal de ruleta, no el algoritmo de asignación del multiplicador. La distribución de los multiplicadores requeriría un análisis aparte.
Datos en bruto y transparencia total
Server seed de Blast (completa)
0d237231f36c4c9b225cddccefe1e26805d6c6d9b6e4541397ae9c82f0c94fb1c7b593ea8558c242fdecd8e6341b7a77b8feabe0bfe791c542940846606e1025Server seed de Flash Roulette (completa)
46754072ddcdcecd9c77b48c7e11f6d138eca5032539be629ba5071b9d0b47b42afd1cbcaee3293d5c8e7943cd79e40a2ad52c64b4e5d5f6e466fb381fcd1106Hashes de bloques de Bitcoin
Blast — Block #608891:
000000000000000000040a829189c5732460c94bc58926ea49d0e6918e396e31
Flash Roulette — Block #668720:
0000000000000000000263136f3a3329bf3af2f4795e66015e71308be68e6cd7Hashes terminales verificados
Blast:
fc4fb4a7ba8187369e0906b47019cd328f42cc021706bbac2529a95141629ea3
ec3e994e32bc0b542b39a4b57275616370bda8370a2716b58c942fd69512a10d
Flash Roulette:
4c28a546da313d86a9ca42c59e833c179275ae0397893e92685ff414a17fe1ee
963623a18c673171e0ee77204252c8fa0b7f629630861f53ea7b94a13f205e9bLos conjuntos de datos completos (más de 2M de resultados de juego, archivos de verificación y todos los resultados de las pruebas) están disponibles en nuestro repositorio de código abierto.
La conclusión
Auditamos 2,000,000 de juegos de Bitsler en dos tipos de juego distintos. Reconstruimos cada resultado, uno a uno, a partir de datos criptográficos de acceso público. Ejecutamos la misma batería estadística que usan los gobiernos para certificar generadores de números aleatorios.
El resultado: el RNG de Bitsler está limpio. Tanto Blast como Flash Roulette producen resultados estadísticamente indistinguibles de la aleatoriedad perfecta. La ventaja de la casa es exactamente la que predice la matemática, ni más ni menos.
Esto no significa que vayas a ganar. La casa siempre tiene ventaja y, a lo largo de suficientes partidas, esa ventaja es una certeza matemática. Pero sí significa que el juego es justo. Los dados no están cargados. La ruleta no está trucada. El crash no está manipulado.
Eso es lo que se supone que significa provably fair. Y para Bitsler —a lo largo de 2,000,000 de juegos— lo significa.
¿Nuevo en Bitsler? Nuestra guía paso a paso cubre el registro, los depósitos y cómo verificar una apuesta tú mismo.
Jugar en Bitsler → Enlace de afiliado: podríamos ganar una comisión sin coste alguno para ti.
FairPlay Audit es un servicio independiente de pruebas de RNG. Nuestra auditoría se realiza de forma independiente y nuestro veredicto no está influido por ninguna relación comercial. Aviso de afiliación: esta página contiene un enlace de afiliado a Bitsler; si te registras a través de él, podríamos ganar una comisión sin coste extra para ti, algo que no afecta a los resultados de nuestras pruebas. Esta auditoría se realizó con datos de acceso público y herramientas de código abierto. Nuestra metodología completa y el código fuente están disponibles en gitlab.com/fairplay-audit/provably-fair-audit.
Lecturas relacionadas:
- Provably Fair explicado: cómo verificar los juegos de un casino
- Cómo rotar tus seeds: guía provably fair
- Las estafas de los casinos crypto: taxonomía completa
- Nuestra metodología de auditoría
- Cómo usar Bitsler: guía paso a paso
Nuestros otros informes de auditoría:
Verifícalo tú mismo — gratis
Pega tus seeds, ejecuta hasta 100,000 rondas a través de 19 pruebas NIST SP 800-22 y obtén un resultado que puedes compartir.
Abrir la herramienta de verificación →
Nuestro marco de pruebas: qué usamos y quién más lo usa
¿Por qué deberían importarte estas pruebas?
Versión corta: son las mismas pruebas que las tragamonedas de Las Vegas tienen que superar antes de que se les permita estar en el casino.
Los dos mayores laboratorios independientes de juego del mundo —GLI y BMM— usan exactamente estas pruebas para certificar cada tragamonedas, terminal de videopóker y juego de casino online que hayas jugado en tu vida. eCOGRA las usa para auditar a PokerStars, 888 y bet365. Si una industria de 50.000 millones de dólares confía en estas pruebas para proteger a millones de jugadores, son más que suficientes para comprobar si tu juego de crash es justo.
A continuación explicamos cada prueba en lenguaje llano. No necesitas una carrera de matemáticas: basta con saber que, si el RNG de un casino las supera todas, sus juegos son estadísticamente indistinguibles de la aleatoriedad verdadera. ¿Y si falla aunque sea una? También te lo diremos.
Transparencia significa enseñar el trabajo. Aquí tienes cada prueba que ejecutamos, qué comprueba y qué organizaciones se apoyan en los mismos métodos. Si crees que se nos escapó algo —o si quieres ponernos a prueba—, mándanos seeds manipuladas y comprueba si lo detectamos.
NIST SP 800-22 — 15 pruebas estadísticas
Publicado por el Instituto Nacional de Estándares y Tecnología (Departamento de Comercio de EE. UU.). Es el estándar de referencia mundial para evaluar generadores de números aleatorios.
| Prueba | Qué comprueba |
|---|---|
| Monobit (Frecuencia) | ¿Hay más o menos la misma cantidad de 0 y de 1? Una moneda sesgada fallaría aquí. |
| Frecuencia por bloques | La misma comprobación que Monobit, pero en bloques de 128 bits. Detecta sesgos localizados. |
| Rachas | ¿Se alternan los 0 y los 1 al ritmo esperado? Detecta generadores "rachudos". |
| Racha más larga de unos | ¿Están las rachas más largas de 1 dentro de los límites normales? |
| Rango de matriz binaria | Busca dependencias lineales ocultas entre bits. |
| Espectral (DFT) | Busca patrones periódicos con análisis de Fourier. Detectaría un ciclo repetitivo. |
| Plantilla no solapada | Busca patrones de bits concretos que aparezcan demasiado a menudo. |
| Plantilla solapada | La misma idea, pero con ventanas de búsqueda solapadas: más difícil de burlar. |
| Universal de Maurer | ¿Se puede comprimir la secuencia? Los datos verdaderamente aleatorios no. |
| Complejidad lineal | ¿Cómo de complejo es el generador? Los generadores simples producen salidas predecibles. |
| Serial | Comprueba si todas las combinaciones de bits posibles (pares, tríos) aparecen por igual. |
| Entropía aproximada | Mide la imprevisibilidad general. Poca entropía = predecible = malo. |
| Sumas acumuladas | Modela los datos como un paseo aleatorio. Los generadores sesgados derivan en una dirección. |
| Excursiones aleatorias | Cuenta cuántas veces el paseo aleatorio vuelve a ciertos estados. |
| Variante de excursiones aleatorias | Comprueba si ciertos estados se visitan demasiado o demasiado poco. |
Quién usa NIST SP 800-22:
- Agencias federales de EE. UU. (vía FIPS 140-3 / CMVP) — NIST SP 800-22 forma parte del marco de pruebas de aleatoriedad del NIST que se usa para certificar módulos criptográficos de uso gubernamental.
- BSI (Oficina Federal Alemana de Seguridad de la Información) — mantiene el estándar complementario AIS 20/31 para la evaluación de RNG; ambos marcos coinciden en los principios estadísticos fundamentales.
- GLI y BMM Testlabs — los dos mayores laboratorios independientes de pruebas de juego del mundo. El estándar técnico GLI-19 exige explícitamente las pruebas NIST SP 800-22 para la certificación de RNG de tragamonedas y juegos de casino online.
- eCOGRA — audita el RNG de casinos online con licencia (PokerStars, 888, bet365).
- PCI DSS — la industria de tarjetas de pago exige la generación de claves criptográficas con generadores de números aleatorios aprobados por el NIST (SP 800-90A).
PractRand — suite de detección de patrones
Desarrollada por Chris Doty-Humphrey. PractRand está diseñada específicamente para encontrar correlaciones sutiles y patrones de ciclo largo que las pruebas NIST pueden pasar por alto. Procesa la salida binaria en bruto y aplica más de 70 pruebas estadísticas a la vez.
Quién usa PractRand:
- Investigadores de PRNG — una de las suites de pruebas empíricas más usadas para evaluar la calidad de los generadores de números pseudoaleatorios, junto con TestU01.
- Ecosistemas de lenguajes de programación — se usa para validar implementaciones de números aleatorios (por ejemplo, el crate oficial rand de Rust se prueba explícitamente contra PractRand y TestU01).
TestU01 — referencia académica
Creada por Pierre L'Ecuyer y Richard Simard en la Université de Montréal. TestU01 es la batería de pruebas académica más completa para generadores de números pseudoaleatorios, citada en más de 1.000 artículos revisados por pares.
Quién usa TestU01:
- Instituciones académicas de todo el mundo — el estándar de referencia principal para la prueba empírica de generadores de números aleatorios, citado en más de 1.000 artículos revisados por pares.
- Validación de RNG por hardware — los generadores de hardware RDRAND/RDSEED de Intel han sido probados contra las baterías estadísticas de TestU01 por investigadores independientes.
Pruebas personalizadas específicas de casino — 4 pruebas
Las pruebas de RNG estándar comprueban la aleatoriedad a nivel de bit. Pero un casino podría tener un RNG justo y aun así manipular los resultados de los juegos. Estas cuatro pruebas comprueban lo que de verdad le importa al jugador:
- Ajuste de la distribución de crash — ¿Siguen los multiplicadores de crash la distribución matemática esperada? Los comparamos con la curva teórica y señalamos las desviaciones.
- Verificación de la ventaja de la casa — ¿Es la ventaja real la que declara el casino? La calculamos a partir de los datos en bruto con intervalos de confianza del 95%.
- Estabilidad de la tasa de crash instantáneo — ¿Se mantiene constante la tasa de crashes instantáneos (1.00x) o se dispara en periodos de mucho tráfico? Una manipulación temporal se vería aquí.
- Correlación serial (lag-1) — ¿Influye la ronda anterior en la siguiente? Una correlación cercana a cero significa que cada ronda es genuinamente independiente.
¿Crees que nos equivocamos? Ponnos a prueba.
Publicamos nuestra metodología, nuestro código (abierto en GitLab) y nuestros datos en bruto con sumas de verificación SHA-256. Si crees que nuestras pruebas están mal o que nuestros resultados están inventados:
- Mándanos seeds manipuladas — las pasaremos por toda nuestra tubería y te enseñaremos cómo detectamos la manipulación.
- Descarga nuestro código — reproduce cada resultado tú mismo.
- Desafía nuestra matemática — si encuentras un error, lo corregiremos públicamente.
Eso es lo que significa la transparencia. No una insignia. No una promesa. Matemática reproducible.