Um dos problemas mais importantes que qualquer loteria do mundo precisa resolver é o procedimento ou algoritmo que obtém os números vencedores para cada sorteio. Em nosso caso, como uma loteria virtual, nossa equipe de especialistas projetou um algoritmo totalmente seguro para gerar a cadeia de sementes da qual são extraídos os 5 números de 4 dígitos.
Para isso, usamos um emissor independente e mundialmente conhecido como BITCOIN. Sabe-se que aproximadamente a cada 5 a 20 minutos um novo bloco é gerado para a cadeia Bitcoin. Cada bloco está associado a um HASH que o identifica de forma única.
Cada sorteio, uma vez avaliado, gera um hash particular, uma vez obtidos os prêmios que utilizaremos para obter os do próximo sorteio.
Neste exemplo, usamos o hash do sorteio anterior:
d57cbd9ef56e9 bc773c9ad93a2 131d2e3ab64ac f54ed1466da21 efdd145b24328
cbd85971335a9 26ab9f3fd66a1 5c334 973984f a7dbdbdbacfa668 8b8078a9a65d
Para nosso sorteio, o primeiro bloco que foi gerado tinha este Hash:
0000000000000000000000000000000b1447caf58d6d 13ff4afee003c06fcb1edb30e159580d
Concatenamos ambos os hashes e aplicamos a função criptográfica sha512 a ele. Desta forma obtemos 512 caracteres hexadecimais
53a88ea66279e edacb1a4015b8 a9fc7a59c577f 3425161127a2f 8eb2db0dab68b
5be60cb29b167 ec1df53e5c273 f9b6eba002467 f13005f2800f0 446fed038a7
Dividimo-los em substratos de 13 caracteres e selecionamos as cinco primeiras cordas (uma para cada prêmio). A cada string aplicamos a seguinte fórmula para obter o prêmio:
const value = parseInt(string, 16) / Math.pow(2, 52)
const prize = Math. floor(value * 10000)
Para nosso exemplo os 5 prêmios obtidos são:
3267 9284 6640 2036 5574
A sexta posição, ou o sexto prêmio, chama-se Moderno, portanto o (M), é um milésimo da soma dos cinco prêmios obtidos com o hash. No exemplo acima, a soma dos 5 primeiros prêmios do Beast Game é 26801, portanto o Moderno será 6801.
Ou sétimo prêmio, é o chamado River. Seu valor é obtido multiplicando o primeiro prêmio pelo segundo obtido por hashing, desconsiderando os três números à direita, e considerando apenas o centésimo do número obtido
Em nosso exemplo, o rio seria 330
3267 x 9284 = 30.330.828
O oitavo número é o Salted, (S). Seu valor é o número do grupo correspondente ao resultado da multiplicação dos dez do primeiro prêmio por 4. Então, no exemplo:
67 x 4 = 268 - Mono, grupo 17
O Hash do bloco escolhido para o sorteio dos números vencedores será o primeiro obtido a partir da hora, minuto e segundo exatos após a hora oficial do sorteio. Isto pode levar de 1 a 20 minutos, dependendo da complexidade do bloco.
É impossível deduzir antes do momento do sorteio quais serão os números vencedores, pois a obtenção do hash por BITCOIN requer o poder computacional de milhares de servidores para resolver simultaneamente o hash final.
Seguir este link Clique aqui para analisar o código em Javascript.