Documentos

Obtención de los premios

Obtención de los 5 números que tienen premio para nuestros sorteos de lotería

Uno de los problemas más importantes que necesita resolver cualquier lotería del mundo es aquel procedimiento o algoritmo que obtiene en cada sorteo los números ganadores. En nuestro caso, como lotería virtual, nuestro equipo de expertos ha diseñado un algoritmo totalmente seguro para generar la cadena de semillas de la que se extraen los 5 números de 4 cifras.

Para ello utilizamos un emisor independiente y mundialmente conocido como BITCOIN. Se sabe que aproximadamente cada 5 a 20 minutos se genera un nuevo bloque para la cadena Bitcoin. Cada bloque está asociado a un HASH que lo identifica de forma única.

Cada sorteo, una vez evaluado, genera un hash particular, una vez obtenidos los premios que utilizaremos para obtener los del siguiente sorteo.

En este ejemplo utilizamos el hash del sorteo anterior:

d57cbd9ef56e9 bc773c9ad93a2 131d2e3ab64ac f54ed1466da21 efdd145b24328

cbd85971335a9 26ab9f3fd66a1 5c334 973984f a7dbdbacfa668 8b8078a9a65d

Para nuestro sorteo, el primer bloque que se generó tenía este Hash:

0000000000000000000b1447caf58d6d 13ff4afee003c06fcb1edb30e159580d

Concatenamos ambos hash y le aplicamos la función criptográfica sha512. De esta manera obtenemos 512 caracteres hexadecimales

53a88ea66279e edacb1a4015b8 a9fc7a59c577f 3425161127a2f 8eb2db0dab68b

5be60cb29b167 ec1df53e5c273 f9b6eba002467 f13005f2800f0 446fed038a7

Los dividimos en subcadenas de 13 caracteres y seleccionamos las cinco primeras cadenas (una para cada premio). A cada cadena le aplicamos la siguiente fórmula para obtener el premio:

const valor = parseInt(cadena, 16) / Math.pow(2, 52)

const premio = Math. floor(valor * 10000)

Para nuestro ejemplo los 5 premios obtenidos son:

3267 9284 6640 2036 5574

Fórmula para obtener los números 'Moderno', 'Río' y 'Salgado'.

La sexta posición, o el sexto premio, se llama Moderno, por lo que la (M)

Su valor es la milésima parte de la suma de los cinco premios obtenidos con el hash. En el ejemplo anterior, la suma de los 5 primeros premios del Juego de la Bestia es 26801, por lo que el Moderno será 6801.

En séptimo lugar, o séptimo premio, está el llamado Río. Su valor se obtiene multiplicando el primer premio por el segundo obtenido a través del hash, sin tener en cuenta los tres números de la derecha, y considerando sólo la centésima del número obtenido

En nuestro ejemplo, el Río sería 330

3267 x 9284 = 30.330.828

El octavo número es el Salido, (S). Su valor es el número de grupo correspondiente al resultado de multiplicar la decena del 1er premio por 4. Así, en el ejemplo:

67 x 4 = 268 - Mono, grupo 17

¿Cómo es la elección del hash para el sorteo?

El Hash del bloque elegido para el sorteo de los números ganadores será el primero que se obtenga de la hora, minuto y segundo exactos después de la hora oficial del sorteo. Esto puede tardar entre 1 y 20 minutos, dependiendo de la complejidad del bloque.

Es imposible deducir antes de la hora del sorteo cuáles serán los números ganadores, ya que para obtener el hash por BITCOIN se requiere una potencia de cálculo de miles de servidores que resuelvan simultáneamente el hash final.

Sigue este enlace Haz clic aquí para analizar el código en Javascript.